diff options
author | sr | 2013-02-04 19:50:31 +0100 |
---|---|---|
committer | sr | 2013-02-04 19:50:31 +0100 |
commit | 1a5709501f94014d41987b956338bb6424b9f90c (patch) | |
tree | d3b93fe8dc406bca56aff147ef5cc4cbf9ed6be0 | |
parent | Test (diff) | |
download | pvs2-1a5709501f94014d41987b956338bb6424b9f90c.tar.gz pvs2-1a5709501f94014d41987b956338bb6424b9f90c.tar.xz pvs2-1a5709501f94014d41987b956338bb6424b9f90c.zip |
Initial commit
89 files changed, 26937 insertions, 0 deletions
diff --git a/cmake/FindVNC.cmake b/cmake/FindVNC.cmake new file mode 100644 index 0000000..8b460d3 --- /dev/null +++ b/cmake/FindVNC.cmake @@ -0,0 +1,17 @@ +FIND_PATH(VNC_INCLUDES rfb.h /usr/include/rfb /usr/local/include/rfb) + +FIND_LIBRARY(VNC_LIBRARIES NAMES libvncclient.so PATH /usr/lib /usr/local/lib) + +IF (VNC_INCLUDES AND VNC_LIBRARIES) + SET(VNC_FOUND TRUE) +ENDIF (VNC_INCLUDES AND VNC_LIBRARIES) + +IF (VNC_FOUND) + IF (NOT VNC_FIND_QUIETLY) + MESSAGE(STATUS "Found VNC: ${VNC_LIBRARIES}") + ENDIF (NOT VNC_FIND_QUIETLY) +ELSE (VNC_FOUND) + IF (VNC_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find VNC") + ENDIF (VNC_FIND_REQUIRED) +ENDIF (VNC_FOUND)
\ No newline at end of file diff --git a/cmake/Uninstall.cmake b/cmake/Uninstall.cmake new file mode 100644 index 0000000..dbda3a2 --- /dev/null +++ b/cmake/Uninstall.cmake @@ -0,0 +1,21 @@ +IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") +ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + +FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) +STRING(REGEX REPLACE "\n" ";" files "${files}") +FOREACH(file ${files}) + MESSAGE(STATUS "Uninstalling: $ENV{DESTDIR}${file}") + IF(EXISTS "$ENV{DESTDIR}${file}") + EXEC_PROGRAM( + "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + IF(NOT "${rm_retval}" STREQUAL 0) + MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") + ENDIF(NOT "${rm_retval}" STREQUAL 0) + ELSE(EXISTS "$ENV{DESTDIR}${file}") + MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") + ENDIF(EXISTS "$ENV{DESTDIR}${file}") +ENDFOREACH(file) diff --git a/gui/client/connect.ui b/gui/client/connect.ui new file mode 100644 index 0000000..51c67f4 --- /dev/null +++ b/gui/client/connect.ui @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Dialog</class> + <widget class="QDialog" name="Dialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>511</width> + <height>121</height> + </rect> + </property> + <property name="windowTitle"> + <string>Connect to PVS session</string> + </property> + <widget class="QGroupBox" name="grpSetname"> + <property name="geometry"> + <rect> + <x>3</x> + <y>10</y> + <width>504</width> + <height>61</height> + </rect> + </property> + <property name="title"> + <string>Session Name</string> + </property> + <widget class="QPushButton" name="cmdOK"> + <property name="geometry"> + <rect> + <x>396</x> + <y>20</y> + <width>101</width> + <height>31</height> + </rect> + </property> + <property name="text"> + <string notr="true"><connect></string> + </property> + <property name="default"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="txtName"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>371</width> + <height>31</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>14</pointsize> + <weight>75</weight> + <italic>true</italic> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string notr="true"/> + </property> + </widget> + </widget> + <widget class="QLabel" name="lblError"> + <property name="geometry"> + <rect> + <x>10</x> + <y>70</y> + <width>381</width> + <height>21</height> + </rect> + </property> + <property name="text"> + <string notr="true"/> + </property> + </widget> + <widget class="QLabel" name="lblStatus"> + <property name="geometry"> + <rect> + <x>10</x> + <y>90</y> + <width>381</width> + <height>21</height> + </rect> + </property> + <property name="text"> + <string notr="true"/> + </property> + </widget> + <widget class="QPushButton" name="cmdCancel"> + <property name="geometry"> + <rect> + <x>399</x> + <y>80</y> + <width>101</width> + <height>31</height> + </rect> + </property> + <property name="text"> + <string>Hide</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + </widget> + </widget> + <resources/> + <connections/> +</ui> diff --git a/gui/client/toolbar.ui b/gui/client/toolbar.ui new file mode 100644 index 0000000..20d3e9c --- /dev/null +++ b/gui/client/toolbar.ui @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>ToolbarClass</class> + <widget class="QWidget" name="ToolbarClass"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>383</width> + <height>39</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <property name="styleSheet"> + <string notr="true">QFrame { + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde); + border-radius: 0px; +} +QLabel { + background-color: none; +} +/* QPushButton */ +QPushButton { + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde); + border: 2px solid #8f8f91; + border-radius: 4px; + min-width: 80px; +} +QPushButton:hover { + border: 2px solid rgb(0, 170, 255); +} +QPushButton:pressed { + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dadbde, stop: 1 #f6f7fa); +} +QPushButton::menu-indicator { + image: url(:/darrow16.svg); +} +/* QCheckBox */ +QCheckBox { +} +QCheckBox::indicator { + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde); + border: 2px solid #8f8f91; + border-radius: 4px; + width: 16px; + height: 16px; +} +QCheckBox::indicator:unchecked { +} +QCheckBox::indicator:unchecked:hover { + border: 2px solid rgb(0, 170, 255); +} +QCheckBox::indicator:unchecked:pressed { + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dadbde, stop: 1 #f6f7fa); +} +QCheckBox::indicator:checked { + image: url(:/ok16.svg); +} +QCheckBox::indicator:checked:hover { + border: 2px solid rgb(0, 170, 255); +} +QCheckBox::indicator:checked:pressed { + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dadbde, stop: 1 #f6f7fa); +} +</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="margin"> + <number>0</number> + </property> + <item> + <widget class="QFrame" name="frame"> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QPushButton" name="cmdMenu"> + <property name="toolTip"> + <string>Menu</string> + </property> + <property name="text"> + <string notr="true">Menu</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Host:</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="cmdHost"> + <property name="minimumSize"> + <size> + <width>84</width> + <height>0</height> + </size> + </property> + <property name="toolTip"> + <string>Click to connect</string> + </property> + <property name="text"> + <string>-</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="lblStatus"> + <property name="styleSheet"> + <string notr="true">color:red</string> + </property> + <property name="text"> + <string notr="true">Offline</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;">PVS</span></p></body></html></string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_3"> + <property name="maximumSize"> + <size> + <width>16</width> + <height>16</height> + </size> + </property> + <property name="text"> + <string/> + </property> + <property name="pixmap"> + <pixmap resource="../../pvsclient.qrc">:/cam32.svg</pixmap> + </property> + <property name="scaledContents"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <resources> + <include location="../../pvsclient.qrc"/> + <include location="../../pvsclient.qrc"/> + </resources> + <connections/> +</ui> diff --git a/gui/server_normal/mainwindow.ui b/gui/server_normal/mainwindow.ui new file mode 100644 index 0000000..ad9bcfb --- /dev/null +++ b/gui/server_normal/mainwindow.ui @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MainWindow</class> + <widget class="QMainWindow" name="MainWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>838</width> + <height>607</height> + </rect> + </property> + <property name="windowTitle"> + <string>PVS2 Manager</string> + </property> + <widget class="QWidget" name="centralWidget"> + <layout class="QGridLayout" name="gridLayout"> + <property name="margin"> + <number>0</number> + </property> + <property name="spacing"> + <number>0</number> + </property> + <item row="0" column="0"> + <layout class="QVBoxLayout" name="mainLayout"> + <property name="spacing"> + <number>3</number> + </property> + <item> + <widget class="QFrame" name="frmRoom"> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Sunken</enum> + </property> + <property name="lineWidth"> + <number>2</number> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QToolBar" name="toolBar"> + <property name="maximumSize"> + <size> + <width>129000</width> + <height>12900</height> + </size> + </property> + <property name="windowTitle"> + <string>toolBar</string> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="autoFillBackground"> + <bool>true</bool> + </property> + <property name="movable"> + <bool>false</bool> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonIconOnly</enum> + </property> + <property name="floatable"> + <bool>false</bool> + </property> + <attribute name="toolBarArea"> + <enum>LeftToolBarArea</enum> + </attribute> + <attribute name="toolBarBreak"> + <bool>false</bool> + </attribute> + <addaction name="action_Exit"/> + <addaction name="separator"/> + <addaction name="action_Lock"/> + <addaction name="separator"/> + <addaction name="action_BroadcastScreen"/> + <addaction name="action_StudentToTutor"/> + <addaction name="separator"/> + <addaction name="action_TutorToAll"/> + <addaction name="action_TutorToStudent"/> + </widget> + <action name="action_Exit"> + <property name="icon"> + <iconset resource="../../pvsmgr.qrc"> + <normaloff>:/exit</normaloff> + <normalon>:/exit</normalon>:/exit</iconset> + </property> + <property name="text"> + <string>&Exit</string> + </property> + <property name="toolTip"> + <string>Exit</string> + </property> + <property name="shortcut"> + <string>Ctrl+Q</string> + </property> + </action> + <action name="action_Lock"> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="icon"> + <iconset resource="../../pvsmgr.qrc"> + <normaloff>:/lock</normaloff>:/lock</iconset> + </property> + <property name="text"> + <string>lock</string> + </property> + <property name="toolTip"> + <string>Lock or Unlock all Clients</string> + </property> + <property name="shortcut"> + <string>Ctrl+A</string> + </property> + </action> + <action name="action_BroadcastScreen"> + <property name="icon"> + <iconset resource="../../pvsmgr.qrc"> + <normaloff>:/student2all</normaloff>:/student2all</iconset> + </property> + <property name="text"> + <string>Broadcast Screen to Everyone</string> + </property> + <property name="toolTip"> + <string>Student's Screen to Everyone</string> + </property> + </action> + <action name="action_StudentToTutor"> + <property name="icon"> + <iconset resource="../../pvsmgr.qrc"> + <normaloff>:/student2tutor</normaloff>:/student2tutor</iconset> + </property> + <property name="text"> + <string>Student's Screen to Tutor</string> + </property> + </action> + <action name="action_TutorToStudent"> + <property name="icon"> + <iconset resource="../../pvsmgr.qrc"> + <normaloff>:/tutor2student</normaloff>:/tutor2student</iconset> + </property> + <property name="text"> + <string>Tutor's Screen to Student</string> + </property> + </action> + <action name="action_TutorToAll"> + <property name="icon"> + <iconset resource="../../pvsmgr.qrc"> + <normaloff>:/tutor2all</normaloff>:/tutor2all</iconset> + </property> + <property name="text"> + <string>Tutor's Screen to Everyone</string> + </property> + </action> + </widget> + <layoutdefault spacing="6" margin="11"/> + <resources> + <include location="../../pvsmgr.qrc"/> + </resources> + <connections/> +</ui> diff --git a/gui/server_normal/sessionname.ui b/gui/server_normal/sessionname.ui new file mode 100644 index 0000000..6171b60 --- /dev/null +++ b/gui/server_normal/sessionname.ui @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>SessionName</class> + <widget class="QDialog" name="SessionName"> + <property name="windowModality"> + <enum>Qt::ApplicationModal</enum> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>400</width> + <height>178</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="windowTitle"> + <string>Set session name</string> + </property> + <widget class="QLabel" name="label"> + <property name="geometry"> + <rect> + <x>10</x> + <y>10</y> + <width>171</width> + <height>21</height> + </rect> + </property> + <property name="text"> + <string>New session name</string> + </property> + </widget> + <widget class="QPushButton" name="cmdRandom"> + <property name="geometry"> + <rect> + <x>240</x> + <y>80</y> + <width>151</width> + <height>27</height> + </rect> + </property> + <property name="text"> + <string>Random name</string> + </property> + </widget> + <widget class="QDialogButtonBox" name="bboxOkCancel"> + <property name="geometry"> + <rect> + <x>210</x> + <y>140</y> + <width>179</width> + <height>27</height> + </rect> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + <widget class="QLineEdit" name="txtName"> + <property name="geometry"> + <rect> + <x>10</x> + <y>30</y> + <width>381</width> + <height>31</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>14</pointsize> + <weight>75</weight> + <italic>true</italic> + <bold>true</bold> + </font> + </property> + </widget> + </widget> + <resources/> + <connections/> +</ui> diff --git a/i18n/client/pvsclient_ar_JO.ts b/i18n/client/pvsclient_ar_JO.ts new file mode 100644 index 0000000..be8cf42 --- /dev/null +++ b/i18n/client/pvsclient_ar_JO.ts @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>ConnectWindow</name> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/> + <source>Connected.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/> + <source>&Disconnect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/> + <source>&Stop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/> + <source>Ready to connect; please enter session name.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/> + <source>Scanning for session %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/> + <source>Found session, connecting...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/> + <source>Waiting for server challenge...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/> + <source>Replied to challenge, sent own...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/> + <source>Logging in...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/> + <source>Connection established!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/> + <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Dialog</name> + <message> + <location filename="../../build/ui_connect.h" line="80"/> + <source>Connect to PVS session</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="81"/> + <source>Session Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="82"/> + <source>Hide</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Toolbar</name> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/> + <source>&Quit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/> + <source>Offline</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/> + <source>Online</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ToolbarClass</name> + <message> + <location filename="../../build/ui_toolbar.h" line="169"/> + <source>Form</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="171"/> + <source>Menu</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="173"/> + <source>Host:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="175"/> + <source>Click to connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="177"/> + <source>-</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/i18n/client/pvsclient_de_DE.ts b/i18n/client/pvsclient_de_DE.ts new file mode 100644 index 0000000..2d7f7c7 --- /dev/null +++ b/i18n/client/pvsclient_de_DE.ts @@ -0,0 +1,522 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de_DE" sourcelanguage="en_US"> +<context> + <name>AboutDialog</name> + <message> + <source>Version: </source> + <translation type="obsolete">Version: </translation> + </message> +</context> +<context> + <name>AboutDialogClass</name> + <message> + <source>PVS - About</source> + <translation type="obsolete">PVS -Über</translation> + </message> + <message> + <source>About</source> + <translation type="obsolete">Über</translation> + </message> + <message> + <source>Authors</source> + <translation type="obsolete">Autoren</translation> + </message> + <message> + <source>Translation</source> + <translation type="obsolete">Übersetzung</translation> + </message> +</context> +<context> + <name>ClientChatDialog</name> + <message> + <source>&Send File...</source> + <translation type="obsolete">Datei &Senden...</translation> + </message> + <message> + <source> has joined the chat.</source> + <translation type="obsolete"> ist dem Chat beigetreten.</translation> + </message> + <message> + <source> has left the chat.</source> + <translation type="obsolete"> hat den Chat verlassen.</translation> + </message> + <message> + <source>PVS File Transfer</source> + <translation type="obsolete">PVS Dateiübertragung</translation> + </message> + <message> + <source>Send file '</source> + <translation type="obsolete">Datei senden '</translation> + </message> + <message> + <source>' to </source> + <translation type="obsolete">' an </translation> + </message> + <message> + <source>Connected.</source> + <translation type="obsolete">Verbunden.</translation> + </message> + <message> + <source>Disconnected.</source> + <translation type="obsolete">Getrennt.</translation> + </message> + <message> + <source>Message from <</source> + <translation type="obsolete">Nachricht von <</translation> + </message> +</context> +<context> + <name>ClientChatDialogClass</name> + <message> + <source>PVS - Chat </source> + <translation type="obsolete">PVS - Chat</translation> + </message> + <message> + <source>&Send</source> + <translation type="obsolete">&Senden</translation> + </message> +</context> +<context> + <name>ClientConfigDialogClass</name> + <message> + <source>PVS - Configuration</source> + <translation type="obsolete">PVS - Konfiguration</translation> + </message> + <message> + <source>Allow vnc access to lecturer?</source> + <translation type="obsolete">Dozenten VNC Zugriff erlauben?</translation> + </message> + <message> + <source>Full access</source> + <translation type="obsolete">Voller Zugriff</translation> + </message> + <message> + <source>View only</source> + <translation type="obsolete">Nur zuschauen</translation> + </message> + <message> + <source>None</source> + <translation type="obsolete">Kein</translation> + </message> + <message> + <source>Allow vnc access to other?</source> + <translation type="obsolete">Anderen VNC Zugriff erlauben?</translation> + </message> + <message> + <source>Accept chat messages</source> + <translation type="obsolete">Chat Nachrichten erlauben</translation> + </message> + <message> + <source>Accept file transfers</source> + <translation type="obsolete">Dateiübertragung erlauben</translation> + </message> + <message> + <source>Permissions</source> + <translation type="obsolete">Rechte</translation> + </message> + <message> + <source>Top Left</source> + <translation type="obsolete">Oben Links</translation> + </message> + <message> + <source>Top Center</source> + <translation type="obsolete">Oben Mitte</translation> + </message> + <message> + <source>Top Right</source> + <translation type="obsolete">Oben Rechts</translation> + </message> + <message> + <source>Bottom Left</source> + <translation type="obsolete">Unten Links</translation> + </message> + <message> + <source>Bottom Center</source> + <translation type="obsolete">Unten Mitte</translation> + </message> + <message> + <source>Bottom Right</source> + <translation type="obsolete">Unten Rechts</translation> + </message> + <message> + <source>Display</source> + <translation type="obsolete">Anzeige</translation> + </message> +</context> +<context> + <name>ClientFileReceiveDialog</name> + <message> + <source>PVS File Transfer</source> + <translation type="obsolete">PVS Dateiübertragung</translation> + </message> + <message> + <source>User '</source> + <translation type="obsolete">Benutzer '</translation> + </message> + <message> + <source>' would like to send you a file: </source> + <translation type="obsolete">' möchte ihnen eine Datei senden:</translation> + </message> + <message> + <source>Open File</source> + <translation type="obsolete">Datei Öffnen</translation> + </message> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Dateiübertragung</translation> + </message> + <message> + <source>File Transfer complete.</source> + <translation type="obsolete">Dateiübertragung beendet.</translation> + </message> + <message> + <source>File Transfer canceled!</source> + <translation type="obsolete">Dateiübertragung abgebrochen!</translation> + </message> +</context> +<context> + <name>ClientFileReceiveDialogClass</name> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Dateiübertragung</translation> + </message> + <message> + <source>Receiving from:</source> + <translation type="obsolete">Empfang von:</translation> + </message> + <message> + <source>unknown</source> + <translation type="obsolete">unbekannt</translation> + </message> + <message> + <source>0</source> + <translation type="obsolete">0</translation> + </message> + <message> + <source>/</source> + <translation type="obsolete">/</translation> + </message> + <message> + <source>&Cancel</source> + <translation type="obsolete">&Abbruch</translation> + </message> +</context> +<context> + <name>ClientFileSendDialog</name> + <message> + <source>Open File</source> + <translation type="obsolete">Datei Öffnen</translation> + </message> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PBS -Dateiübertragung</translation> + </message> + <message> + <source>File Transfer complete.</source> + <translation type="obsolete">Dateiübertragung beendet.</translation> + </message> + <message> + <source>File Transfer canceled!</source> + <translation type="obsolete">Dateiübertragung abgebrochen!</translation> + </message> +</context> +<context> + <name>ClientFileSendDialogClass</name> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Dateiübertragung</translation> + </message> + <message> + <source>Sending to:</source> + <translation type="obsolete">Senden an:</translation> + </message> + <message> + <source>unknown</source> + <translation type="obsolete">unbekannt</translation> + </message> + <message> + <source>0</source> + <translation type="obsolete">0</translation> + </message> + <message> + <source>/</source> + <translation type="obsolete">/</translation> + </message> + <message> + <source>&Cancel</source> + <translation type="obsolete">&Abbruch</translation> + </message> +</context> +<context> + <name>ClientNicklistDialogClass</name> + <message> + <source>PVS - Users</source> + <translation type="obsolete">PVS - Benutzer</translation> + </message> + <message> + <source>Select user:</source> + <translation type="obsolete">Benutzer auswählen:</translation> + </message> +</context> +<context> + <name>ClientToolbarClass</name> + <message> + <source>Menu</source> + <translation type="obsolete">Menü</translation> + </message> + <message> + <source>Click to connect</source> + <translation type="obsolete">Zum Verbinden Klicken</translation> + </message> + <message> + <source>Enable/Disable VNC only for this session</source> + <translation type="obsolete">VNC nur für diese Sitzung ein- und ausschalten</translation> + </message> + <message> + <source>Allow VNC</source> + <translation type="obsolete">VNC erlauben</translation> + </message> +</context> +<context> + <name>ConnectWindow</name> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/> + <source>Connected.</source> + <translation type="unfinished">Verbunden.</translation> + </message> + <message> + <source>Connect</source> + <translation type="obsolete">Verbinden</translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/> + <source>&Disconnect</source> + <translation type="unfinished">&Trennen</translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/> + <source>&Stop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/> + <source>Ready to connect; please enter session name.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/> + <source>Scanning for session %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/> + <source>Found session, connecting...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/> + <source>Waiting for server challenge...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/> + <source>Replied to challenge, sent own...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/> + <source>Logging in...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/> + <source>Connection established!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/> + <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Dialog</name> + <message> + <location filename="../../build/ui_connect.h" line="80"/> + <source>Connect to PVS session</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="81"/> + <source>Session Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="82"/> + <source>Hide</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>InfoDialogClass</name> + <message> + <source>PVS - Information</source> + <translation type="obsolete">PVS - Information</translation> + </message> +</context> +<context> + <name>PVSGUI</name> + <message> + <source>Connect</source> + <translation type="obsolete">Verbinden</translation> + </message> + <message> + <source>Show &toolbar</source> + <translation type="obsolete">&Werkzeugleiste anzeigen</translation> + </message> + <message> + <source>&Disconnect</source> + <translation type="obsolete">&Trennen</translation> + </message> + <message> + <source>&Send File</source> + <translation type="obsolete">Datei &Senden</translation> + </message> + <message> + <source>&Config</source> + <translation type="obsolete">&Konfiguration</translation> + </message> + <message> + <source>&Information</source> + <translation type="obsolete">&Information</translation> + </message> + <message> + <source>&About</source> + <translation type="obsolete">&Über</translation> + </message> + <message> + <source>&Quit</source> + <translation type="obsolete">&Beenden</translation> + </message> + <message> + <source>PVS Connection</source> + <translation type="obsolete">PVS Verbindung</translation> + </message> + <message> + <source>Please enter password (If not needed leave blank):</source> + <translation type="obsolete">Bitte geben sie ein Passwor ein (Falls nicht erforderlich einfach leer lassen):</translation> + </message> + <message> + <source>Are you sure you want to disconnect?</source> + <translation type="obsolete">Sind sie sicher dass sie die Verbindung trennen möchten?</translation> + </message> + <message> + <source>PVS connection</source> + <translation type="obsolete">PVS Verbindung</translation> + </message> + <message> + <source>Connected to </source> + <translation type="obsolete">Verbunden mit </translation> + </message> + <message> + <source>Disconnected</source> + <translation type="obsolete">Getrennt</translation> + </message> + <message> + <source>New host available: </source> + <translation type="obsolete">Neuer Host verfügbar: </translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <source>Usage: pvsgui [OPTIONS]...</source> + <translation type="obsolete">Aufruf: pvsgui [OPTIONEN]...</translation> + </message> + <message> + <source>Start the Pool Video Switch GUI.</source> + <translation type="obsolete">Startet die Pool Video Switch GUI.</translation> + </message> + <message> + <source>Options:</source> + <translation type="obsolete">Optionen:</translation> + </message> + <message> + <source>Start only with systray icon.</source> + <translation type="obsolete">Starte nur mit Symbol in Systray.</translation> + </message> + <message> + <source>Show this help text and quit.</source> + <translation type="obsolete">Zeige diesen Hilfetext an und beende.</translation> + </message> + <message> + <source>Show version and quit.</source> + <translation type="obsolete">Zeige Versionsinformationen an und beende.</translation> + </message> + <message> + <source>Version: </source> + <translation type="obsolete">Version: </translation> + </message> +</context> +<context> + <name>Toolbar</name> + <message> + <source>&Disconnect</source> + <translation type="obsolete">&Trennen</translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/> + <source>&Quit</source> + <translation type="unfinished">&Beenden</translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/> + <source>Offline</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/> + <source>Online</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ToolbarClass</name> + <message> + <location filename="../../build/ui_toolbar.h" line="169"/> + <source>Form</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="171"/> + <source>Menu</source> + <translation type="unfinished">Menü</translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="173"/> + <source>Host:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="175"/> + <source>Click to connect</source> + <translation type="unfinished">Zum Verbinden Klicken</translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="177"/> + <source>-</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/i18n/client/pvsclient_es_MX.ts b/i18n/client/pvsclient_es_MX.ts new file mode 100644 index 0000000..5b68291 --- /dev/null +++ b/i18n/client/pvsclient_es_MX.ts @@ -0,0 +1,550 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="es_MX" sourcelanguage="en_US"> +<context> + <name>AboutDialog</name> + <message> + <source>Version: </source> + <translation type="obsolete">Version: </translation> + </message> +</context> +<context> + <name>AboutDialogClass</name> + <message> + <source>PVS - About</source> + <translation type="obsolete">PVS - Acerca de</translation> + </message> + <message> + <source><a href="http://www.gnu.org/licenses/gpl-2.0.txt">License: GNU General Public License Version 2</a></source> + <translation type="obsolete"><a href="http://www.gnu.org/licenses/gpl-2.0.txt">License: GNU General Public License Version 2</a></translation> + </message> + <message> + <source>About</source> + <translation type="obsolete">Acerca de</translation> + </message> + <message> + <source>Authors</source> + <translation type="obsolete">Autores</translation> + </message> + <message> + <source>Translation</source> + <translation type="obsolete">Traducción</translation> + </message> +</context> +<context> + <name>ClientChatDialog</name> + <message> + <source>&Send File...</source> + <translation type="obsolete">Enviar archivo...</translation> + </message> + <message> + <source> has joined the chat.</source> + <translation type="obsolete"> ha ingresado al chat.</translation> + </message> + <message> + <source> has left the chat.</source> + <translation type="obsolete"> ha abandonado el chat</translation> + </message> + <message> + <source>PVS File Transfer</source> + <translation type="obsolete">PVS Transferencia de datos</translation> + </message> + <message> + <source>Send file '</source> + <translation type="obsolete">Enviar archivo '</translation> + </message> + <message> + <source>' to </source> + <translation type="obsolete">' a </translation> + </message> + <message> + <source>Connected.</source> + <translation type="obsolete">Conectado.</translation> + </message> + <message> + <source>Disconnected.</source> + <translation type="obsolete">Desconectado.</translation> + </message> + <message> + <source>Message from <</source> + <translation type="obsolete">Mensaje de <</translation> + </message> +</context> +<context> + <name>ClientChatDialogClass</name> + <message> + <source>PVS - Chat </source> + <translation type="obsolete">PVS - Chat</translation> + </message> + <message> + <source>&Send</source> + <translation type="obsolete">&Enviar</translation> + </message> +</context> +<context> + <name>ClientConfigDialogClass</name> + <message> + <source>PVS - Configuration</source> + <translation type="obsolete">PVS - Configuración</translation> + </message> + <message> + <source>Allow vnc access to lecturer?</source> + <translation type="obsolete">Permitir al profesor el acceso VNC?</translation> + </message> + <message> + <source>Full access</source> + <translation type="obsolete">Acceso completo</translation> + </message> + <message> + <source>View only</source> + <translation type="obsolete">Solo ver</translation> + </message> + <message> + <source>None</source> + <translation type="obsolete">Ninguno</translation> + </message> + <message> + <source>Allow vnc access to other?</source> + <translation type="obsolete">Permitir a otros el acceso VNC?</translation> + </message> + <message> + <source>Accept chat messages</source> + <translation type="obsolete">Aceptar mensages de chat?</translation> + </message> + <message> + <source>Accept file transfers</source> + <translation type="obsolete">Aceptar transferencias de datos?</translation> + </message> + <message> + <source>Permissions</source> + <translation type="obsolete">Permisos</translation> + </message> + <message> + <source>Top Left</source> + <translation type="obsolete">Esquina superior izquierda</translation> + </message> + <message> + <source>Top Center</source> + <translation type="obsolete">Arriba centrado</translation> + </message> + <message> + <source>Top Right</source> + <translation type="obsolete">Esquina superion derecha</translation> + </message> + <message> + <source>Bottom Left</source> + <translation type="obsolete">Esquina inferior izquierda</translation> + </message> + <message> + <source>Bottom Center</source> + <translation type="obsolete">Abajo centrado</translation> + </message> + <message> + <source>Bottom Right</source> + <translation type="obsolete">Esquina inferior derecha</translation> + </message> + <message> + <source>Display</source> + <translation type="obsolete">Pantalla</translation> + </message> +</context> +<context> + <name>ClientFileReceiveDialog</name> + <message> + <source>PVS File Transfer</source> + <translation type="obsolete">PVS Transferencia de datos</translation> + </message> + <message> + <source>User '</source> + <translation type="obsolete">Usuario '</translation> + </message> + <message> + <source>' would like to send you a file: </source> + <translation type="obsolete">' desea enviarle un archivo: </translation> + </message> + <message> + <source>Open File</source> + <translation type="obsolete">Abiri archivo</translation> + </message> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Transferencia de datos</translation> + </message> + <message> + <source>File Transfer complete.</source> + <translation type="obsolete">La transferencia de datos ha sido completada.</translation> + </message> + <message> + <source>File Transfer canceled!</source> + <translation type="obsolete">La transferencia de datos ha sido cancelada!</translation> + </message> +</context> +<context> + <name>ClientFileReceiveDialogClass</name> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Transferencia de datos</translation> + </message> + <message> + <source>Receiving from:</source> + <translation type="obsolete">Recibiendo de:</translation> + </message> + <message> + <source>unknown</source> + <translation type="obsolete">desconocido</translation> + </message> + <message> + <source>0</source> + <translation type="obsolete">0</translation> + </message> + <message> + <source>/</source> + <translation type="obsolete">/</translation> + </message> + <message> + <source>&Cancel</source> + <translation type="obsolete">&Cancelar</translation> + </message> +</context> +<context> + <name>ClientFileSendDialog</name> + <message> + <source>Open File</source> + <translation type="obsolete">Abrir archivo</translation> + </message> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Transferencia de datos</translation> + </message> + <message> + <source>File Transfer complete.</source> + <translation type="obsolete">La transferencia de datos ha sido completada.</translation> + </message> + <message> + <source>File Transfer canceled!</source> + <translation type="obsolete">La transferencia de datos ha sido cancelada!</translation> + </message> +</context> +<context> + <name>ClientFileSendDialogClass</name> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Transferencia de datos</translation> + </message> + <message> + <source>Sending to:</source> + <translation type="obsolete">Enviando a:</translation> + </message> + <message> + <source>unknown</source> + <translation type="obsolete">desconocido</translation> + </message> + <message> + <source>0</source> + <translation type="obsolete">0</translation> + </message> + <message> + <source>/</source> + <translation type="obsolete">/</translation> + </message> + <message> + <source>&Cancel</source> + <translation type="obsolete">&Cancelar</translation> + </message> +</context> +<context> + <name>ClientNicklistDialogClass</name> + <message> + <source>PVS - Users</source> + <translation type="obsolete">PVS - Usuarios</translation> + </message> + <message> + <source>Select user:</source> + <translation type="obsolete">Seleccionar usuario:</translation> + </message> +</context> +<context> + <name>ClientToolbarClass</name> + <message> + <source>Form</source> + <translation type="obsolete">de</translation> + </message> + <message> + <source>Menu</source> + <translation type="obsolete">Menu</translation> + </message> + <message> + <source>Host:</source> + <translation type="obsolete">Host:</translation> + </message> + <message> + <source>Click to connect</source> + <translation type="obsolete">Click para conectar</translation> + </message> + <message> + <source>-</source> + <translation type="obsolete">-</translation> + </message> + <message> + <source>Enable/Disable VNC only for this session</source> + <translation type="obsolete">Avilitar/Desavilitar VNC solamente para esta sesión</translation> + </message> + <message> + <source>Allow VNC</source> + <translation type="obsolete">Permitir VNC</translation> + </message> + <message> + <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;">Pool Video Switch</span></p></body></html></source> + <translation type="obsolete"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;">Pool Video Switch</span></p></body></html></translation> + </message> +</context> +<context> + <name>ConnectWindow</name> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/> + <source>Connected.</source> + <translation type="unfinished">Conectado.</translation> + </message> + <message> + <source>Connect</source> + <translation type="obsolete">Conectar</translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/> + <source>&Disconnect</source> + <translation type="unfinished">&Desconectar</translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/> + <source>&Stop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/> + <source>Ready to connect; please enter session name.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/> + <source>Scanning for session %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/> + <source>Found session, connecting...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/> + <source>Waiting for server challenge...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/> + <source>Replied to challenge, sent own...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/> + <source>Logging in...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/> + <source>Connection established!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/> + <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Dialog</name> + <message> + <location filename="../../build/ui_connect.h" line="80"/> + <source>Connect to PVS session</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="81"/> + <source>Session Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="82"/> + <source>Hide</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>InfoDialogClass</name> + <message> + <source>PVS - Information</source> + <translation type="obsolete">PVS - Información</translation> + </message> + <message> + <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:72pt; font-weight:600; color:#0000ff;">HOST</span></p></body></html></source> + <translation type="obsolete"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:72pt; font-weight:600; color:#0000ff;">HOST</span></p></body></html></translation> + </message> + <message> + <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:48pt; font-weight:600; color:#ff0000;">PASSWD</span></p></body></html></source> + <translation type="obsolete"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:48pt; font-weight:600; color:#ff0000;">PASSWD</span></p></body></html></translation> + </message> +</context> +<context> + <name>PVSGUI</name> + <message> + <source>Connect</source> + <translation type="obsolete">Conectar</translation> + </message> + <message> + <source>&Disconnect</source> + <translation type="obsolete">&Desconectar</translation> + </message> + <message> + <source>C&hat</source> + <translation type="obsolete">???</translation> + </message> + <message> + <source>&Send File</source> + <translation type="obsolete">&Enviar archivo</translation> + </message> + <message> + <source>&Config</source> + <translation type="obsolete">&Configuración</translation> + </message> + <message> + <source>&Information</source> + <translation type="obsolete">&Información</translation> + </message> + <message> + <source>&About</source> + <translation type="obsolete">&Acerca de</translation> + </message> + <message> + <source>&Quit</source> + <translation type="obsolete">&Cerrar</translation> + </message> + <message> + <source>PVS Connection</source> + <translation type="obsolete">PVS Connección</translation> + </message> + <message> + <source>Please enter password (If not needed leave blank):</source> + <translation type="obsolete">Porfavor ingrese una contraseña (Deje la seccion vacia si no lo necesita):</translation> + </message> + <message> + <source>Are you sure you want to disconnect?</source> + <translation type="obsolete">Realmente desea desconectarse?</translation> + </message> + <message> + <source>PVS connection</source> + <translation type="obsolete">PVS Connección</translation> + </message> + <message> + <source>Connected to </source> + <translation type="obsolete">Connectar a </translation> + </message> + <message> + <source>Disconnected</source> + <translation type="obsolete">Desconectado</translation> + </message> + <message> + <source>New host available: </source> + <translation type="obsolete">Nuevo Host disponible: </translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <source>Version: </source> + <translation type="obsolete">Version: </translation> + </message> +</context> +<context> + <name>Toolbar</name> + <message> + <source>&Disconnect</source> + <translation type="obsolete">&Desconectar</translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/> + <source>&Quit</source> + <translation type="unfinished">&Cerrar</translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/> + <source>Offline</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/> + <source>Online</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ToolbarClass</name> + <message> + <location filename="../../build/ui_toolbar.h" line="169"/> + <source>Form</source> + <translation type="unfinished">de</translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="171"/> + <source>Menu</source> + <translation type="unfinished">Menu</translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="173"/> + <source>Host:</source> + <translation type="unfinished">Host:</translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="175"/> + <source>Click to connect</source> + <translation type="unfinished">Click para conectar</translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="177"/> + <source>-</source> + <translation type="unfinished">-</translation> + </message> +</context> +</TS> diff --git a/i18n/client/pvsclient_fr_FR.ts b/i18n/client/pvsclient_fr_FR.ts new file mode 100644 index 0000000..be8cf42 --- /dev/null +++ b/i18n/client/pvsclient_fr_FR.ts @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>ConnectWindow</name> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/> + <source>Connected.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/> + <source>&Disconnect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/> + <source>&Stop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/> + <source>Ready to connect; please enter session name.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/> + <source>Scanning for session %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/> + <source>Found session, connecting...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/> + <source>Waiting for server challenge...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/> + <source>Replied to challenge, sent own...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/> + <source>Logging in...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/> + <source>Connection established!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/> + <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Dialog</name> + <message> + <location filename="../../build/ui_connect.h" line="80"/> + <source>Connect to PVS session</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="81"/> + <source>Session Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="82"/> + <source>Hide</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Toolbar</name> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/> + <source>&Quit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/> + <source>Offline</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/> + <source>Online</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ToolbarClass</name> + <message> + <location filename="../../build/ui_toolbar.h" line="169"/> + <source>Form</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="171"/> + <source>Menu</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="173"/> + <source>Host:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="175"/> + <source>Click to connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="177"/> + <source>-</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/i18n/client/pvsclient_pl_PL.ts b/i18n/client/pvsclient_pl_PL.ts new file mode 100644 index 0000000..be8cf42 --- /dev/null +++ b/i18n/client/pvsclient_pl_PL.ts @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>ConnectWindow</name> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="75"/> + <source>Connected.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="74"/> + <source>&Disconnect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="81"/> + <source>&Stop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="83"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="88"/> + <source>Ready to connect; please enter session name.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="91"/> + <source>Scanning for session %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="95"/> + <source>Found session, connecting...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="98"/> + <source>Waiting for server challenge...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="101"/> + <source>Replied to challenge, sent own...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="104"/> + <source>Logging in...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="107"/> + <source>Connection established!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/connectwindow/connectwindow.cpp" line="113"/> + <source>Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Dialog</name> + <message> + <location filename="../../build/ui_connect.h" line="80"/> + <source>Connect to PVS session</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="81"/> + <source>Session Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_connect.h" line="82"/> + <source>Hide</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Toolbar</name> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="38"/> + <source>&Connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="40"/> + <source>&Quit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="168"/> + <source>Offline</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/client/toolbar/toolbar.cpp" line="174"/> + <source>Online</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ToolbarClass</name> + <message> + <location filename="../../build/ui_toolbar.h" line="169"/> + <source>Form</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="171"/> + <source>Menu</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="173"/> + <source>Host:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="175"/> + <source>Click to connect</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_toolbar.h" line="177"/> + <source>-</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/i18n/server/pvsmgr_ar_JO.ts b/i18n/server/pvsmgr_ar_JO.ts new file mode 100644 index 0000000..71f8e51 --- /dev/null +++ b/i18n/server/pvsmgr_ar_JO.ts @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>MainWindow</name> + <message> + <location filename="../../build/ui_mainwindow.h" line="130"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/> + <source>Exit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/> + <source>Session Name: %1 [click to edit]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>No Projection Source selected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>You did not select any active client as the connection source.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/> + <source>Projection Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/> + <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="135"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/> + <source>Lock or Unlock all Clients</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="127"/> + <source>PVS2 Manager</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="128"/> + <source>&Exit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="132"/> + <source>Ctrl+Q</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="133"/> + <source>lock</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="137"/> + <source>Ctrl+A</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="138"/> + <source>Broadcast Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="140"/> + <source>Student's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="142"/> + <source>Student's Screen to Tutor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="143"/> + <source>Tutor's Screen to Student</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="144"/> + <source>Tutor's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="145"/> + <source>toolBar</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>SessionName</name> + <message> + <location filename="../../build/ui_sessionname.h" line="72"/> + <source>Set session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="73"/> + <source>New session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="74"/> + <source>Random name</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/i18n/server/pvsmgr_de_DE.ts b/i18n/server/pvsmgr_de_DE.ts new file mode 100644 index 0000000..abf597e --- /dev/null +++ b/i18n/server/pvsmgr_de_DE.ts @@ -0,0 +1,177 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de_DE" sourcelanguage="en_US"> +<context> + <name>AboutDialog</name> + <message> + <source>Version: </source> + <translation type="obsolete">Version:</translation> + </message> +</context> +<context> + <name>AboutDialogClass</name> + <message> + <source>PVS - About</source> + <translation type="obsolete">PVS - Über</translation> + </message> + <message> + <source>About</source> + <translation type="obsolete">Über</translation> + </message> + <message> + <source>Authors</source> + <translation type="obsolete">Autoren</translation> + </message> + <message> + <source>Translation</source> + <translation type="obsolete">Übersetzung</translation> + </message> +</context> +<context> + <name>ClientFileSendDialogClass</name> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Dateiübertragung</translation> + </message> + <message> + <source>Sending to:</source> + <translation type="obsolete">Senden an:</translation> + </message> + <message> + <source>unknown</source> + <translation type="obsolete">unbekannt</translation> + </message> + <message> + <source>0</source> + <translation type="obsolete">0</translation> + </message> + <message> + <source>/</source> + <translation type="obsolete">/</translation> + </message> + <message> + <source>&Cancel</source> + <translation type="obsolete">&Abbruch</translation> + </message> +</context> +<context> + <name>MainWindow</name> + <message> + <location filename="../../build/ui_mainwindow.h" line="130"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/> + <source>Exit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/> + <source>Session Name: %1 [click to edit]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>No Projection Source selected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>You did not select any active client as the connection source.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/> + <source>Projection Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/> + <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="135"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/> + <source>Lock or Unlock all Clients</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="127"/> + <source>PVS2 Manager</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="128"/> + <source>&Exit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="132"/> + <source>Ctrl+Q</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="133"/> + <source>lock</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="137"/> + <source>Ctrl+A</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="138"/> + <source>Broadcast Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="140"/> + <source>Student's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="142"/> + <source>Student's Screen to Tutor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="143"/> + <source>Tutor's Screen to Student</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="144"/> + <source>Tutor's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="145"/> + <source>toolBar</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ServerFileTransfert</name> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Dateiübertragung</translation> + </message> +</context> +<context> + <name>SessionName</name> + <message> + <location filename="../../build/ui_sessionname.h" line="72"/> + <source>Set session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="73"/> + <source>New session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="74"/> + <source>Random name</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/i18n/server/pvsmgr_es_MX.ts b/i18n/server/pvsmgr_es_MX.ts new file mode 100644 index 0000000..ec161f7 --- /dev/null +++ b/i18n/server/pvsmgr_es_MX.ts @@ -0,0 +1,750 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="es_MX" sourcelanguage="en_US"> +<context> + <name>AboutDialog</name> + <message> + <source>Version: </source> + <translation type="obsolete">Version: </translation> + </message> +</context> +<context> + <name>AboutDialogClass</name> + <message> + <source>PVS - About</source> + <translation type="obsolete">PVS - Acerca de</translation> + </message> + <message> + <source><a href="http://www.gnu.org/licenses/gpl-2.0.txt">License: GNU General Public License Version 2</a></source> + <translation type="obsolete"><a href="http://www.gnu.org/licenses/gpl-2.0.txt">Licencia: GNU General Public License Version 2</a></translation> + </message> + <message> + <source>About</source> + <translation type="obsolete">Acerca de</translation> + </message> + <message> + <source>Authors</source> + <translation type="obsolete">Autores</translation> + </message> + <message> + <source>Translation</source> + <translation type="obsolete">Traducción</translation> + </message> +</context> +<context> + <name>ClientFileSendDialogClass</name> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Transferencia de datos</translation> + </message> + <message> + <source>Sending to:</source> + <translation type="obsolete">Enviando a:</translation> + </message> + <message> + <source>unknown</source> + <translation type="obsolete">desconocido</translation> + </message> + <message> + <source>0</source> + <translation type="obsolete">0</translation> + </message> + <message> + <source>/</source> + <translation type="obsolete">/</translation> + </message> + <message> + <source>&Cancel</source> + <translation type="obsolete">&Cancelar</translation> + </message> +</context> +<context> + <name>ConnectionFrame</name> + <message> + <source>&Remove dummy...</source> + <translation type="obsolete">&Remover dummy...</translation> + </message> + <message> + <source>&Lock Client(s)</source> + <translation type="obsolete">&Bloquear Cliente(s)</translation> + </message> + <message> + <source>&Unlock Client(s)</source> + <translation type="obsolete">&Desbloquear Cliente(s)</translation> + </message> + <message> + <source>&MsgLock Client(s)</source> + <translation type="obsolete">&Bloquear Cliente(s) con mensaje</translation> + </message> + <message> + <source>&MsgLock all Client(s)</source> + <translation type="obsolete">&Bloquear todos los clientes con mensaje</translation> + </message> + <message> + <source>&Message Client(s)</source> + <translation type="obsolete">&Enviar mensaje a Cliente(s)</translation> + </message> + <message> + <source>&Projection</source> + <translation type="obsolete">&Proyección</translation> + </message> + <message> + <source>&Unprojection</source> + <translation type="obsolete">Retirar proyección</translation> + </message> +</context> +<context> + <name>ConnectionList</name> + <message> + <source>Name</source> + <translation type="obsolete">Nombre</translation> + </message> + <message> + <source>IP</source> + <translation type="obsolete">IP</translation> + </message> + <message> + <source>Username</source> + <translation type="obsolete">Nombre de usuario</translation> + </message> + <message> + <source>&Lock Client(s)</source> + <translation type="obsolete">&Bloquear cliente(s)</translation> + </message> + <message> + <source>&Unlock Client(s)</source> + <translation type="obsolete">&Desbloquear Cliente(s)</translation> + </message> + <message> + <source>&MsgLock Client(s)</source> + <translation type="obsolete">&Bloquear Cliente(s) con mensaje</translation> + </message> + <message> + <source>&MsgLock all Client(s)</source> + <translation type="obsolete">&Bloquear todos los Clientes con mensaje</translation> + </message> + <message> + <source>&Message Client(s)</source> + <translation type="obsolete">&Enviar mensaje a Cliente(s)</translation> + </message> + <message> + <source>&Projection</source> + <translation type="obsolete">Proyección</translation> + </message> + <message> + <source>&Unprojection</source> + <translation type="obsolete">Retirar proyección</translation> + </message> + <message> + <source>No Target is available for a projection! +Perform an unprojection to get a target.</source> + <translation type="obsolete">El objetivo no esta disponible para ser proyectado! Retire una proyección para obtener un objetivo.</translation> + </message> + <message> + <source>This source is already in a projection process involved. + You can perform a unprojection on it to get it free.</source> + <translation type="obsolete">Esta fuente ya ha sido proyectada. Usted puede remover la proyección para liberar la fuente.</translation> + </message> + <message> + <source>To perform a projection you have to select only one source in a list with more than one index!</source> + <translation type="obsolete">Para realizar una proyección debe seleccionar una fuente con más de un indice en la lista!</translation> + </message> + <message> + <source>An unprojection is only possible on a selected source that is involved in a projection process, in a list with more than one index!</source> + <translation type="obsolete">Una projección solamente puede ser removida si la fuente ya ha sido proyectada en una lista con más de un indice.</translation> + </message> + <message> + <source>No Target is available for remote Help! +Perform an unprojection or remove remote help to get a target.</source> + <translation type="obsolete">No hay objetivos disponibles para asistencia remota! Retire una projección o retire una asistencia remota para obtener objetivos.</translation> + </message> + <message> + <source>This source is already in a projection or remote Help process involved. + You can perform a unprojection or remove remote Help on it to get it free.</source> + <translation type="obsolete">Esta fuente ya esta envuelta en un proceso de proyección o asistencia remota. Usted puede retirar la projección o asistencia remota para liberar la fuente.</translation> + </message> +</context> +<context> + <name>ConnectionWindow</name> + <message> + <source>&Add a dummy...</source> + <translation type="obsolete">&Agregar un dummy...</translation> + </message> + <message> + <source>You have to set a Superclient-machine before performing this action.</source> + <translation type="obsolete">Usted debe asignar un super cliente antes de iniciar esta acción.</translation> + </message> +</context> +<context> + <name>Dialog</name> + <message> + <source>Enter the Text for the client(s)</source> + <translation type="obsolete">Ingrese el mensage</translation> + </message> + <message> + <source>ProfileDialog</source> + <translation type="obsolete">Diálogo de perfil</translation> + </message> + <message> + <source>background-color: rgb(255, 255, 255);</source> + <translation type="obsolete">background-color: rgb(255, 255, 255);</translation> + </message> + <message> + <source>&Remove</source> + <translation type="obsolete">&Remover</translation> + </message> + <message> + <source>&Edit</source> + <translation type="obsolete">&Editar</translation> + </message> + <message> + <source>&New</source> + <translation type="obsolete">&Nuevo</translation> + </message> + <message> + <source>&Load</source> + <translation type="obsolete">&Cargar</translation> + </message> + <message> + <source>Add</source> + <translation type="obsolete">Agregar</translation> + </message> + <message> + <source>Close</source> + <translation type="obsolete">Cerrar</translation> + </message> +</context> +<context> + <name>Frame</name> + <message> + <source>View</source> + <translation type="obsolete">Ver</translation> + </message> + <message> + <source>Foto</source> + <translation type="obsolete">Imagen</translation> + </message> + <message> + <source>Lock this client</source> + <translation type="obsolete">Bloquear este cliente</translation> + </message> + <message> + <source>Set as Superclient</source> + <translation type="obsolete">Asignar como super cliente</translation> + </message> + <message> + <source>Unlock this client</source> + <translation type="obsolete">Desbloquear este cliente</translation> + </message> + <message> + <source>You can't lock a Superclient-machine.</source> + <translation type="obsolete">Super clientes no pueden ser bloqueados.</translation> + </message> + <message> + <source>Set client as Superclient</source> + <translation type="obsolete">Asignar cliente como super cliente</translation> + </message> + <message> + <source>Unset client as Superclient</source> + <translation type="obsolete">Desactivar como super cliente</translation> + </message> +</context> +<context> + <name>MainWindow</name> + <message> + <location filename="../../build/ui_mainwindow.h" line="130"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/> + <source>Exit</source> + <translation>Salir</translation> + </message> + <message> + <source>Remove the vnc-Connection for the selected client(s)</source> + <translation type="obsolete">Remover la conexión VNC de los clientes seleccionados</translation> + </message> + <message> + <source>Show the selected client in the whole window</source> + <translation type="obsolete">Mostrar el cliente seleccionado en toda la ventana</translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/> + <source>Session Name: %1 [click to edit]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>No Projection Source selected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>You did not select any active client as the connection source.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/> + <source>Projection Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/> + <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Make a screenshot for the selected client(s)</source> + <translation type="obsolete">Capturar la pantalla de los clientes seleccionados</translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="135"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/> + <source>Lock or Unlock all Clients</source> + <translation>Bloquear o desbloquear todos los clientes</translation> + </message> + <message> + <source>The pvs manager</source> + <translation type="obsolete">PVS Manager</translation> + </message> + <message> + <source>This operation can only be performed for one selected Client!</source> + <translation type="obsolete">Esta operación solamente puede ser realizada para un cliente!</translation> + </message> + <message> + <source>This operation can only be performed for at least one selected Client!</source> + <translation type="obsolete">Esta operación solamente puede ser realizada para el ultimo cliente seleccionado!</translation> + </message> + <message> + <source>You have to set a Superclient-machine before performing this action.</source> + <translation type="obsolete">Usted debe asignar un super cliente antes de realizar esta acción.</translation> + </message> + <message> + <source>Open Image</source> + <translation type="obsolete">Abrir imagen</translation> + </message> + <message> + <source>Image Files (*.png *.jpg *.svg)</source> + <translation type="obsolete">Extensión de imagenes (*.png *.jpg *.svg)</translation> + </message> + <message> + <source>PVSmgr</source> + <translation type="obsolete">PVSmgr</translation> + </message> + <message> + <source>Show Username</source> + <translation type="obsolete">Mostrar nombre de usuario</translation> + </message> + <message> + <source>Ctrl+3</source> + <translation type="obsolete">Ctrl+3</translation> + </message> + <message> + <source>Show IP</source> + <translation type="obsolete">Mostrar IP</translation> + </message> + <message> + <source>Ctrl+2</source> + <translation type="obsolete">Ctrl+2</translation> + </message> + <message> + <source>VNC-Placeholders</source> + <translation type="obsolete">VNC - Marcadores de posición</translation> + </message> + <message> + <source>Show Log</source> + <translation type="obsolete">Mostrar Log</translation> + </message> + <message> + <source>Ctrl+L</source> + <translation type="obsolete">Ctrl+L</translation> + </message> + <message> + <source>Show Normal</source> + <translation type="obsolete">Mostrar normal</translation> + </message> + <message> + <source>Ctrl+O</source> + <translation type="obsolete">Ctrl+O</translation> + </message> + <message> + <source>Show Error</source> + <translation type="obsolete">Mostrar Errores</translation> + </message> + <message> + <source>Ctrl+E</source> + <translation type="obsolete">Ctrl+E</translation> + </message> + <message> + <source>Show Network</source> + <translation type="obsolete">Mostrar Red</translation> + </message> + <message> + <source>Show Terminal</source> + <translation type="obsolete">Mostrar Linea de comandos</translation> + </message> + <message> + <source>Ctrl+T</source> + <translation type="obsolete">Ctrl+T</translation> + </message> + <message> + <source>Show Chat</source> + <translation type="obsolete">Mostrar Chat</translation> + </message> + <message> + <source>Ctrl+G</source> + <translation type="obsolete">Ctrl+G</translation> + </message> + <message> + <source>About pvs</source> + <translation type="obsolete">Acerca de PVS</translation> + </message> + <message> + <source>Ctrl+P</source> + <translation type="obsolete">Ctrl+P</translation> + </message> + <message> + <source>100 x 100</source> + <translation type="obsolete">100 x 100</translation> + </message> + <message> + <source>200 x 200</source> + <translation type="obsolete">200 x 200</translation> + </message> + <message> + <source>500 x 500</source> + <translation type="obsolete">500 x 500</translation> + </message> + <message> + <source>&Disconnect</source> + <translation type="obsolete">&Desconectar</translation> + </message> + <message> + <source>Ctrl+W</source> + <translation type="obsolete">Ctrl+W</translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="127"/> + <source>PVS2 Manager</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="128"/> + <source>&Exit</source> + <translation>&Salir</translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="132"/> + <source>Ctrl+Q</source> + <translation>Ctrl+Q</translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="140"/> + <source>Student's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="142"/> + <source>Student's Screen to Tutor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="143"/> + <source>Tutor's Screen to Student</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="144"/> + <source>Tutor's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Foto</source> + <translation type="obsolete">Imagen</translation> + </message> + <message> + <source>Ctrl+F</source> + <translation type="obsolete">Ctrl+F</translation> + </message> + <message> + <source>view</source> + <translation type="obsolete">ver</translation> + </message> + <message> + <source>View</source> + <translation type="obsolete">Ver</translation> + </message> + <message> + <source>Ctrl+V</source> + <translation type="obsolete">Ctrl+V</translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="133"/> + <source>lock</source> + <translation>bloquear</translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="137"/> + <source>Ctrl+A</source> + <translation>Ctrl+A</translation> + </message> + <message> + <source>Profile &manager</source> + <translation type="obsolete">Perfil &manager</translation> + </message> + <message> + <source>Ctrl+M</source> + <translation type="obsolete">Ctrl+M</translation> + </message> + <message> + <source>Show Name</source> + <translation type="obsolete">Mostrar nombre</translation> + </message> + <message> + <source>Ctrl+1</source> + <translation type="obsolete">Ctrl+1</translation> + </message> + <message> + <source>Chat</source> + <translation type="obsolete">Chat</translation> + </message> + <message> + <source>Start Chat with client(s)</source> + <translation type="obsolete">Iniciar Chat con cliente(s)</translation> + </message> + <message> + <source>Ctrl+D</source> + <translation type="obsolete">Ctrl+D</translation> + </message> + <message> + <source>-</source> + <translation type="obsolete">-</translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="138"/> + <source>Broadcast Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>border-color: rgb(0, 0, 0);</source> + <translation type="obsolete">border-color: rgb(0, 0, 0);</translation> + </message> + <message> + <source>VNC quality</source> + <translation type="obsolete">VNC calidad</translation> + </message> + <message> + <source>HIGH</source> + <translation type="obsolete">Alta</translation> + </message> + <message> + <source>MEDIUM</source> + <translation type="obsolete">Media</translation> + </message> + <message> + <source>LOW</source> + <translation type="obsolete">Baja</translation> + </message> + <message> + <source>Set password</source> + <translation type="obsolete">Asignar contraseña</translation> + </message> + <message> + <source>Thumbnailratio</source> + <translation type="obsolete">Radio de la vista en miniatura</translation> + </message> + <message> + <source>Thumbnailrate</source> + <translation type="obsolete">Frecuancia de actualización para las vistas en miniatura</translation> + </message> + <message> + <source> 0</source> + <translation type="obsolete"> 0</translation> + </message> + <message> + <source>%</source> + <translation type="obsolete">%</translation> + </message> + <message> + <source>background-color: rgb(255, 255, 255);</source> + <translation type="obsolete">background-color: rgb(255, 255, 255);</translation> + </message> + <message> + <source>background-color: rgb(150, 150, 150);</source> + <translation type="obsolete">background-color: rgb(150, 150, 150);</translation> + </message> + <message> + <source>&File</source> + <translation type="obsolete">&Archivo</translation> + </message> + <message> + <source>Load profile </source> + <translation type="obsolete">Cargar perfil</translation> + </message> + <message> + <source>&Clients</source> + <translation type="obsolete">&Clientes</translation> + </message> + <message> + <source>&Logging</source> + <translation type="obsolete">&Logging</translation> + </message> + <message> + <source>&Help</source> + <translation type="obsolete">&Ayuda</translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="145"/> + <source>toolBar</source> + <translation>Barra de herramientas</translation> + </message> +</context> +<context> + <name>MsgDialog</name> + <message> + <source>Dialog</source> + <translation type="obsolete">Dialogo</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancelar</translation> + </message> + <message> + <source>Send</source> + <translation type="obsolete">Enviar</translation> + </message> +</context> +<context> + <name>ProjectionDialog</name> + <message> + <source>Target for Projection</source> + <translation type="obsolete">Objetivo para projección</translation> + </message> +</context> +<context> + <name>ServerChatDialog</name> + <message> + <source>&Send File...</source> + <translation type="obsolete">&Enviar archivo...</translation> + </message> + <message> + <source> has joined the chat.</source> + <translation type="obsolete"> ha ingresado en el chat.</translation> + </message> + <message> + <source> has left the chat.</source> + <translation type="obsolete"> ha abandonado el chat.</translation> + </message> + <message> + <source>PVS File Transfer with </source> + <translation type="obsolete">PVS transferencia de datos con</translation> + </message> + <message> + <source>Send file '</source> + <translation type="obsolete">Enviar archivo '</translation> + </message> + <message> + <source>' to </source> + <translation type="obsolete">' a </translation> + </message> +</context> +<context> + <name>ServerChatDialogClass</name> + <message> + <source>PVSmgr - Chat </source> + <translation type="obsolete">PVSmgr - Chat </translation> + </message> + <message> + <source>&Send</source> + <translation type="obsolete">&Enviar</translation> + </message> +</context> +<context> + <name>ServerFileTransfert</name> + <message> + <source>Open File</source> + <translation type="obsolete">Abrir archivo</translation> + </message> + <message> + <source>PVS File Transfer</source> + <translation type="obsolete">PVS Transferencia de datos</translation> + </message> + <message> + <source>User '</source> + <translation type="obsolete">Usuario '</translation> + </message> + <message> + <source>' would like to send you a file: </source> + <translation type="obsolete">' desea enviarle un archivo: </translation> + </message> + <message> + <source>PVS - File Transfer</source> + <translation type="obsolete">PVS - Transferecia de datos</translation> + </message> + <message> + <source>File Transfer complete.</source> + <translation type="obsolete">La transferencia de datos ha sido completada.</translation> + </message> + <message> + <source>File Transfer canceled!</source> + <translation type="obsolete">La transferencia de datos ha sido cancelada!</translation> + </message> +</context> +<context> + <name>SessionName</name> + <message> + <location filename="../../build/ui_sessionname.h" line="72"/> + <source>Set session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="73"/> + <source>New session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="74"/> + <source>Random name</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>profileDialog</name> + <message> + <source>Profile</source> + <translation type="obsolete">Perfil</translation> + </message> + <message> + <source>This field can't be empty.</source> + <translation type="obsolete">Esta sección no puede estar vacía</translation> + </message> + <message> + <source>This name is already in the list.</source> + <translation type="obsolete">Este nombre ya se encuentra en la lista.</translation> + </message> + <message> + <source>You can only load one profile at time</source> + <translation type="obsolete">Solamenten se puede cargar un perfil a la vez.</translation> + </message> +</context> +<context> + <name>projectionDialog</name> + <message> + <source>Dialog</source> + <translation type="obsolete">Dialogo</translation> + </message> + <message> + <source>Select all</source> + <translation type="obsolete">Seleccionar todo</translation> + </message> + <message> + <source>Cancel</source> + <translation type="obsolete">Cancelar</translation> + </message> + <message> + <source>Project</source> + <translation type="obsolete">Proyectar</translation> + </message> + <message> + <source>Select Target for projection</source> + <translation type="obsolete">Seleccionar objetivo para proyección</translation> + </message> +</context> +</TS> diff --git a/i18n/server/pvsmgr_fr_FR.ts b/i18n/server/pvsmgr_fr_FR.ts new file mode 100644 index 0000000..71f8e51 --- /dev/null +++ b/i18n/server/pvsmgr_fr_FR.ts @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>MainWindow</name> + <message> + <location filename="../../build/ui_mainwindow.h" line="130"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/> + <source>Exit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/> + <source>Session Name: %1 [click to edit]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>No Projection Source selected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>You did not select any active client as the connection source.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/> + <source>Projection Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/> + <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="135"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/> + <source>Lock or Unlock all Clients</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="127"/> + <source>PVS2 Manager</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="128"/> + <source>&Exit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="132"/> + <source>Ctrl+Q</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="133"/> + <source>lock</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="137"/> + <source>Ctrl+A</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="138"/> + <source>Broadcast Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="140"/> + <source>Student's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="142"/> + <source>Student's Screen to Tutor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="143"/> + <source>Tutor's Screen to Student</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="144"/> + <source>Tutor's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="145"/> + <source>toolBar</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>SessionName</name> + <message> + <location filename="../../build/ui_sessionname.h" line="72"/> + <source>Set session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="73"/> + <source>New session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="74"/> + <source>Random name</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/i18n/server/pvsmgr_pl_PL.ts b/i18n/server/pvsmgr_pl_PL.ts new file mode 100644 index 0000000..71f8e51 --- /dev/null +++ b/i18n/server/pvsmgr_pl_PL.ts @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0"> +<context> + <name>MainWindow</name> + <message> + <location filename="../../build/ui_mainwindow.h" line="130"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="59"/> + <source>Exit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="335"/> + <source>Session Name: %1 [click to edit]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>No Projection Source selected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="371"/> + <source>You did not select any active client as the connection source.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="575"/> + <source>Projection Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="576"/> + <source>Could not send screen contents of %1 to other clients: VNC Startup failed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="135"/> + <location filename="../../src/server/mainwindow/mainwindow.cpp" line="60"/> + <source>Lock or Unlock all Clients</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="127"/> + <source>PVS2 Manager</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="128"/> + <source>&Exit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="132"/> + <source>Ctrl+Q</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="133"/> + <source>lock</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="137"/> + <source>Ctrl+A</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="138"/> + <source>Broadcast Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="140"/> + <source>Student's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="142"/> + <source>Student's Screen to Tutor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="143"/> + <source>Tutor's Screen to Student</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="144"/> + <source>Tutor's Screen to Everyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_mainwindow.h" line="145"/> + <source>toolBar</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>SessionName</name> + <message> + <location filename="../../build/ui_sessionname.h" line="72"/> + <source>Set session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="73"/> + <source>New session name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../build/ui_sessionname.h" line="74"/> + <source>Random name</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/icons/altexit.svg b/icons/altexit.svg new file mode 100644 index 0000000..5331ab6 --- /dev/null +++ b/icons/altexit.svg @@ -0,0 +1,301 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + inkscape:label="Pozadí" + sodipodi:version="0.32" + inkscape:version="0.48.3.1 r9886" + version="1.0" + sodipodi:docname="exit.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + height="42" + width="42" + xml:space="preserve"><defs + id="defs3"><linearGradient + inkscape:collect="always" + id="linearGradient5837"><stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5839" /><stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5841" /></linearGradient><linearGradient + inkscape:collect="always" + id="linearGradient5771"><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop5773" /><stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop5775" /></linearGradient><linearGradient + inkscape:collect="always" + id="linearGradient5757"><stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop5759" /><stop + style="stop-color:#b6b9b2;stop-opacity:1" + offset="1" + id="stop5761" /></linearGradient><linearGradient + inkscape:collect="always" + id="linearGradient5749"><stop + style="stop-color:#555753;stop-opacity:1;" + offset="0" + id="stop5751" /><stop + style="stop-color:#d3d7cf;stop-opacity:1" + offset="1" + id="stop5753" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5031" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-2.774389,0,0,1.969706,444.1734,-872.88106)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /><linearGradient + inkscape:collect="always" + id="linearGradient5060"><stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop5062" /><stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5064" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5029" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.7182065,0,0,1.969706,-1790.093,-872.88106)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /><linearGradient + id="linearGradient5048"><stop + style="stop-color:black;stop-opacity:0;" + offset="0" + id="stop5050" /><stop + id="stop5056" + offset="0.5" + style="stop-color:black;stop-opacity:1;" /><stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5052" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5048" + id="linearGradient5027" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.242688,0,0,1.969706,-1503.9583,-872.8854)" + x1="302.85715" + y1="366.64789" + x2="302.85715" + y2="609.50507" /><linearGradient + inkscape:collect="always" + id="linearGradient5551"><stop + style="stop-color:#d80000;stop-opacity:1;" + offset="0" + id="stop5553" /><stop + style="stop-color:#ff1919;stop-opacity:1" + offset="1" + id="stop5555" /></linearGradient><linearGradient + inkscape:collect="always" + id="linearGradient4962"><stop + style="stop-color:#4f7633;stop-opacity:1;" + offset="0" + id="stop4964" /><stop + style="stop-color:#000000;stop-opacity:1" + offset="1" + id="stop4966" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4962" + id="linearGradient4968" + x1="36" + y1="24" + x2="36" + y2="6.8892298" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8011917,0,0,1.8095239,-37.714462,-9.2361809)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5551" + id="linearGradient5569" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.8216585,0,0,1.8541455,18.126603,-32.105968)" + x1="-5" + y1="30.485746" + x2="-5" + y2="28" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5749" + id="linearGradient5755" + x1="20.736568" + y1="8" + x2="12.734337" + y2="8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.1250002,0,0,1.8421053,-13.744192,-10.257484)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5757" + id="linearGradient5763" + x1="15" + y1="10" + x2="20" + y2="10" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.888889,0,0,1.8421053,-10.792802,-10.257484)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5771" + id="linearGradient5777" + x1="19" + y1="3" + x2="19" + y2="10" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4863836,0,0,1.5000001,-26.950209,-7.7838001)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5837" + id="linearGradient5848" + gradientUnits="userSpaceOnUse" + x1="10" + y1="44.016026" + x2="10" + y2="12.805173" + gradientTransform="matrix(0.9130435,0,0,0.9130435,0.03570263,-1.5229299)" /></defs><sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="9.5142462" + inkscape:cx="43.072055" + inkscape:cy="24.870715" + inkscape:document-units="px" + inkscape:current-layer="layer1" + width="48px" + height="48px" + inkscape:showpageshadow="false" + gridtolerance="10000" + inkscape:window-width="1920" + inkscape:window-height="1148" + inkscape:window-x="0" + inkscape:window-y="0" + showgrid="false" + inkscape:window-maximized="1"><inkscape:grid + type="xygrid" + id="grid4948" /></sodipodi:namedview><metadata + id="metadata6"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><g + inkscape:label="Vrstva 1" + inkscape:groupmode="layer" + id="layer1"><g + style="display:inline" + id="g5022" + transform="matrix(0.02080446,0,0,0.01766701,39.885061,36.47886)"><rect + y="-150.69685" + x="-1234.8357" + height="478.35718" + width="1082.8979" + id="rect4173" + style="opacity:0.39195981;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /><path + sodipodi:nodetypes="cccc" + id="path5058" + d="m -151.93764,-150.67604 c 0,0 0,478.33079 0,478.33079 139.980909,0.90045 338.40573,-107.16966 338.40565,-239.196176 0,-132.026537 -156.208156,-239.134594 -338.40565,-239.134614 z" + style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + inkscape:connector-curvature="0" /><path + style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + d="m -1227.8411,-150.67604 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196177 0,-132.026537 159.4368,-239.134593 345.4002,-239.134613 z" + id="path5018" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" /></g><rect + style="color:#000000;fill:url(#linearGradient4968);fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4960" + width="27.017878" + height="38" + x="11.818312" + y="0.71620047" /><path + style="fill:none;stroke:#73d216;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.36486487" + d="m 13.892632,37.745842 23.937179,0 0,-35.8066791" + id="path5547" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /><path + style="color:#000000;fill:url(#linearGradient5763);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5755);stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 12.818311,1.7162006 17,0 0,27.6315784 -17,7.368421 0,-34.9999994 z" + id="rect5746" + sodipodi:nodetypes="ccccc" + inkscape:connector-curvature="0" /><path + style="color:#000000;fill:url(#linearGradient5569);fill-opacity:1;fill-rule:nonzero;stroke:#a60f11;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 11.800398,10.7162 0,5.966898 -10.97955017,0 0,11.107665 10.97955017,0 0,5.925436 L 24.818312,22.591327 11.800398,10.7162 z" + id="rect5549" + sodipodi:nodetypes="cccccccc" + inkscape:connector-curvature="0" /><path + style="color:#000000;fill:none;stroke:#ffffff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.23873877;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 12.822048,12.993676 0,4.737635 -10.9835615,0 0,9.037558 10.9835615,0 0,4.707273 10.362518,-8.940522 -10.362518,-9.541944 z" + id="path5561" + sodipodi:nodetypes="cccccccc" + inkscape:connector-curvature="0" /><path + style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.61261262" + d="M 28.864415,3.6030354 28.846444,28.589344 13.818312,35.186053" + id="path5765" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /><path + style="fill:url(#linearGradient5777);fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 15.318311,1.2162005 12.431919,6 7.459151,0 0,-6 -19.89107,0 z" + id="path5769" + inkscape:connector-curvature="0" /><rect + style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5797" + width="1" + height="1" + x="26.318312" + y="15.216201" /><rect + y="16.2162" + x="27.318312" + height="1" + width="1" + id="rect5799" + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5805" + width="0.99999976" + height="1" + x="27.318312" + y="17.2162" /><rect + y="17.2162" + x="26.318312" + height="1" + width="0.99999976" + id="rect5807" + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5829" + width="0.99999976" + height="1" + x="25.318312" + y="18.2162" /><rect + y="16.2162" + x="26.318312" + height="1" + width="1" + id="rect5831" + style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect + style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5833" + width="1" + height="1" + x="26.318312" + y="18.2162" /><path + style="opacity:0.52401745;color:#000000;fill:url(#linearGradient5848);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 12.333257,11.7162 0,5.449728 -10.0149457,0 0,2.482337 c 2.3080298,1.546537 6.143561,2.567935 10.4999997,2.567935 3.5582,0 6.783715,-0.678579 9.101902,-1.769022 L 12.333257,11.7162 z" + id="path5835" + inkscape:connector-curvature="0" /></g></svg>
\ No newline at end of file diff --git a/icons/altterm.svg b/icons/altterm.svg new file mode 100644 index 0000000..2197700 --- /dev/null +++ b/icons/altterm.svg @@ -0,0 +1,498 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg1306" + sodipodi:version="0.32" + inkscape:version="0.43+devel" + sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps" + sodipodi:docname="utilities-terminal.svg" + inkscape:export-filename="/home/andreas/projekt/bild/tango/terminal4.png" + inkscape:export-xdpi="240.00000" + inkscape:export-ydpi="240.00000"> + <defs + id="defs1308"> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5031" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5060"> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop5062" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5064" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5029" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + <linearGradient + id="linearGradient5048"> + <stop + style="stop-color:black;stop-opacity:0;" + offset="0" + id="stop5050" /> + <stop + id="stop5056" + offset="0.5" + style="stop-color:black;stop-opacity:1;" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5052" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5048" + id="linearGradient5027" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" + x1="302.85715" + y1="366.64789" + x2="302.85715" + y2="609.50507" /> + <linearGradient + inkscape:collect="always" + id="linearGradient6447"> + <stop + style="stop-color:#777973;stop-opacity:1;" + offset="0" + id="stop6449" /> + <stop + style="stop-color:#777973;stop-opacity:0;" + offset="1" + id="stop6451" /> + </linearGradient> + <linearGradient + id="linearGradient4254"> + <stop + style="stop-color:#616161;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop4256" /> + <stop + style="stop-color:#a0a0a0;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop4258" /> + </linearGradient> + <linearGradient + id="linearGradient5176"> + <stop + id="stop5178" + offset="0.0000000" + style="stop-color:#a2a59c;stop-opacity:1.0000000;" /> + <stop + id="stop5180" + offset="1.0000000" + style="stop-color:#535750;stop-opacity:1.0000000;" /> + </linearGradient> + <linearGradient + id="linearGradient2667"> + <stop + id="stop2669" + offset="0.0000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + <stop + id="stop2671" + offset="1.0000000" + style="stop-color:#fcfcff;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + gradientUnits="userSpaceOnUse" + y2="26.729263" + x2="17.199417" + y1="1.6537577" + x1="11.492236" + gradientTransform="matrix(1.236157,0.000000,0.000000,0.896051,-1.081820,2.830699)" + id="linearGradient2673" + xlink:href="#linearGradient2667" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2238"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop2240" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop2242" /> + </linearGradient> + <linearGradient + id="linearGradient2224"> + <stop + style="stop-color:#32342f;stop-opacity:0.54639173;" + offset="0.0000000" + id="stop2226" /> + <stop + style="stop-color:#32342f;stop-opacity:0;" + offset="1" + id="stop2228" /> + </linearGradient> + <linearGradient + id="linearGradient2214"> + <stop + style="stop-color:#a9aaa7;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2216" /> + <stop + style="stop-color:#676964;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop2218" /> + </linearGradient> + <linearGradient + id="linearGradient2206"> + <stop + style="stop-color:#777973;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2208" /> + <stop + style="stop-color:#cbccca;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop2210" /> + </linearGradient> + <linearGradient + id="linearGradient2198"> + <stop + style="stop-color:#748f48;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2200" /> + <stop + style="stop-color:#1f2816;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop2202" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2198" + id="linearGradient2204" + x1="23.118565" + y1="9.5830288" + x2="22.440805" + y2="34.225887" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.950085,0.000000,0.000000,0.965659,1.243978,0.255342)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2206" + id="linearGradient2212" + x1="29.870447" + y1="32.285740" + x2="24.841814" + y2="14.157946" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.957412,0.000000,0.000000,0.952331,1.022766,0.133307)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5176" + id="linearGradient2220" + x1="8.6529236" + y1="9.5865316" + x2="21.305075" + y2="32.497993" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.957412,0.000000,0.000000,0.952331,1.022766,0.133307)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2224" + id="radialGradient2230" + cx="24.041630" + cy="42.242130" + fx="24.041630" + fy="42.242130" + r="17.576654" + gradientTransform="matrix(1.000000,0.000000,0.000000,0.304598,-1.841788e-16,29.37527)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2238" + id="linearGradient2244" + x1="20.338758" + y1="19.636894" + x2="48.845253" + y2="49.730762" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.953506,0.000000,0.000000,0.947873,1.141528,1.205591)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4254" + id="linearGradient4260" + x1="11.048059" + y1="9.1463490" + x2="26.178129" + y2="30.343304" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.997583,0.000000,0.000000,0.989941,0.104141,7.028871e-2)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2214" + id="linearGradient5719" + x1="40.253334" + y1="42.318577" + x2="36.451904" + y2="37.999615" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.000000,0.000000,0.000000,0.744756,0.000000,9.569132)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6447" + id="radialGradient6453" + cx="37.495606" + cy="39.510023" + fx="37.495606" + fy="39.510023" + r="2.5100370" + gradientTransform="matrix(1.000000,0.000000,0.000000,0.737790,0.000000,9.844321)" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="0.19607843" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="23.810703" + inkscape:cy="12.124648" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="926" + inkscape:window-height="975" + inkscape:window-x="397" + inkscape:window-y="25" + showguides="true" + inkscape:guide-bbox="true" + inkscape:showpageshadow="false" /> + <metadata + id="metadata1311"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Terminal</dc:title> + <dc:date>2005-10-15</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Andreas Nilsson</dc:title> + </cc:Agent> + </dc:creator> + <dc:subject> + <rdf:Bag> + <rdf:li>terminal</rdf:li> + <rdf:li>emulator</rdf:li> + <rdf:li>term</rdf:li> + <rdf:li>command line</rdf:li> + </rdf:Bag> + </dc:subject> + <cc:license + rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> + <dc:contributor> + <cc:Agent> + <dc:title>Jakub Steiner</dc:title> + </cc:Agent> + </dc:contributor> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Attribution" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g5022" + transform="matrix(2.454499e-2,0,0,2.086758e-2,46.14369,39.34109)"> + <rect + y="-150.69685" + x="-1559.2523" + height="478.35718" + width="1339.6335" + id="rect4173" + style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + sodipodi:nodetypes="cccc" + id="path5058" + d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z " + style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z " + id="path5018" + sodipodi:nodetypes="cccc" /> + </g> + <rect + style="opacity:1.0000000;fill:url(#linearGradient2212);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2220);stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" + id="rect1316" + width="44.996037" + height="38.998734" + x="1.5026338" + y="3.5015533" + rx="4.8517075" + ry="4.8517079" /> + <rect + style="opacity:1.0000000;fill:url(#linearGradient2204);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:0.99495775;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" + id="rect1314" + width="37.088005" + height="29.022322" + x="5.4962788" + y="7.4827089" + rx="1.6452150" + ry="1.6452144" /> + <g + id="g2286" + style="opacity:0.25568182"> + <path + id="path1345" + d="M 8.0152033,11.500361 L 39.994145,11.500361" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.0152033,13.500361 L 39.994145,13.500361" + id="path2264" /> + <path + id="path2266" + d="M 8.0152033,15.500361 L 39.994145,15.500361" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.0152033,17.500361 L 39.994145,17.500361" + id="path2268" /> + <path + id="path2270" + d="M 8.0152033,19.500361 L 39.994145,19.500361" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.0152033,21.500361 L 39.994145,21.500361" + id="path2272" /> + <path + id="path2274" + d="M 8.0152033,23.500361 L 39.994145,23.500361" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.0152033,25.500361 L 39.994145,25.500361" + id="path2276" /> + <path + id="path2278" + d="M 8.0152033,27.500361 L 39.994145,27.500361" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.0152033,29.500361 L 39.994145,29.500361" + id="path2280" /> + <path + id="path2282" + d="M 8.0152033,31.500361 L 39.994145,31.500361" + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.0152033,33.500361 L 39.994145,33.500361" + id="path2284" /> + </g> + <rect + style="opacity:0.76373626;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2244);stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect2232" + width="42.945141" + height="37.000587" + x="2.5542557" + y="4.5007114" + rx="3.7910469" + ry="3.7910469" /> + <path + style="font-size:18.585011px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1.0000000;stroke:#6ed66e;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.27868852;font-family:Bitstream Vera Sans Mono" + d="M 11.625000,20.679392 L 11.625000,17.625000 L 20.609828,21.685794 L 20.609828,23.541713 L 11.625000,27.629147 L 11.625000,24.583829 L 18.589396,22.729971 L 11.625000,20.679392 z M 30.517635,30.705752 L 30.517635,32.679948 L 19.614229,32.679948 L 19.614229,30.705752 L 30.517635,30.705752" + id="text1340" + sodipodi:nodetypes="ccccccccccccc" /> + <path + sodipodi:nodetypes="ccccccc" + style="opacity:0.53142856;fill:url(#linearGradient2673);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 7.625388,8 C 7.102102,8 6.05153,8.190188 6.05153,9.0259761 L 6.16958,25.542519 C 23.841567,24.579133 20.294433,17.286426 42,13.633318 L 41.937264,9.2913791 C 41.859002,8.1662868 41.397947,8.0594548 40.327115,8.066071 L 7.625388,8 z " + id="path2443" /> + <rect + style="opacity:0.71428573;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.9999992;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" + id="rect1340" + width="34.026031" + height="26.057468" + x="6.9894562" + y="8.9805145" + rx="0.11773217" + ry="0.11773217" /> + <rect + style="opacity:1;fill:url(#radialGradient6453);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5719);stroke-width:1.00000119;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect5025" + width="4.0200734" + height="2.9590063" + x="35.485569" + y="37.514935" + rx="0.35819405" + ry="0.56022596" /> + <rect + style="opacity:1;fill:#93d94c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect6458" + width="2" + height="2" + x="32" + y="38" + rx="0.56022543" + ry="0.56022543" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path2300" + sodipodi:cx="28.3125" + sodipodi:cy="38.75" + sodipodi:rx="0.5625" + sodipodi:ry="0.5625" + d="M 28.875 38.75 A 0.5625 0.5625 0 1 1 27.75,38.75 A 0.5625 0.5625 0 1 1 28.875 38.75 z" + transform="translate(4.375000,-6.250000e-2)" /> + </g> +</svg> diff --git a/icons/broadcast.svg b/icons/broadcast.svg new file mode 100644 index 0000000..9d8b2f5 --- /dev/null +++ b/icons/broadcast.svg @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.1" + width="256" + height="256" + id="svg3066"> + <metadata + id="metadata3072"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs3070" /> + <path + d="m 101.25424,238.1677 c -2.681354,-0.9063 -5.882664,-4.44171 -6.478524,-7.15463 -0.58697,-2.67245 32.549954,-115.15847 34.716434,-117.84781 3.76841,-4.67787 3.97836,-4.13837 22.86296,58.75 17.19707,57.26863 17.70155,59.65202 13.51294,63.84091 -2.52259,2.52275 -58.14313,4.59864 -64.61381,2.41153 z M 99.450096,148.47239 C 36.209676,114.39067 56.888616,19.509389 128.27948,16.194398 c 74.82178,-3.474305 102.21415,97.343712 35.91435,132.183272 -8.25378,4.33723 -9.45024,4.38009 -10.84176,0.38837 -1.72728,-4.95488 -1.42108,-5.55464 4.15217,-8.13271 57.70355,-26.69254 37.94505,-114.718076 -25.75,-114.718076 -63.801984,0 -83.551484,87.985766 -25.75,114.718536 5.57324,2.57758 5.87946,3.17734 4.15217,8.13225 -1.38946,3.98581 -2.83934,3.94604 -10.706314,-0.29365 z M 107.20058,133.2308 C 64.201286,112.03676 72.380306,45.525947 119.34731,34.455037 c 58.22233,-13.723979 91.06284,66.022883 39.90693,96.906303 -8.70662,5.25629 -9.68982,5.33292 -10.9341,0.85216 -1.54031,-5.54681 -1.47552,-5.7007 3.39675,-8.06783 41.31662,-20.07316 23.16679,-83.859948 -23.04117,-80.977136 -42.258784,2.636433 -55.204114,60.895106 -17.86619,80.404326 5.91323,3.08969 5.91782,3.09866 4.39213,8.5924 -1.24209,4.47255 -1.12141,4.45648 -8.00108,1.06554 z m 7.55366,-15.00818 c -33.446494,-17.97823 -20.953814,-67.807366 17,-67.807366 38.06499,0 50.43287,50.452626 16.65035,67.922256 -3.81961,1.9752 -3.50013,2.12347 -5.00189,-2.32147 -1.6627,-4.92129 -1.50835,-5.34547 2.94537,-8.0941 25.76529,-15.901157 6.01919,-55.611013 -23.28699,-46.830669 -21.32579,6.389365 -23.210034,42.189589 -2.58241,49.065469 1.0008,0.3336 -1.03495,9.7856 -2.09314,9.71848 -0.34721,-0.022 -1.98129,-0.76569 -3.63129,-1.6526 z m 11,-14.52889 c -13.54367,-4.801859 -16.92678,-22.050493 -6.17629,-31.489548 7.56488,-6.642051 16.7877,-6.642051 24.35258,0 15.09896,13.257062 0.70983,38.185538 -18.17629,31.489548 z" + id="path3076" + style="fill:#000000" /> +</svg> diff --git a/icons/cam32.svg b/icons/cam32.svg new file mode 100644 index 0000000..9a4c1c7 --- /dev/null +++ b/icons/cam32.svg @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="32" + height="32" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="cam32.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + style="display:inline" + enable-background="new"> + <defs + id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 16 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="32 : 16 : 1" + inkscape:persp3d-origin="16 : 10.666667 : 1" + id="perspective2476" /> + <filter + inkscape:collect="always" + id="filter3249"> + <feBlend + inkscape:collect="always" + mode="lighten" + in2="BackgroundImage" + id="feBlend3251" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.4" + inkscape:cx="2.3730814" + inkscape:cy="13.178208" + inkscape:document-units="px" + inkscape:current-layer="layer2" + showgrid="true" + objecttolerance="10000" + gridtolerance="10000" + guidetolerance="10000" + inkscape:window-width="1920" + inkscape:window-height="1150" + inkscape:window-x="-4" + inkscape:window-y="0" + inkscape:window-maximized="0"> + <inkscape:grid + type="xygrid" + id="grid2410" + visible="true" + enabled="true" + dotted="false" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Zeichnung" + style="display:inline;filter:url(#filter3249)"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.112;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 7.7249594,2.1626795 C 4.4957594,2.1626795 1.8749594,4.7834796 1.8749594,8.0126796 C 1.8749594,10.095133 2.9648234,11.924089 4.6049594,12.960804 L 4.6049594,19.32268 C 4.6049594,20.18692 5.3007194,20.88268 6.1649594,20.88268 L 9.2264598,20.88268 L 4.5869594,28.275054 C 4.3708994,28.649282 4.5003554,29.126622 4.8745754,29.34268 L 5.5473314,29.73268 C 5.9215634,29.94874 6.3988994,29.819277 6.6149594,29.445054 L 11.927204,20.88268 L 13.662704,20.88268 L 18.97496,29.445054 C 19.19102,29.819282 19.668356,29.948735 20.042576,29.73268 L 20.715332,29.34268 C 21.089564,29.12662 21.21902,28.649278 21.00296,28.275054 L 16.36346,20.88268 L 20.20496,20.88268 C 21.0692,20.88268 21.76496,20.18692 21.76496,19.32268 L 21.76496,18.46468 C 22.325624,18.204431 24.411872,17.382582 26.28896,18.54268 C 27.179144,19.092846 27.270764,20.488512 28.16096,21.03868 C 28.758116,21.407742 29.279804,21.407742 29.87696,21.03868 C 30.322052,20.763596 30.032288,20.31392 30.03296,19.79068 C 30.035804,17.190681 30.035804,15.214679 30.03296,12.61468 C 30.032288,12.09144 30.322052,11.641764 29.87696,11.36668 C 29.279804,10.997616 28.758116,10.997616 28.16096,11.36668 C 27.270764,11.916846 27.179144,13.312512 26.28896,13.86268 C 24.411668,15.02291 22.325348,14.195954 21.76496,13.935804 L 21.76496,12.960804 C 23.405096,11.924089 24.49496,10.095133 24.49496,8.0126796 C 24.49496,4.7834796 21.87416,2.1626795 18.64496,2.1626795 C 16.155776,2.1626795 14.029412,3.7187916 13.18496,5.911554 C 12.340496,3.7187916 10.214132,2.1626795 7.7249594,2.1626795 z" + id="rect3212" + sodipodi:nodetypes="csccccccccccccccccccssssssssccsscc" /> + <rect + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3235" + width="0" + height="3" + x="-25" + y="-26" /> + </g> +</svg> diff --git a/icons/cam_off32.svg b/icons/cam_off32.svg new file mode 100644 index 0000000..2df7e9c --- /dev/null +++ b/icons/cam_off32.svg @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="32" + height="32" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.47 r22583" + sodipodi:docname="cam_on32.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + style="display:inline" + enable-background="new"> + <defs + id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 16 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="32 : 16 : 1" + inkscape:persp3d-origin="16 : 10.666667 : 1" + id="perspective2476" /> + <filter + inkscape:collect="always" + id="filter3249"> + <feBlend + inkscape:collect="always" + mode="lighten" + in2="BackgroundImage" + id="feBlend3251" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="11.02381" + inkscape:cx="10.394302" + inkscape:cy="19.913197" + inkscape:document-units="px" + inkscape:current-layer="layer2" + showgrid="true" + objecttolerance="10000" + gridtolerance="10000" + guidetolerance="10000" + inkscape:window-width="1024" + inkscape:window-height="710" + inkscape:window-x="-4" + inkscape:window-y="-3" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid2410" + visible="true" + enabled="true" + dotted="false" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Zeichnung" + style="display:inline;filter:url(#filter3249)"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.31199998;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 7.7249594,2.1626795 C 4.4957594,2.1626795 1.8749594,4.7834796 1.8749594,8.0126796 C 1.8749594,10.095133 2.9648234,11.924089 4.6049594,12.960804 L 4.6049594,19.32268 C 4.6049594,20.18692 5.3007194,20.88268 6.1649594,20.88268 L 9.2264598,20.88268 L 4.5869594,28.275054 C 4.3708994,28.649282 4.5003554,29.126622 4.8745754,29.34268 L 5.5473314,29.73268 C 5.9215634,29.94874 6.3988994,29.819277 6.6149594,29.445054 L 11.927204,20.88268 L 13.662704,20.88268 L 18.97496,29.445054 C 19.19102,29.819282 19.668356,29.948735 20.042576,29.73268 L 20.715332,29.34268 C 21.089564,29.12662 21.21902,28.649278 21.00296,28.275054 L 16.36346,20.88268 L 20.20496,20.88268 C 21.0692,20.88268 21.76496,20.18692 21.76496,19.32268 L 21.76496,18.46468 C 22.325624,18.204431 24.411872,17.382582 26.28896,18.54268 C 27.179144,19.092846 27.270764,20.488512 28.16096,21.03868 C 28.758116,21.407742 29.279804,21.407742 29.87696,21.03868 C 30.322052,20.763596 30.032288,20.31392 30.03296,19.79068 C 30.035804,17.190681 30.035804,15.214679 30.03296,12.61468 C 30.032288,12.09144 30.322052,11.641764 29.87696,11.36668 C 29.279804,10.997616 28.758116,10.997616 28.16096,11.36668 C 27.270764,11.916846 27.179144,13.312512 26.28896,13.86268 C 24.411668,15.02291 22.325348,14.195954 21.76496,13.935804 L 21.76496,12.960804 C 23.405096,11.924089 24.49496,10.095133 24.49496,8.0126796 C 24.49496,4.7834796 21.87416,2.1626795 18.64496,2.1626795 C 16.155776,2.1626795 14.029412,3.7187916 13.18496,5.911554 C 12.340496,3.7187916 10.214132,2.1626795 7.7249594,2.1626795 z" + id="rect3212" + sodipodi:nodetypes="csccccccccccccccccccssssssssccsscc" /> + <rect + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3235" + width="0" + height="3" + x="-25" + y="-26" /> + <path + sodipodi:type="arc" + style="fill:#ff0000;fill-opacity:1;stroke:none" + id="path3595" + sodipodi:cx="18.438444" + sodipodi:cy="15.612311" + sodipodi:rx="3.5615551" + sodipodi:ry="3.3876889" + d="m 21.999999,15.612311 a 3.5615551,3.3876889 0 1 1 -7.12311,0 3.5615551,3.3876889 0 1 1 7.12311,0 z" + transform="translate(8.5615559,12)" /> + </g> +</svg> diff --git a/icons/cam_on32.svg b/icons/cam_on32.svg new file mode 100644 index 0000000..9f381fe --- /dev/null +++ b/icons/cam_on32.svg @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="32" + height="32" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.47 r22583" + sodipodi:docname="cam32.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0" + style="display:inline" + enable-background="new"> + <defs + id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 16 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="32 : 16 : 1" + inkscape:persp3d-origin="16 : 10.666667 : 1" + id="perspective2476" /> + <filter + inkscape:collect="always" + id="filter3249"> + <feBlend + inkscape:collect="always" + mode="lighten" + in2="BackgroundImage" + id="feBlend3251" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="11.02381" + inkscape:cx="10.394302" + inkscape:cy="19.913197" + inkscape:document-units="px" + inkscape:current-layer="layer2" + showgrid="true" + objecttolerance="10000" + gridtolerance="10000" + guidetolerance="10000" + inkscape:window-width="1024" + inkscape:window-height="710" + inkscape:window-x="-4" + inkscape:window-y="-3" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid2410" + visible="true" + enabled="true" + dotted="false" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Zeichnung" + style="display:inline;filter:url(#filter3249)"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.31199998;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 7.7249594,2.1626795 C 4.4957594,2.1626795 1.8749594,4.7834796 1.8749594,8.0126796 C 1.8749594,10.095133 2.9648234,11.924089 4.6049594,12.960804 L 4.6049594,19.32268 C 4.6049594,20.18692 5.3007194,20.88268 6.1649594,20.88268 L 9.2264598,20.88268 L 4.5869594,28.275054 C 4.3708994,28.649282 4.5003554,29.126622 4.8745754,29.34268 L 5.5473314,29.73268 C 5.9215634,29.94874 6.3988994,29.819277 6.6149594,29.445054 L 11.927204,20.88268 L 13.662704,20.88268 L 18.97496,29.445054 C 19.19102,29.819282 19.668356,29.948735 20.042576,29.73268 L 20.715332,29.34268 C 21.089564,29.12662 21.21902,28.649278 21.00296,28.275054 L 16.36346,20.88268 L 20.20496,20.88268 C 21.0692,20.88268 21.76496,20.18692 21.76496,19.32268 L 21.76496,18.46468 C 22.325624,18.204431 24.411872,17.382582 26.28896,18.54268 C 27.179144,19.092846 27.270764,20.488512 28.16096,21.03868 C 28.758116,21.407742 29.279804,21.407742 29.87696,21.03868 C 30.322052,20.763596 30.032288,20.31392 30.03296,19.79068 C 30.035804,17.190681 30.035804,15.214679 30.03296,12.61468 C 30.032288,12.09144 30.322052,11.641764 29.87696,11.36668 C 29.279804,10.997616 28.758116,10.997616 28.16096,11.36668 C 27.270764,11.916846 27.179144,13.312512 26.28896,13.86268 C 24.411668,15.02291 22.325348,14.195954 21.76496,13.935804 L 21.76496,12.960804 C 23.405096,11.924089 24.49496,10.095133 24.49496,8.0126796 C 24.49496,4.7834796 21.87416,2.1626795 18.64496,2.1626795 C 16.155776,2.1626795 14.029412,3.7187916 13.18496,5.911554 C 12.340496,3.7187916 10.214132,2.1626795 7.7249594,2.1626795 z" + id="rect3212" + sodipodi:nodetypes="csccccccccccccccccccssssssssccsscc" /> + <rect + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect3235" + width="0" + height="3" + x="-25" + y="-26" /> + <path + sodipodi:type="arc" + style="fill:#00a000;fill-opacity:1;stroke:none" + id="path3595" + sodipodi:cx="18.438444" + sodipodi:cy="15.612311" + sodipodi:rx="3.5615551" + sodipodi:ry="3.3876889" + d="m 21.999999,15.612311 a 3.5615551,3.3876889 0 1 1 -7.12311,0 3.5615551,3.3876889 0 1 1 7.12311,0 z" + transform="translate(8.5615559,12)" /> + </g> +</svg> diff --git a/icons/chat_msg16.svg b/icons/chat_msg16.svg new file mode 100644 index 0000000..1e4be83 --- /dev/null +++ b/icons/chat_msg16.svg @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + id="svg2" + version="1.1" + inkscape:version="0.47 r22583" + sodipodi:docname="chat_msg16.svg"> + <defs + id="defs4"> + <linearGradient + id="linearGradient3590"> + <stop + style="stop-color:#00ff00;stop-opacity:1;" + offset="0" + id="stop3592" /> + <stop + style="stop-color:#006400;stop-opacity:1;" + offset="1" + id="stop3594" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective10" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3590" + id="radialGradient3596" + cx="140.41119" + cy="140.19443" + fx="140.41119" + fy="140.19443" + r="79.791901" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.86519943,0.92220815,-0.87022772,0.81643229,140.92859,-103.75317)" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.4" + inkscape:cx="13.435304" + inkscape:cy="7.4195703" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1150" + inkscape:window-x="-4" + inkscape:window-y="-3" + inkscape:window-maximized="1" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Ebene 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-151.60409,-146.84165)"> + <path + sodipodi:type="arc" + style="fill:url(#radialGradient3596);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.39215686;stroke-dasharray:2, 2;stroke-dashoffset:0" + id="path2816" + sodipodi:cx="159.6041" + sodipodi:cy="154.84164" + sodipodi:rx="78.791901" + sodipodi:ry="78.791901" + d="m 238.396,154.84164 a 78.791901,78.791901 0 1 1 -157.583805,0 78.791901,78.791901 0 1 1 157.583805,0 z" + transform="matrix(0.0501304,0,0,0.0501304,151.60308,147.07937)" /> + </g> +</svg> diff --git a/icons/darrow16.svg b/icons/darrow16.svg new file mode 100644 index 0000000..4b1609a --- /dev/null +++ b/icons/darrow16.svg @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + id="svg2" + version="1.1" + inkscape:version="0.47 r22583" + sodipodi:docname="darrow16.svg" + inkscape:export-filename="/home/jjl/ok.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="44.8" + inkscape:cx="9.5866317" + inkscape:cy="8.5407368" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:window-width="1920" + inkscape:window-height="1150" + inkscape:window-x="-4" + inkscape:window-y="-3" + inkscape:window-maximized="1" + guidetolerance="10000" + objecttolerance="10000"> + <inkscape:grid + type="xygrid" + id="grid4187" + empspacing="5" + visible="true" + enabled="true" + snapvisiblegridlinesonly="true" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Ebene 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="fill:none;stroke:#000000;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" + d="M 4,6 C 5.3333333,7.3333333 6.6666667,8.6666667 8,10 9.3333333,8.6666667 10.666667,7.3333333 12,6" + id="path4344" + transform="translate(0,1036.3622)" + sodipodi:nodetypes="ccc" /> + </g> +</svg> diff --git a/icons/dozent.svg b/icons/dozent.svg new file mode 100644 index 0000000..85a74d6 --- /dev/null +++ b/icons/dozent.svg @@ -0,0 +1,303 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg2108" + sodipodi:version="0.32" + inkscape:version="0.45" + sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/stock/generic" + sodipodi:docname="stock_person.svg" + inkscape:export-filename="/home/jimmac/src/cvs/gnome/gnome-icon-theme/48x48/stock/generic/stock_person.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs3"> + <linearGradient + id="linearGradient4562"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4564" /> + <stop + style="stop-color:#d6d6d2;stop-opacity:1;" + offset="1" + id="stop4566" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient4356"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4358" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop4360" /> + </linearGradient> + <linearGradient + id="linearGradient3824"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3826" /> + <stop + style="stop-color:#c9c9c9;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop3828" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3816"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3818" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3820" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3816" + id="radialGradient3822" + cx="31.112698" + cy="19.008621" + fx="31.112698" + fy="19.008621" + r="8.6620579" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4356" + id="linearGradient4362" + x1="20.661695" + y1="35.817974" + x2="22.626925" + y2="36.217758" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.3161,0.243028,-0.243028,1.3161,-9.262129,-16.07396)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4356" + id="linearGradient4366" + gradientUnits="userSpaceOnUse" + x1="22.686766" + y1="36.390400" + x2="21.408455" + y2="35.739632" + gradientTransform="matrix(-1.308485,0.281154,0.281154,1.308485,57.41196,-17.2385)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4356" + id="linearGradient1366" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1.308485,0.281154,0.281154,1.308485,39.09106,-26.21225)" + x1="22.686766" + y1="36.390400" + x2="21.408455" + y2="35.739632" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3824" + id="linearGradient1372" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.338350,0.000000,0.000000,1.338350,-33.47918,-20.70004)" + x1="30.935921" + y1="29.553486" + x2="30.935921" + y2="35.803486" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4562" + id="radialGradient4568" + cx="24.753788" + cy="26.814409" + fx="24.753788" + fy="26.814409" + r="17.986024" + gradientTransform="matrix(1.354517,4.451877e-16,-3.340511e-8,1.366395,-8.947464,-9.871365)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4562" + id="radialGradient3816" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.558489,1.477485e-16,-1.377346e-8,0.563387,14.87134,4.364123)" + cx="29.922075" + cy="17.727694" + fx="29.922075" + fy="17.727694" + r="17.986024" /> + <filter + inkscape:collect="always" + x="-0.076111111" + width="1.1522222" + y="-0.28344828" + height="1.5668966" + id="filter5655"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.4531044" + id="feGaussianBlur5657" /> + </filter> + </defs> + <sodipodi:namedview + inkscape:showpageshadow="false" + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="0.16862745" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="31.500535" + inkscape:cy="28.945566" + inkscape:current-layer="layer2" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + fill="#9db029" + stroke="#727e0a" + inkscape:window-width="872" + inkscape:window-height="815" + inkscape:window-x="202" + inkscape:window-y="68" /> + <metadata + id="metadata4"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Person</dc:title> + <dc:creator> + <cc:Agent> + <dc:title>Jakub Steiner</dc:title> + </cc:Agent> + </dc:creator> + <dc:source>http://jimmac.musichall.cz</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>user</rdf:li> + <rdf:li>person</rdf:li> + </rdf:Bag> + </dc:subject> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="cipek" + inkscape:groupmode="layer" + style="display:inline"> + <path + style="opacity:1;color:#000000;fill:url(#linearGradient1372);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 13.365469,24.850231 L 19.043607,24.850231 L 15.731361,21.774572 L 15.021593,22.720929 L 14.311825,22.011162 L 13.365469,24.850231 z " + id="path4173" /> + <path + sodipodi:nodetypes="cccc" + id="path4370" + d="M 19.882923,32.490544 C 21.530768,31.712992 22.297815,29.810737 22.297815,29.810737 C 21.014177,24.39981 16.976336,20.652646 16.976336,20.652646 C 16.976336,20.652646 20.274824,29.141269 19.882923,32.490544 z " + style="opacity:0.22784807;color:#000000;fill:url(#linearGradient1366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="dalsi cipek" + style="display:inline"> + <rect + style="opacity:0.34857143;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;filter:url(#filter5655);enable-background:accumulate" + id="rect4608" + width="38.183765" + height="10.253048" + x="5.3033009" + y="35.448853" + rx="5.126524" + ry="5.126524" + transform="matrix(0.9351852,0,0,0.9351852,1.5811694,2.2763322)" /> + <path + style="opacity:1;color:#000000;fill:url(#radialGradient4568);fill-opacity:1.0;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99999982px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 17.918908,43.517006 L 32.114254,43.517006 C 36.136269,43.517006 40.118235,42.042236 41.577816,37.838868 C 42.963864,33.847271 41.814406,26.246002 32.824021,20.094686 L 16.026195,20.094686 C 7.0358098,25.772823 5.9122958,33.538186 7.9821665,38.075456 C 10.090864,42.697836 13.660304,43.517006 17.918908,43.517006 z " + id="path4308" + sodipodi:nodetypes="cczcczc" /> + <path + sodipodi:nodetypes="cccc" + id="path4364" + d="M 38.203826,41.464292 C 39.851671,40.68674 40.618718,38.784486 40.618718,38.784486 C 39.33508,33.373558 35.297238,29.626395 35.297238,29.626395 C 35.297238,29.626395 38.595727,38.115017 38.203826,41.464292 z " + style="opacity:0.29120878;color:#000000;fill:url(#linearGradient4366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <path + style="opacity:0.54945056;color:#000000;fill:url(#linearGradient4362);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M 11.642995,42.046125 C 9.9732599,41.316765 9.2259419,39.559099 9.2259419,39.559099 C 10.351871,34.11317 14.204505,30.128795 14.204505,30.128795 C 14.204505,30.128795 11.153975,38.709646 11.642995,42.046125 z " + id="path4354" + sodipodi:nodetypes="cccc" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <path + sodipodi:nodetypes="cczcczc" + id="path4314" + d="M 17.593144,42.482789 L 32.120832,42.452196 C 35.775407,42.452196 39.393589,41.112158 40.719828,37.292799 C 41.97925,33.665864 40.58869,26.759027 32.419643,21.169679 L 16.464198,20.833163 C 8.295151,25.99256 6.714018,33.0485 8.6253819,37.507773 C 10.536748,41.967046 13.325894,42.452196 17.593144,42.482789 z " + style="opacity:0.64285714;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999988px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" + sodipodi:ry="8.6620579" + sodipodi:rx="8.6620579" + sodipodi:cy="19.008621" + sodipodi:cx="31.112698" + id="path4318" + style="opacity:1;color:#000000;fill:url(#radialGradient3822);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" + transform="matrix(1.338350,0.000000,0.000000,1.338350,-17.02698,-7.522361)" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:url(#radialGradient3816);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.74718857px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path4320" + sodipodi:cx="31.112698" + sodipodi:cy="19.008621" + sodipodi:rx="8.6620579" + sodipodi:ry="8.6620579" + d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" + transform="matrix(1.338350,0.000000,0.000000,1.338350,-16.85969,-12.20659)" /> + <path + d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" + sodipodi:ry="8.6620579" + sodipodi:rx="8.6620579" + sodipodi:cy="19.008621" + sodipodi:cx="31.112698" + id="path4322" + style="opacity:0.19620254;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.82296228px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" + transform="matrix(1.215123,0.000000,0.000000,1.215123,-13.02574,-9.864199)" /> + </g> +</svg> diff --git a/icons/exit.svg b/icons/exit.svg new file mode 100644 index 0000000..d8766c9 --- /dev/null +++ b/icons/exit.svg @@ -0,0 +1,301 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + inkscape:label="Pozadí" + sodipodi:version="0.32" + inkscape:version="0.48.3.1 r9886" + version="1.0" + sodipodi:docname="exit.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + height="128" + width="128" + xml:space="preserve"><defs + id="defs3"><linearGradient + inkscape:collect="always" + id="linearGradient5837"><stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5839" /><stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5841" /></linearGradient><linearGradient + inkscape:collect="always" + id="linearGradient5771"><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop5773" /><stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop5775" /></linearGradient><linearGradient + inkscape:collect="always" + id="linearGradient5757"><stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop5759" /><stop + style="stop-color:#b6b9b2;stop-opacity:1" + offset="1" + id="stop5761" /></linearGradient><linearGradient + inkscape:collect="always" + id="linearGradient5749"><stop + style="stop-color:#555753;stop-opacity:1;" + offset="0" + id="stop5751" /><stop + style="stop-color:#d3d7cf;stop-opacity:1" + offset="1" + id="stop5753" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5031" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-2.774389,0,0,1.969706,444.1734,-872.88106)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /><linearGradient + inkscape:collect="always" + id="linearGradient5060"><stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop5062" /><stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5064" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5029" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.7182065,0,0,1.969706,-1790.093,-872.88106)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /><linearGradient + id="linearGradient5048"><stop + style="stop-color:black;stop-opacity:0;" + offset="0" + id="stop5050" /><stop + id="stop5056" + offset="0.5" + style="stop-color:black;stop-opacity:1;" /><stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5052" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5048" + id="linearGradient5027" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.242688,0,0,1.969706,-1503.9583,-872.8854)" + x1="302.85715" + y1="366.64789" + x2="302.85715" + y2="609.50507" /><linearGradient + inkscape:collect="always" + id="linearGradient5551"><stop + style="stop-color:#d80000;stop-opacity:1;" + offset="0" + id="stop5553" /><stop + style="stop-color:#ff1919;stop-opacity:1" + offset="1" + id="stop5555" /></linearGradient><linearGradient + inkscape:collect="always" + id="linearGradient4962"><stop + style="stop-color:#4f7633;stop-opacity:1;" + offset="0" + id="stop4964" /><stop + style="stop-color:#000000;stop-opacity:1" + offset="1" + id="stop4966" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4962" + id="linearGradient4968" + x1="36" + y1="24" + x2="36" + y2="6.8892298" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.3577652,0,0,5.3825499,-112.81773,-27.90054)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5551" + id="linearGradient5569" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.4186451,0,0,5.5152798,53.285258,-95.928252)" + x1="-5" + y1="30.485746" + x2="-5" + y2="28" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5749" + id="linearGradient5755" + x1="20.736568" + y1="8" + x2="12.734337" + y2="8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(6.3209553,0,0,5.4794655,-41.516554,-30.938475)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5757" + id="linearGradient5763" + x1="15" + y1="10" + x2="20" + y2="10" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(5.6186267,0,0,5.4794655,-32.737447,-30.938475)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5771" + id="linearGradient5777" + x1="19" + y1="3" + x2="19" + y2="10" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(7.3959144,0,0,4.4618507,-80.798735,-23.580336)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5837" + id="linearGradient5848" + gradientUnits="userSpaceOnUse" + x1="10" + y1="44.016026" + x2="10" + y2="12.805173" + gradientTransform="matrix(2.715909,0,0,2.715909,-0.52733565,-4.9569592)" /></defs><sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="4.7571231" + inkscape:cx="43.072055" + inkscape:cy="58.504488" + inkscape:document-units="px" + inkscape:current-layer="layer1" + width="48px" + height="48px" + inkscape:showpageshadow="false" + gridtolerance="10000" + inkscape:window-width="1280" + inkscape:window-height="998" + inkscape:window-x="1920" + inkscape:window-y="0" + showgrid="false" + inkscape:window-maximized="1"><inkscape:grid + type="xygrid" + id="grid4948" /></sodipodi:namedview><metadata + id="metadata6"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><g + inkscape:label="Vrstva 1" + inkscape:groupmode="layer" + id="layer1"><g + style="display:inline" + id="g5022" + transform="matrix(0.06188426,0,0,0.0525517,118.00725,108.08191)"><rect + y="-150.69685" + x="-1234.8357" + height="478.35718" + width="1082.8979" + id="rect4173" + style="opacity:0.39195981;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /><path + sodipodi:nodetypes="cccc" + id="path5058" + d="m -151.93764,-150.67604 c 0,0 0,478.33079 0,478.33079 139.980909,0.90045 338.40573,-107.16966 338.40565,-239.196176 0,-132.026537 -156.208156,-239.134594 -338.40565,-239.134614 z" + style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + inkscape:connector-curvature="0" /><path + style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + d="m -1227.8411,-150.67604 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196177 0,-132.026537 159.4368,-239.134593 345.4002,-239.134613 z" + id="path5018" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" /></g><rect + style="color:#000000;fill:url(#linearGradient4968);fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:2.97456694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect4960" + width="80.366486" + height="113.03354" + x="34.520824" + y="1.7034839" /><path + style="fill:none;stroke:#73d216;stroke-width:2.97456694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.36486487" + d="m 40.691028,111.85063 71.202742,0 0,-106.5093625" + id="path5547" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /><path + style="color:#000000;fill:url(#linearGradient5763);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5755);stroke-width:2.97456646px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 37.495388,4.6780512 50.567638,0 0,82.1919788 -50.567638,21.91786 0,-104.1098388 z" + id="rect5746" + sodipodi:nodetypes="ccccc" + inkscape:connector-curvature="0" /><path + style="color:#000000;fill:url(#linearGradient5569);fill-opacity:1;fill-rule:nonzero;stroke:#a60f11;stroke-width:2.97456694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 34.467538,31.449152 0,17.748937 -32.6594067,0 0,33.040493 32.6594067,0 0,17.625606 L 73.190194,66.772511 34.467538,31.449152 z" + id="rect5549" + sodipodi:nodetypes="cccccccc" + inkscape:connector-curvature="0" /><path + style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.97456646px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.23873877;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 37.506504,38.223656 0,14.092413 -32.6713384,0 0,26.882821 32.6713384,0 0,14.002098 L 68.330507,66.606807 37.506504,38.223656 z" + id="path5561" + sodipodi:nodetypes="cccccccc" + inkscape:connector-curvature="0" /><path + style="fill:none;stroke:#ffffff;stroke-width:2.97456694px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.61261262" + d="M 85.225598,10.290568 85.172142,84.614014 40.469958,104.23637" + id="path5765" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /><path + style="fill:url(#linearGradient5777);fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 44.931805,3.1907675 36.979575,17.8474015 22.18774,0 0,-17.8474015 -59.167315,0 z" + id="path5769" + inkscape:connector-curvature="0" /><rect + style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5797" + width="2.9745669" + height="2.9745669" + x="77.652046" + y="44.834705" /><rect + y="47.809269" + x="80.62661" + height="2.9745669" + width="2.9745669" + id="rect5799" + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5805" + width="2.9745662" + height="2.9745669" + x="80.62661" + y="50.783836" /><rect + y="50.783836" + x="77.652046" + height="2.9745669" + width="2.9745662" + id="rect5807" + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect + style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5829" + width="2.9745662" + height="2.9745669" + x="74.677475" + y="53.758404" /><rect + y="47.809269" + x="77.652046" + height="2.9745669" + width="2.9745669" + id="rect5831" + style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><rect + style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5833" + width="2.9745669" + height="2.9745669" + x="77.652046" + y="53.758404" /><path + style="opacity:0.52401745;color:#000000;fill:url(#linearGradient5848);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 36.052563,34.423719 0,16.21058 -29.7901264,0 0,7.383878 c 6.8653894,4.600277 18.2744334,7.638494 31.2329514,7.638494 10.584104,0 20.178614,-2.018479 27.074217,-5.262074 L 36.052563,34.423719 z" + id="path5835" + inkscape:connector-curvature="0" /></g></svg>
\ No newline at end of file diff --git a/icons/eye.svg b/icons/eye.svg new file mode 100644 index 0000000..86518ca --- /dev/null +++ b/icons/eye.svg @@ -0,0 +1,227 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="679.85107" + height="273.03406" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.48.3.1 r9886" + version="1.0" + sodipodi:docname="eye.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 136.51703 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="679.85107 : 136.51703 : 1" + inkscape:persp3d-origin="339.92554 : 91.011353 : 1" + id="perspective40" /> + <filter + inkscape:collect="always" + x="-0.13315918" + width="1.2663183" + y="-0.17460185" + height="1.3492037" + id="filter7676"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="4.2217398" + id="feGaussianBlur7678" /> + </filter> + <filter + inkscape:collect="always" + id="filter7812"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.5536207" + id="feGaussianBlur7814" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="369.80514" + inkscape:cy="181.01782" + inkscape:document-units="px" + inkscape:current-layer="layer4" + width="720px" + height="380px" + inkscape:window-width="1440" + inkscape:window-height="825" + inkscape:window-x="0" + inkscape:window-y="25" + showgrid="false" + inkscape:window-maximized="0" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="contorno do olho" + style="display:inline" + transform="translate(-20.71769,-59.43312)" /> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="contorno de dentro do olho" + style="display:inline" + transform="translate(-20.71769,-59.43312)" /> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="globo" + style="display:inline" + transform="translate(-20.71769,-59.43312)"> + <path + style="fill:#000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.69999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" + d="m 481.09375,57.96875 c -25.39921,15.110915 -52.20223,32.787596 -82.96875,31.125 -3.5914,0.673505 2.03678,-2.217156 2.3125,-3.3125 2.62926,-3.433689 6.68865,-6.977146 6.5,-11.625 -0.53691,-4.946256 -6.69003,-4.20107 -8.84375,-0.8125 -3.9536,3.769614 -3.32111,2.774307 -0.8125,-0.96875 2.24514,-3.822269 5.61118,-12.260191 -1.09375,-13.15625 -6.01423,0.918012 -9.50743,7.113085 -14.69331,9.866882 -10.26164,8.369292 -22.41227,16.934418 -36.30641,15.072977 -53.72305,1.047782 -108.626,-3.113655 -160.90653,11.685141 -51.35446,13.69982 -99.267054,38.55627 -141.875,70.0625 -3.048334,2.12661 -2.276213,8.03211 2.09375,6.8125 8.211698,-2.51981 14.171563,-9.40952 21.96875,-13 34.05154,-20.28784 72.12098,-33.91806 111.03125,-41.28125 -33.54638,25.43937 -66.89104,52.9231 -89.78125,88.5 -8.957329,19.10769 -31.741233,24.03902 -48.583539,34.03339 -9.361182,5.3546 -17.846019,12.72437 -22.541461,22.68536 7.649975,14.87252 26.008088,17.97455 41.15625,19.125 9.423209,0.47593 18.105773,4.19357 26.59375,7.75 22.30659,5.50129 44.37841,-4.70899 66.35384,-6.10788 44.08504,9.45087 88.19758,21.84305 133.70787,21.49983 36.36129,0.38446 74.1255,-1.3376 108.28204,12.92055 5.46404,2.84482 17.19974,15.05554 19.9375,3.53125 -1.26287,-6.22055 -6.76948,-10.57243 -11.34375,-14.59375 12.9823,-2.06869 26.59266,1.10229 38.5625,6.0625 5.17403,2.69731 9.97418,10.02413 16.375,7.75 4.94448,-3.58819 -0.0179,-10.07141 -2.5,-13.25 15.35411,4.88261 29.81558,13.44132 41.65625,24 4.59888,2.47448 9.39875,-3.87618 5.625,-7.65625 -6.77061,-11.36846 -16.57439,-20.60479 -27.25,-28.375 17.55048,-6.12386 38.03668,-4.35617 54.6875,3.5625 4.23149,2.6819 9.06974,5.99946 14.34375,4.4375 3.83878,-5.18362 -2.08947,-10.05955 -6.1875,-12.40625 -4.50824,-4.04708 -9.85255,-6.91 -15.25,-9.5625 6.57447,-3.36388 13.04775,-7.35863 20,-9.6875 18.22316,-3.68869 36.10361,5.47593 51.21875,14.6875 4.23269,5.16958 12.64886,-1.8307 8.78125,-7.09375 -7.53352,-10.23555 -20.83608,-14.08091 -29.5625,-23.09375 13.64039,-5.83593 27.46611,3.47153 39.52003,9.06637 3.36128,2.41587 10.89686,5.79937 12.01122,-0.47262 -0.25102,-6.50888 -7.88117,-9.10451 -11.96875,-13 -5.82828,-4.48002 -13.96556,-8.40107 -19.25,-11.78125 10.74859,-7.00416 24.33957,-1.10705 34.50454,4.50707 4.75099,2.60055 9.27808,5.58028 13.90171,8.39918 5.11336,-3.02768 4.26345,-10.0929 -0.15625,-13.28125 -7.07063,-6.38333 -16.12136,-10.25487 -23.09375,-16.71875 19.56886,-2.81292 41.02227,6.20812 59.375,-4.09375 2.26529,-1.80556 8.9674,-3.31209 4.65625,-6.375 -5.4753,-5.44002 -13.38048,-0.32938 -19.96875,-1.90625 -6.10807,-0.19222 -12.6147,-0.35864 -18.0625,-3.1875 20.1595,-6.97259 44.13613,-9.87386 58.5625,-27.25 1.65836,-2.45831 7.40465,-7.30729 2.96875,-9.6875 -6.72896,1.25527 -13.31389,4.88435 -20.45804,5.20846 -13.0545,1.6955 -26.43768,0.35288 -39.19821,-2.83346 14.32174,-6.23785 31.30577,-12.33658 37.75776,-27.91233 -0.17879,-2.59784 -9.29491,2.01447 -13.10151,2.22483 -20.45374,4.92459 -42.45181,7.73412 -63.03125,2.0625 14.4195,-9.7004 32.07824,-17.8407 38.62244,-35.21643 -3.38349,0.66073 -9.43782,3.99953 -14.02881,5.43909 -25.35606,9.39184 -53.49269,12.9853 -80.09363,6.87109 15.69535,-13.04475 34.84916,-22.61653 45.09375,-41 -15.99696,-1.870573 -29.19193,8.876958 -43.648,13.68196 -9.72896,3.99043 -19.84221,7.09347 -30.32075,8.28679 10.03757,-6.72375 21.33352,-14.493636 23.42682,-27.4262 1.10913,-4.160457 -6.40048,4.207414 -9.03387,5.083912 -19.93085,14.301648 -45.46116,19.130678 -69.37773,14.199748 -4.80562,-1.179819 -11.31229,-1.503309 -15.26522,-3.32621 10.12198,-11.59394 26.37655,-18.6331 31.3125,-34.25 0.62274,-4.160151 4.55373,-9.761352 -2.34375,-4.5 z" + id="path2261" + inkscape:connector-curvature="0" /> + <path + style="fill:#666666;fill-rule:evenodd;stroke:none;display:inline" + d="m 81.47075,268.61679 c 15.94489,17.53333 41.74324,18.28795 62.87892,11.688 23.23421,0.57572 45.41058,9.40415 68.72263,10.44182 65.43429,7.16513 131.4219,4.82956 197.09178,3.98655 64.37744,-4.59678 126.63354,-35.24768 168.97264,-84.05476 -8.33023,-14.65501 -30.8226,-14.84558 -44.14895,-25.11141 -60.32068,-29.13368 -124.91572,-51.70539 -192.27559,-55.53538 -53.90939,-5.57368 -112.85002,4.43891 -153.82077,42.37544 -33.75658,28.60106 -53.11696,73.8789 -94.892449,92.66729 -4.053531,1.56722 -8.251784,2.76449 -12.528211,3.54245 z" + id="path2265" + inkscape:connector-curvature="0" /> + <path + style="opacity:0.89673899;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" + d="M 97.73181,264.21275 C 112.63779,266.47123 126.64038,262.85766 139.73957,265.56784 L 204.10629,288.60435 C 195.40427,293.37954 152.35849,277.14819 146.51501,280.47382 L 126.86622,284.53909 C 110.15154,282.73741 92.345,283.84738 80.7932,268.27802 L 97.73181,264.21275 z" + id="path2272" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:#808080;fill-rule:evenodd;stroke:none;display:inline" + d="m 133.64167,242.53133 c 27.50815,-51.14773 73.20386,-96.95122 132.00456,-108.30328 52.79273,-10.65456 107.61735,-3.63476 159.28708,9.54267 48.81115,13.29529 94.93516,34.70701 139.6266,58.10795 -29.65245,44.51047 -82.74875,64.96073 -133.05284,75.57102 -81.75024,15.90244 -167.27118,13.42478 -247.88465,-7.5245 -17.50777,-5.31227 -36.65105,-11.29198 -48.94399,-25.57106 l -1.03676,-1.8228 0,0 z" + id="path2278" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" + d="M 134.99676,241.85379 C 135.2226,241.85379 135.44845,241.85379 134.99676,241.85379 z" + id="path2276" /> + <path + style="opacity:0.79891298;fill:#e6e6e6;fill-rule:evenodd;stroke:none;display:inline" + d="m 153.968,241.17624 c 26.7927,-50.47181 85.80366,-71.38398 139.53321,-77.13755 65.75324,-6.98583 134.4866,2.16061 193.95463,31.89901 13.64756,8.50227 35.35766,19.78912 37.41559,34.93057 -25.08991,33.44111 -69.02856,42.74702 -107.91811,49.67193 -72.30606,10.81287 -146.78506,7.7574 -218.14658,-7.9104 -15.99603,-5.36267 -36.20604,-8.42366 -45.92977,-23.57734 -1.02734,-2.58317 -0.56544,-5.65374 1.09103,-7.87622 z" + id="path2280" + inkscape:connector-curvature="0" /> + <g + id="g2413"> + <path + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.56083322px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 473.48666,197.47258 C 468.74687,308.55384 294.10222,340.93623 244.92215,243.13481 200.55471,156.11706 302.58878,66.118123 387.79184,99.037329 c 45.07985,10.867551 87.42911,49.038071 85.69482,98.435251 z" + id="path2283" + inkscape:connector-curvature="0" /> + <path + style="fill:#008000;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-opacity:1;filter:url(#filter7676)" + d="m 403.1389,428.3588 c 0.0435,9.67932 -7.77585,17.4868 -16.31097,20.85189 -13.22862,5.35312 -30.08123,3.36545 -40.27296,-7.12413 -5.75209,-5.75269 -7.59684,-15.19166 -3.5883,-22.42311 5.68733,-10.51571 18.34901,-15.27007 29.80963,-15.01096 11.13203,0.17689 23.25993,5.17101 28.4714,15.55262 1.22491,2.53289 1.89691,5.33701 1.8912,8.15369 z" + id="path3310" + inkscape:connector-curvature="0" + transform="matrix(2.96492,0,0,3.42532,-751.055,-1270.47)" /> + <path + style="fill:#000000;stroke:none" + d="m 380.84549,190.36192 c 2.81958,55.24725 -99.13882,21.09771 -57.49428,-20.2459 17.54576,-18.68812 62.39805,-10.99019 57.49428,20.2459 z" + id="path4281" + inkscape:connector-curvature="0" /> + <path + style="opacity:0.44021702;fill:#d5fff6;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 391.78608,157.16074 c 16.9962,6.49757 23.58584,25.7675 23.78236,42.56667 2.04734,22.99296 -5.96987,48.58614 -26.83634,60.75717 -14.08001,8.4391 -30.89832,12.54636 -47.21517,12.2002 -27.50067,-4.24202 -56.93256,-19.6649 -65.50666,-47.96231 -6.27507,-21.39637 -0.59573,-44.6981 9.58852,-63.89041 5.80786,-5.8752 20.98446,-12.16952 25.46742,-9.13163 -10.72298,18.18593 -19.11286,42.69912 -6.72151,62.14111 11.3407,16.56766 33.39226,25.03433 52.94994,20.68213 17.98068,-2.16099 35.4801,-14.72319 38.56112,-33.38244 3.01622,-14.66509 0.13471,-29.85393 -4.06968,-43.98049 z" + id="path4285" + inkscape:connector-curvature="0" /> + <path + style="fill:#d5fff6;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter7812)" + d="m 298.96249,157.83828 c -10.41374,15.71344 -9.85756,36.91705 -0.74821,53.07927 9.67568,18.17443 29.67442,31.37945 50.6466,29.909 7.01218,-0.20367 13.86313,-2.13271 19.90936,-5.71688 8.46968,-4.88696 16.89416,-10.52768 22.90863,-18.36462 2.14795,-2.31181 1.18762,-6.19676 -0.80182,-1.79649 -12.1994,16.12111 -34.37191,21.65502 -53.60588,17.89191 -17.07399,-3.03543 -33.71071,-14.20823 -39.19122,-31.24815 -2.50588,-8.59849 -3.16909,-17.73056 -2.61029,-26.65119 0.47615,-5.81341 1.66973,-11.56372 3.49283,-17.10285 z" + id="path4287" + inkscape:connector-curvature="0" /> + <g + transform="matrix(1.0471,0,0,0.813144,-227.066,-21.5052)" + id="g2246" + style="opacity:1;fill:#ffffff;stroke:none;display:inline"> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 508.02224,261.67934 c -7.63859,-1.12968 -14.98372,0.82449 -22.33977,2.66383 7.65135,-0.0553 15.02218,-0.0849 22.33977,-2.66383 z" + id="path9108" + inkscape:connector-curvature="0" /> + <g + style="fill:#ffffff;stroke:none" + id="g9157"> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 566.73258,306.44537 c -1.30508,6.05747 -1.21807,12.05081 0.74766,17.95762 1.30957,8.46017 1.15032,0.0479 1.38591,-3.82908 0.85824,-4.93544 -1.07062,-9.39482 -2.13357,-14.12854 z" + id="path9090" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 532.12249,306.86912 c -3.36157,5.19095 -5.37068,10.82119 -5.60652,17.02741 -1.79859,8.61675 1.27527,-0.16523 2.84912,-3.59095 2.40314,-4.13035 2.0659,-8.85869 2.7574,-13.43646 z" + id="path9092" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 544.29582,310.84621 c -1.3156,6.04279 -1.2107,12.01985 0.75666,17.91071 1.35482,8.69757 1.13513,-0.60425 1.40015,-4.36487 0.79263,-4.71238 -1.18998,-9.01822 -2.15681,-13.54584 z" + id="path9094" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 516.9515,297.18907 c -5.03124,3.59621 -8.96541,8.09715 -11.46114,13.78434 -4.83371,7.35653 1.247,0.31402 3.96766,-2.29568 3.74315,-2.95074 5.17744,-7.49335 7.49348,-11.48866 z" + id="path9084" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 574.2663,299.66507 c 0.18162,5.52194 1.19016,10.76285 4.81102,15.11598 3.9442,7.87648 1.42402,-0.56343 0.66484,-4.5585 -0.2654,-4.18755 -3.49603,-7.08536 -5.47586,-10.55748 z" + id="path9088" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 580.72863,291.94055 c 2.61345,5.605 6.31733,10.29728 11.45093,13.79283 6.34629,6.09983 0.53718,-1.16836 -1.52982,-4.32113 -2.2237,-4.22965 -6.40935,-6.4548 -9.92111,-9.4717 z" + id="path9096" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 509.59397,286.63183 c -6.32858,4.42417 -10.32617,10.88861 -14.41055,17.27708 5.50504,-5.27164 10.88241,-10.40408 14.41055,-17.27708 z" + id="path9098" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 505.78712,277.56953 c -4.98591,2.03096 -9.96489,4.07122 -12.88781,8.87635 -4.84591,4.96337 -4.98955,6.04274 1.15629,1.92709 5.34445,-2.15811 8.29819,-6.41578 11.73152,-10.80344 z" + id="path9100" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 506.39223,251.65549 c -6.27415,-4.50102 -13.69906,-6.12595 -21.08112,-7.85796 6.82791,3.45338 13.39468,6.80115 21.08112,7.85796 z" + id="path9102" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 511.41741,238.4071 c -3.62132,-5.0132 -8.14187,-8.92482 -13.84146,-11.3921 -7.38059,-4.79688 -0.30778,1.24856 2.31549,3.95614 2.96941,3.72836 7.51913,5.13992 11.52597,7.43596 z" + id="path9104" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-rule:evenodd;stroke:none" + d="m 503.02107,273.51427 c -7.53468,-0.75948 -14.85796,0.81813 -22.18111,2.39709 7.5103,-0.16352 14.91075,-0.24851 22.18111,-2.39709 z" + id="path9110" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + </g> +</svg> diff --git a/icons/graduate.svg b/icons/graduate.svg new file mode 100644 index 0000000..63f9f88 --- /dev/null +++ b/icons/graduate.svg @@ -0,0 +1,1932 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="1.0" + width="128" + height="128" + id="svg43586"> + <metadata + id="metadata3781"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs43588"> + <linearGradient + id="linearGradient44699"> + <stop + id="stop44701" + style="stop-color:#000173;stop-opacity:0.93333334" + offset="0" /> + <stop + id="stop44703" + style="stop-color:#3575f0;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient44693"> + <stop + id="stop44695" + style="stop-color:#3690e6;stop-opacity:1" + offset="0" /> + <stop + id="stop44697" + style="stop-color:#d0e9ff;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient44681"> + <stop + id="stop44683" + style="stop-color:#ff5c38;stop-opacity:1" + offset="0" /> + <stop + id="stop44685" + style="stop-color:#fb7e65;stop-opacity:0.99607843" + offset="0.30397323" /> + <stop + id="stop44687" + style="stop-color:#cd0000;stop-opacity:0.98039216" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient44627"> + <stop + id="stop44629" + style="stop-color:#fffcfb;stop-opacity:1" + offset="0" /> + <stop + id="stop44633" + style="stop-color:#f4ad94;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient44615"> + <stop + id="stop44617" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /> + <stop + id="stop44619" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient44605"> + <stop + id="stop44607" + style="stop-color:#d0ecff;stop-opacity:1" + offset="0" /> + <stop + id="stop44609" + style="stop-color:#d7f0ff;stop-opacity:1" + offset="0.5" /> + <stop + id="stop44611" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient44090"> + <stop + id="stop44092" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /> + <stop + id="stop44094" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient44080"> + <stop + id="stop44082" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /> + <stop + id="stop44084" + style="stop-color:#57aeff;stop-opacity:1" + offset="0.25" /> + <stop + id="stop44086" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /> + <stop + id="stop44088" + style="stop-color:#5aafff;stop-opacity:1" + offset="1" /> + </linearGradient> + <filter + color-interpolation-filters="sRGB" + id="filter3297"> + <feGaussianBlur + id="feGaussianBlur3299" + stdDeviation="0.26694977" /> + </filter> + <filter + color-interpolation-filters="sRGB" + id="filter3293"> + <feGaussianBlur + id="feGaussianBlur3295" + stdDeviation="0.355" /> + </filter> + <linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient3277" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,402.17032,589.33425)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient3267" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-247.63486,-320.15198)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient3243" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-0.1200468,0)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient3240" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,983.32613,0)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient3211" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1805.2301,-312.49477)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient3203" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" /> + <filter + color-interpolation-filters="sRGB" + id="filter3385"> + <feGaussianBlur + id="feGaussianBlur3387" + stdDeviation="0.14607691" /> + </filter> + <linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient3345" + xlink:href="#linearGradient3339" + gradientUnits="userSpaceOnUse" /> + <radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient3333" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" /> + <linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient3325" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="96.381813" + y1="30.666691" + x2="96.381813" + y2="13.187494" + id="linearGradient3302" + xlink:href="#linearGradient3282" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9348508,0,0,0.9348508,453.69103,638.99314)" /> + <linearGradient + x1="96.125" + y1="11.1875" + x2="96.125" + y2="52.101334" + id="linearGradient3296" + xlink:href="#linearGradient14685" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(447.42856,636.93359)" /> + <radialGradient + cx="546.31165" + cy="705.48486" + r="25.28125" + fx="546.31165" + fy="705.48486" + id="radialGradient3288" + xlink:href="#linearGradient3282" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.0328206,0,-3.2890618e-8,1.7173381,-565.71835,-518.49911)" /> + <filter + color-interpolation-filters="sRGB" + id="filter14850"> + <feGaussianBlur + id="feGaussianBlur14852" + stdDeviation="0.23870038" /> + </filter> + <linearGradient + x1="96.125" + y1="11.1875" + x2="96.125" + y2="52.101334" + id="linearGradient14842" + xlink:href="#linearGradient14685" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(458.16198,644.6232)" /> + <linearGradient + x1="96.125" + y1="11.1875" + x2="96.125" + y2="52.101334" + id="linearGradient14833" + xlink:href="#linearGradient14685" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(458.16198,644.6232)" /> + <filter + color-interpolation-filters="sRGB" + id="filter14824"> + <feGaussianBlur + id="feGaussianBlur14826" + stdDeviation="0.37332047" /> + </filter> + <linearGradient + x1="96.125" + y1="11.1875" + x2="96.125" + y2="52.101334" + id="linearGradient14723" + xlink:href="#linearGradient14685" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(447.42856,636.93359)" /> + <radialGradient + cx="546.31165" + cy="705.48486" + r="25.28125" + fx="546.31165" + fy="705.48486" + id="radialGradient14715" + xlink:href="#linearGradient14709" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.0328206,0,-3.2890618e-8,1.7173381,-565.71835,-518.49911)" /> + <linearGradient + x1="96.125" + y1="11.1875" + x2="96.125" + y2="52.101334" + id="linearGradient14699" + xlink:href="#linearGradient14685" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(447.42856,636.93359)" /> + <linearGradient + x1="96.125" + y1="11.1875" + x2="96.125" + y2="52.101334" + id="linearGradient14691" + xlink:href="#linearGradient14685" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient14685"> + <stop + id="stop14687" + style="stop-color:#0917a0;stop-opacity:1" + offset="0" /> + <stop + id="stop14689" + style="stop-color:#0345f4;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient14709"> + <stop + id="stop14711" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop14713" + style="stop-color:#5eb2ff;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3282"> + <stop + id="stop3284" + style="stop-color:#ffffff;stop-opacity:0" + offset="0" /> + <stop + id="stop3286" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3319"> + <stop + id="stop3321" + style="stop-color:#7d491f;stop-opacity:1" + offset="0" /> + <stop + id="stop44679" + style="stop-color:#87570f;stop-opacity:1" + offset="0.5" /> + <stop + id="stop3323" + style="stop-color:#926600;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3327"> + <stop + id="stop3329" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /> + <stop + id="stop3335" + style="stop-color:#fdd99a;stop-opacity:1" + offset="0.5" /> + <stop + id="stop3331" + style="stop-color:#c39539;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3339"> + <stop + id="stop3341" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /> + <stop + id="stop3347" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /> + <stop + id="stop3343" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3197"> + <stop + id="stop3199" + style="stop-color:#002f32;stop-opacity:1" + offset="0" /> + <stop + id="stop3201" + style="stop-color:#045b04;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3205"> + <stop + id="stop3207" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /> + <stop + id="stop3215" + style="stop-color:#3db800;stop-opacity:1" + offset="0.25" /> + <stop + id="stop3213" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /> + <stop + id="stop3209" + style="stop-color:#69cf35;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3219"> + <stop + id="stop3221" + style="stop-color:#0e7309;stop-opacity:1" + offset="0" /> + <stop + id="stop3223" + style="stop-color:#70d13e;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3261"> + <stop + id="stop3263" + style="stop-color:#ffffff;stop-opacity:0" + offset="0" /> + <stop + id="stop3269" + style="stop-color:#ffffff;stop-opacity:0" + offset="0.5" /> + <stop + id="stop3265" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient43942" + xlink:href="#linearGradient3339" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-342.04097,860.45213)" /> + <linearGradient + x1="96.381813" + y1="30.666691" + x2="96.381813" + y2="13.187494" + id="linearGradient43945" + xlink:href="#linearGradient3282" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9348508,0,0,0.9348508,-335.7785,862.51168)" /> + <linearGradient + x1="96.125" + y1="11.1875" + x2="96.125" + y2="52.101334" + id="linearGradient43948" + xlink:href="#linearGradient14685" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-342.04097,860.45213)" /> + <radialGradient + cx="546.31165" + cy="705.48486" + r="25.28125" + fx="546.31165" + fy="705.48486" + id="radialGradient43952" + xlink:href="#linearGradient14709" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.0328206,0,-3.2890618e-8,1.7173381,-1355.1879,-294.98057)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient43957" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1037.1044,-96.63344)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient43963" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,193.8566,223.51854)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient43966" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-789.58958,223.51854)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient43969" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1015.7606,-88.97623)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient43972" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-342.04097,860.45213)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient43992" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-342.04097,860.45213)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient43994" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1015.7606,-88.97623)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient43996" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-789.58958,223.51854)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient43998" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,193.8566,223.51854)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient44000" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1037.1044,-96.63344)" /> + <radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient44002" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" /> + <linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient44004" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient44006" + xlink:href="#linearGradient3339" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-342.04097,860.45213)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient44038" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-342.04097,860.45213)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient44040" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1015.7606,-88.97623)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient44042" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-789.58958,223.51854)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient44044" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,193.8566,223.51854)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient44046" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1037.1044,-96.63344)" /> + <radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient44048" + xlink:href="#linearGradient44627" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" /> + <linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient44050" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient44052" + xlink:href="#linearGradient3339" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-342.04097,860.45213)" /> + <linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient44057" + xlink:href="#linearGradient3339" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-282.47353,882.69271)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient44061" + xlink:href="#linearGradient44605" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-743.30707,-121.7687)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient44067" + xlink:href="#linearGradient44090" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,253.42404,245.75912)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient44070" + xlink:href="#linearGradient44090" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-730.02214,245.75912)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient44073" + xlink:href="#linearGradient44080" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1075.328,-66.735647)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient44076" + xlink:href="#linearGradient44699" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-282.47353,882.69271)" /> + <linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient44613" + xlink:href="#linearGradient44615" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient44625" + xlink:href="#linearGradient44615" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,-476.93424,0)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient44635" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-342.04097,860.45213)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient44637" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1015.7606,-88.97623)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient44639" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-789.58958,223.51854)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient44641" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,193.8566,223.51854)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient44643" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1037.1044,-96.63344)" /> + <radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient44645" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" /> + <linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient44647" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient44649" + xlink:href="#linearGradient3339" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-342.04097,860.45213)" /> + <linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient44654" + xlink:href="#linearGradient3339" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-324.93283,864.80693)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient44658" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1019.9963,-92.27864)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient44664" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,210.96474,227.87334)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient44667" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-772.48144,227.87334)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient44670" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1032.8687,-84.621431)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient44673" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-324.93283,864.80693)" /> + <linearGradient + x1="60.126968" + y1="81.913818" + x2="60.126968" + y2="47.542713" + id="linearGradient44677" + xlink:href="#linearGradient44681" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="-35.566662" + y1="76.562927" + x2="-35.566662" + y2="84.910484" + id="linearGradient44691" + xlink:href="#linearGradient44693" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient3339-4"> + <stop + id="stop3341-7" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /> + <stop + id="stop3347-6" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /> + <stop + id="stop3343-3" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /> + </linearGradient> + <filter + color-interpolation-filters="sRGB" + id="filter3385-1"> + <feGaussianBlur + stdDeviation="0.14607691" + id="feGaussianBlur3387-7" /> + </filter> + <linearGradient + id="linearGradient3339-4-5"> + <stop + id="stop3341-7-9" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /> + <stop + id="stop3347-6-7" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /> + <stop + id="stop3343-3-5" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /> + </linearGradient> + <filter + color-interpolation-filters="sRGB" + id="filter3385-1-3"> + <feGaussianBlur + stdDeviation="0.14607691" + id="feGaussianBlur3387-7-8" /> + </filter> + <linearGradient + id="linearGradient2288"> + <stop + id="stop2290" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + <stop + id="stop2292" + style="stop-color:#898989;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2300"> + <stop + id="stop2302" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + <stop + id="stop2304" + style="stop-color:#414141;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4013"> + <stop + id="stop4015" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + <stop + id="stop4017" + style="stop-color:#414141;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2318"> + <stop + id="stop2320" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + <stop + id="stop2326" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /> + <stop + id="stop2322" + style="stop-color:#000000;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2392"> + <stop + id="stop2394" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /> + <stop + id="stop2398" + style="stop-color:#000000;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2338"> + <stop + id="stop2340" + style="stop-color:#545454;stop-opacity:1" + offset="0" /> + <stop + id="stop2344" + style="stop-color:#545454;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2380"> + <stop + id="stop2382" + style="stop-color:#838383;stop-opacity:1" + offset="0" /> + <stop + id="stop2384" + style="stop-color:#767676;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3836"> + <stop + id="stop3838" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /> + <stop + id="stop3844" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /> + <stop + id="stop3846" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /> + <stop + id="stop3840" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3895"> + <stop + id="stop3897" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /> + <stop + id="stop3899" + style="stop-color:#930000;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3924"> + <stop + id="stop3926" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /> + <stop + id="stop3928" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3854"> + <stop + id="stop3856" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /> + <stop + id="stop3860" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /> + <stop + id="stop3862" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient4267" + xlink:href="#linearGradient3895" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.15456164,0.0742179,-0.26720209,0.55645793,-25.12409,-37.753765)" /> + <linearGradient + x1="144.45633" + y1="98.692307" + x2="155.86334" + y2="161.02338" + id="linearGradient4270" + xlink:href="#linearGradient3836" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.17904978,0.08597686,-0.23065756,0.48035238,-27.126192,-39.899064)" /> + <linearGradient + x1="219.53198" + y1="120.31494" + x2="211.80861" + y2="127.47651" + id="linearGradient4274" + xlink:href="#linearGradient2380" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.3111525,0.14941036,-0.13272956,0.27641428,176.94498,-18.034295)" /> + <radialGradient + cx="180.07829" + cy="176.38765" + r="53.050598" + fx="180.07837" + fy="177.18346" + id="radialGradient4277" + xlink:href="#linearGradient2338" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.3111525,0.14941036,-0.13272956,0.27641428,181.50014,-10.290523)" /> + <linearGradient + x1="136.33336" + y1="113.51798" + x2="173.3575" + y2="164.5226" + id="linearGradient4280" + xlink:href="#linearGradient2392" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.30683297,0.14733613,-0.13459826,0.28030568,192.43253,-12.112587)" /> + <linearGradient + x1="263.96207" + y1="41.317993" + x2="24.068567" + y2="220.45784" + id="linearGradient4283" + xlink:href="#linearGradient2318" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.30683297,0.14733613,-0.13459826,0.28030568,53.95566,-40.35458)" /> + <linearGradient + x1="170.29684" + y1="219.20184" + x2="75.611801" + y2="140.29272" + id="linearGradient4287" + xlink:href="#linearGradient2300" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.33782136,0.16221653,-0.12225159,0.25459306,58.055303,-38.988031)" /> + <linearGradient + x1="366.57416" + y1="39.730881" + x2="168.78265" + y2="53.4328" + id="linearGradient4293" + xlink:href="#linearGradient2300" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.19716773,0.09467679,-0.20946225,0.43621227,58.510819,-38.988032)" /> + <linearGradient + x1="81.846077" + y1="136.15834" + x2="168.78268" + y2="53.432808" + id="linearGradient4296" + xlink:href="#linearGradient2288" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.19716773,0.09467679,-0.20946225,0.43621227,58.510819,-38.988032)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient4357" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-324.93283,864.80693)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient4359" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1032.8687,-84.621431)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient4361" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-772.48144,227.87334)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient4363" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,210.96474,227.87334)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient4365" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-1019.9963,-92.27864)" /> + <radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient4367" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" /> + <linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient4369" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient4371" + xlink:href="#linearGradient44699" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-282.47353,882.69271)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient4373" + xlink:href="#linearGradient44080" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1075.328,-66.735647)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient4375" + xlink:href="#linearGradient44090" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-730.02214,245.75912)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient4377" + xlink:href="#linearGradient44090" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,253.42404,245.75912)" /> + <linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient4379" + xlink:href="#linearGradient44615" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="-35.566662" + y1="76.562927" + x2="-35.566662" + y2="84.910484" + id="linearGradient4381" + xlink:href="#linearGradient44693" + gradientUnits="userSpaceOnUse" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient4383" + xlink:href="#linearGradient44605" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-743.30707,-121.7687)" /> + <linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient4385" + xlink:href="#linearGradient44615" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,-476.93424,0)" /> + <radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient4387" + xlink:href="#linearGradient44627" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,1.655849,-1.6391884,0,152.15006,-32.923726)" /> + <linearGradient + x1="60.126968" + y1="81.913818" + x2="60.126968" + y2="47.542713" + id="linearGradient4389" + xlink:href="#linearGradient44681" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="linearGradient2288-5"> + <stop + id="stop2290-0" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + <stop + id="stop2292-6" + style="stop-color:#898989;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2300-4"> + <stop + id="stop2302-6" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + <stop + id="stop2304-2" + style="stop-color:#414141;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient4013-5"> + <stop + id="stop4015-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + <stop + id="stop4017-6" + style="stop-color:#414141;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2318-2"> + <stop + id="stop2320-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /> + <stop + id="stop2326-4" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /> + <stop + id="stop2322-7" + style="stop-color:#000000;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2392-2"> + <stop + id="stop2394-4" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /> + <stop + id="stop2398-0" + style="stop-color:#000000;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2338-6"> + <stop + id="stop2340-2" + style="stop-color:#545454;stop-opacity:1" + offset="0" /> + <stop + id="stop2344-9" + style="stop-color:#545454;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient2380-9"> + <stop + id="stop2382-0" + style="stop-color:#838383;stop-opacity:1" + offset="0" /> + <stop + id="stop2384-8" + style="stop-color:#767676;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3836-1"> + <stop + id="stop3838-3" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /> + <stop + id="stop3844-1" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /> + <stop + id="stop3846-1" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /> + <stop + id="stop3840-0" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3895-3"> + <stop + id="stop3897-4" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /> + <stop + id="stop3899-0" + style="stop-color:#930000;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3924-3"> + <stop + id="stop3926-9" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /> + <stop + id="stop3928-1" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /> + </linearGradient> + <linearGradient + id="linearGradient3854-9"> + <stop + id="stop3856-6" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /> + <stop + id="stop3860-9" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /> + <stop + id="stop3862-3" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /> + </linearGradient> + <linearGradient + x1="137.93805" + y1="118.24712" + x2="183.56607" + y2="110.30299" + id="linearGradient5108" + xlink:href="#linearGradient3854-9" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /> + <linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5111" + xlink:href="#linearGradient3924-3" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" /> + <linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5114" + xlink:href="#linearGradient3895-3" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" /> + <linearGradient + x1="144.45633" + y1="98.692307" + x2="155.86334" + y2="161.02338" + id="linearGradient5117" + xlink:href="#linearGradient3836-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /> + <linearGradient + x1="219.53198" + y1="120.31494" + x2="211.80861" + y2="127.47651" + id="linearGradient5121" + xlink:href="#linearGradient2380-9" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /> + <radialGradient + cx="180.07829" + cy="176.38765" + r="53.050598" + fx="180.07837" + fy="177.18346" + id="radialGradient5124" + xlink:href="#linearGradient2338-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /> + <linearGradient + x1="136.33336" + y1="113.51798" + x2="173.3575" + y2="164.5226" + id="linearGradient5127" + xlink:href="#linearGradient2392-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /> + <linearGradient + x1="263.96207" + y1="41.317993" + x2="24.068567" + y2="220.45784" + id="linearGradient5130" + xlink:href="#linearGradient2318-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /> + <linearGradient + x1="366.57416" + y1="39.730881" + x2="168.78265" + y2="53.4328" + id="linearGradient5133" + xlink:href="#linearGradient2300-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /> + <linearGradient + x1="81.846077" + y1="136.15834" + x2="168.78268" + y2="53.432808" + id="linearGradient5136" + xlink:href="#linearGradient2288-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /> + <radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient5139" + xlink:href="#linearGradient44627" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" /> + <linearGradient + x1="60.126968" + y1="81.913818" + x2="60.126968" + y2="47.542713" + id="linearGradient5141" + xlink:href="#linearGradient44681" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" /> + <linearGradient + x1="170.29684" + y1="219.20184" + x2="75.611801" + y2="140.29272" + id="linearGradient5144" + xlink:href="#linearGradient2300-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" /> + <linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5157" + xlink:href="#linearGradient44615" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient5160" + xlink:href="#linearGradient44605" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" /> + <linearGradient + x1="-35.566662" + y1="76.562927" + x2="-35.566662" + y2="84.910484" + id="linearGradient5163" + xlink:href="#linearGradient44693" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" /> + <linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5166" + xlink:href="#linearGradient44615" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(321.10111,-881.68159)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5169" + xlink:href="#linearGradient44090" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5172" + xlink:href="#linearGradient44090" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-408.92103,-635.92247)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient5175" + xlink:href="#linearGradient44080" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient5178" + xlink:href="#linearGradient44699" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(38.627584,1.0111154)" /> + <radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient5183" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,178.53275,-113.72924)" /> + <linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient5185" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-49.089956,-64.474005)" /> + <radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient5188" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-698.89519,-973.96023)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5194" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,532.06585,-653.80825)" /> + <linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5197" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-451.38033,-653.80825)" /> + <radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient5200" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1353.9698,-966.30302)" /> + <linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient5203" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-3.8317162,-16.874665)" /> + <linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5207" + xlink:href="#linearGradient3339-4" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5209" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /> + </defs> + <g + id="g5230"> + <path + d="m 41.095244,6.5756554 c -14.71669,0 -26.69498,11.9782896 -26.69498,26.6949796 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71669 -11.97829,-26.6949796 -26.69497,-26.6949796 z" + id="path3281" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297)" /> + <path + d="m 41.012034,43.844085 c -21.63445,0 -39.1875002,17.34747 -39.1875002,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.9062502,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" + id="path3283" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293)" /> + <path + d="m 40.262034,42.594085 c -21.63445,0 -39.1875002,17.34747 -39.1875002,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.9062502,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" + id="path2214" + style="fill:url(#linearGradient5203);fill-opacity:1;stroke:none" /> + <path + d="m 40.262034,44.754795 c -20.11022,0 -36.4266002,15.9074 -36.4266002,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697002,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" + id="path3193" + style="fill:url(#radialGradient5200);fill-opacity:1;stroke:none" /> + <path + d="m 57.748464,52.065975 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" + id="path3217" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5197);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> + <path + d="m 22.937054,52.065975 c -8.46364,9.0621 -14.9152802,24.09751 -16.8055102,38.65267" + id="path3227" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5194);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> + <path + d="m 33.570244,56.267355 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" + id="path3249" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + d="M 40.342762,68.887007 34.019443,57.9347 l 12.646637,-10e-7 -6.323318,10.952308 z" + id="path3245" + style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + <path + d="m 46.704854,56.267355 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" + id="path3247" + style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + d="m 23.708474,50.847995 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" + id="path3251" + style="fill:url(#radialGradient5188);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z" + id="path44010" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297)" /> + <path + d="m 66.023242,32.019412 a 25.68048,25.68048 0 1 1 -51.360959,0 25.68048,25.68048 0 1 1 51.360959,0 z" + id="path2309" + style="fill:url(#radialGradient5183);fill-opacity:1;stroke:url(#linearGradient5185);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + <path + d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z" + id="path44012" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293)" /> + <path + d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z" + id="path44014" + style="fill:url(#linearGradient5178);fill-opacity:1;stroke:none" /> + <path + d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z" + id="path44016" + style="fill:url(#radialGradient5175);fill-opacity:1;stroke:none" /> + <path + d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675" + id="path44018" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5172);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> + <path + d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675" + id="path44020" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5169);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> + <path + d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" + id="path44022" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5166);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z" + id="path44024" + style="fill:url(#linearGradient5163);fill-opacity:1;stroke:none" /> + <path + d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" + id="path44028" + style="fill:url(#radialGradient5160);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z" + id="path44621" + style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5157);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <g + transform="matrix(1,0,0,0.87225898,-2.8684654,-5.2100742)" + id="g3842-8"> + <path + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" + id="path3337-3" + style="fill:url(#linearGradient5209);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + id="path3360-1" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" /> + <path + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" + id="path3375-8" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + </g> + <path + d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z" + id="path2368" + style="fill:url(#linearGradient5144);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z" + id="path44030" + style="fill:url(#radialGradient5139);fill-opacity:1;stroke:url(#linearGradient5141);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + <path + d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z" + id="path1526" + style="fill:url(#linearGradient5136);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z" + id="path2296" + style="fill:url(#linearGradient5133);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2308" + style="fill:url(#linearGradient5130);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2390" + style="fill:url(#linearGradient5127);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2334" + style="fill:url(#radialGradient5124);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z" + id="path2378" + style="fill:url(#linearGradient5121);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z" + id="path2346" + style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z" + id="path2312" + style="fill:url(#linearGradient5117);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z" + id="path3870" + style="fill:url(#linearGradient5114);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z" + id="path3920" + style="fill:url(#linearGradient5111);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z" + id="use3848" + style="fill:url(#linearGradient5108);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z" + id="path3946" + style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z" + id="path3937" + style="fill:#f6ca12;fill-opacity:1;stroke:none" /> + <path + d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z" + id="path3942" + style="fill:#f6f1d7;fill-opacity:1;stroke:none" /> + <g + transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)" + id="g3842"> + <path + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" + id="path3337" + style="fill:url(#linearGradient5207);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + id="path3360" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1)" /> + <path + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" + id="path3375" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + </g> + </g> +</svg> diff --git a/icons/lock.svg b/icons/lock.svg new file mode 100644 index 0000000..f38e28a --- /dev/null +++ b/icons/lock.svg @@ -0,0 +1,545 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="128" + height="128" + id="svg3304" + sodipodi:version="0.32" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="lock.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1"> + <defs + id="defs3306"> + <linearGradient + id="linearGradient3877"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop3879" /> + <stop + id="stop3895" + offset="0.84337348" + style="stop-color:white;stop-opacity:1;" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop3881" /> + </linearGradient> + <linearGradient + id="linearGradient3866"> + <stop + id="stop3868" + offset="0" + style="stop-color:white;stop-opacity:1;" /> + <stop + id="stop3870" + offset="1" + style="stop-color:#d3d7cf;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3858"> + <stop + style="stop-color:black;stop-opacity:1" + offset="0" + id="stop3860" /> + <stop + style="stop-color:#c4a000;stop-opacity:0;" + offset="1" + id="stop3862" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3776"> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop3778" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop3780" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3734"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop3736" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop3738" /> + </linearGradient> + <linearGradient + id="linearGradient2833"> + <stop + style="stop-color:#edd400;stop-opacity:1" + offset="0" + id="stop2835" /> + <stop + id="stop2841" + offset="0.2" + style="stop-color:#fce94f;stop-opacity:1;" /> + <stop + style="stop-color:#fce94f;stop-opacity:1;" + offset="0.5" + id="stop2843" /> + <stop + style="stop-color:#edd400;stop-opacity:1" + offset="1" + id="stop2837" /> + </linearGradient> + <linearGradient + id="linearGradient2817"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop2819" /> + <stop + id="stop3899" + offset="0.50602412" + style="stop-color:white;stop-opacity:1;" /> + <stop + style="stop-color:#d3d7cf;stop-opacity:1" + offset="1" + id="stop2821" /> + </linearGradient> + <linearGradient + id="linearGradient5233"> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="0" + id="stop5235" /> + <stop + style="stop-color:black;stop-opacity:1" + offset="1" + id="stop5237" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5225"> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop5227" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5229" /> + </linearGradient> + <linearGradient + id="linearGradient5137"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop5139" /> + <stop + style="stop-color:#e6e6e3;stop-opacity:1;" + offset="1" + id="stop5141" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient6240"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop6242" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop6244" /> + </linearGradient> + <linearGradient + id="linearGradient11400"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop11402" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop11404" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11400" + id="linearGradient11406" + x1="23.154902" + y1="34.572548" + x2="23.529411" + y2="40.219608" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6462532,0,0,2.6423294,2.2740707e-8,1.0310995)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6240" + id="linearGradient6246" + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6462532,0,0,2.6423294,2.2740707e-8,1.0310995)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5137" + id="linearGradient5147" + gradientUnits="userSpaceOnUse" + x1="17.247635" + y1="6.3760414" + x2="39.904388" + y2="38.876041" + gradientTransform="matrix(2.6462531,0,0,2.6423293,3.2740707e-8,1.0311005)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5137" + id="linearGradient5223" + gradientUnits="userSpaceOnUse" + x1="31.743324" + y1="37.842293" + x2="31.86105" + y2="43.82579" + gradientTransform="matrix(2.6462531,0,0,2.6423293,3.2740707e-8,1.0311005)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5225" + id="radialGradient5231" + cx="23.9375" + cy="42.6875" + fx="23.9375" + fy="42.6875" + r="23.75956" + gradientTransform="matrix(1,0,0,0.24763,0,32.1168)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5233" + id="radialGradient5239" + cx="24.006104" + cy="32.997028" + fx="24.006104" + fy="32.997028" + r="19.00016" + gradientTransform="matrix(3.2618616,0,0,2.0567681,-14.778366,6.7236745)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3866" + id="radialGradient3795" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(4.9501949,0,0,4.9312816,-64.40234,-40.569523)" + cx="27.953125" + cy="18.315439" + fx="27.953125" + fy="18.315439" + r="5.1281252" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3776" + id="linearGradient3801" + gradientUnits="userSpaceOnUse" + x1="42.4706" + y1="32.399456" + x2="13.479223" + y2="22.632544" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3734" + id="linearGradient3822" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6462531,0,0,2.2852688,3.2740707e-8,8.3508755)" + x1="18.21875" + y1="20.46875" + x2="19.1875" + y2="30.4375" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2833" + id="linearGradient3830" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6462531,0,0,2.6608098,3.2740707e-8,-1.9716145)" + x1="17.871288" + y1="23.875" + x2="29.689016" + y2="23.875" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2817" + id="radialGradient3833" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(6.8185475,0,0,4.7571019,-82.742779,-26.387223)" + cx="19.468771" + cy="12.116604" + fx="19.468771" + fy="12.116604" + r="6.0156317" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3776" + id="linearGradient3846" + gradientUnits="userSpaceOnUse" + x1="42.4706" + y1="32.399456" + x2="13.479223" + y2="22.632544" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3776" + id="linearGradient3848" + gradientUnits="userSpaceOnUse" + x1="42.4706" + y1="32.399456" + x2="13.479223" + y2="22.632544" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3776" + id="linearGradient3850" + gradientUnits="userSpaceOnUse" + x1="42.4706" + y1="32.399456" + x2="13.479223" + y2="22.632544" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3858" + id="linearGradient3864" + x1="13.5" + y1="17.84375" + x2="36" + y2="19.5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6462532,0,0,2.6423294,2.2740707e-8,1.0310995)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3877" + id="radialGradient3893" + cx="23.582689" + cy="19.995197" + fx="23.582689" + fy="19.995197" + r="7.9999981" + gradientTransform="matrix(2.4179185,-0.17539675,0.07919932,1.0885605,3.8528916,36.235277)" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#849193" + borderopacity="1.0000000" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="4" + inkscape:cx="14.458556" + inkscape:cy="137.34659" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:showpageshadow="false" + showborder="false" + inkscape:window-width="1920" + inkscape:window-height="1148" + inkscape:window-x="0" + inkscape:window-y="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:grid-points="true" + inkscape:window-maximized="1" /> + <metadata + id="metadata3309"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Video display</dc:title> + <dc:creator> + <cc:Agent> + <dc:title>Luca Ferretti <elle.uca@libero.it></dc:title> + </cc:Agent> + </dc:creator> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:subject> + <rdf:Bag> + <rdf:li>monitor</rdf:li> + <rdf:li>display</rdf:li> + <rdf:li>video</rdf:li> + <rdf:li>screen</rdf:li> + <rdf:li>LCD</rdf:li> + <rdf:li>CRT</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <rect + style="fill:none;stroke:none" + id="rect4784" + width="127.02015" + height="126.83181" + x="0" + y="1.0310991" /> + <path + sodipodi:type="arc" + style="opacity:0.4;fill:url(#radialGradient5231);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path13582" + sodipodi:cx="23.9375" + sodipodi:cy="42.6875" + sodipodi:rx="23.75956" + sodipodi:ry="5.8835783" + d="m 47.69706,42.6875 a 23.75956,5.8835783 0 1 1 -47.51911963,0 23.75956,5.8835783 0 1 1 47.51911963,0 z" + transform="matrix(2.5622214,0,0,2.2824361,3.8307981,17.139617)" /> + <path + style="color:#000000;fill:url(#linearGradient5223);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:2.64429069;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + d="m 38.041157,94.921917 c 0,0 3.220161,13.038843 -10.204824,13.161243 -6.431124,0.0579 -5.113825,10.6622 -5.113825,10.6622 l 81.627552,-0.0829 c 0,0 1.10731,-10.29283 -5.351289,-10.41351 C 85.800671,108.0055 88.915147,94.756118 88.915147,94.756118 l -50.87399,0.165805 z" + id="path9222" + sodipodi:nodetypes="csccscc" + inkscape:connector-curvature="0" /> + <path + style="fill:url(#linearGradient5147);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:2.64429069;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" + d="m 12.936542,10.222273 100.898548,0 c 5.35898,0 9.26448,3.772334 9.26448,9.58146 l 0.029,69.239175 c 0,4.470996 -1.39814,5.853364 -5.38422,5.853364 L 9.3467343,94.846239 C 6.2260838,94.770158 4.0050195,93.539183 3.9631201,89.510574 l 0.040161,-70.202925 c 0,-4.687032 4.0736617,-9.085376 8.9332609,-9.085376 z" + id="rect5040" + sodipodi:nodetypes="ccccccccc" + inkscape:connector-curvature="0" /> + <rect + style="fill:url(#radialGradient5239);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.64429069px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="rect9208" + width="97.912216" + height="60.764832" + x="14.570122" + y="20.853388" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-0.875" + inkscape:original="M 12.9375 10.21875 C 8.0779008 10.21875 4 14.625468 4 19.3125 L 3.96875 89.5 C 4.0106494 93.528609 6.2230995 94.767669 9.34375 94.84375 L 117.75 94.90625 C 121.73608 94.90625 123.125 93.502246 123.125 89.03125 L 123.09375 19.8125 C 123.09375 14.003374 119.20273 10.21875 113.84375 10.21875 L 12.9375 10.21875 z " + xlink:href="#rect5040" + style="fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" + id="path5145" + inkscape:href="#rect5040" + d="m 12.90625,11.09375 c -4.330629,0 -8.0625,4.039241 -8.0625,8.21875 L 4.8125,89.5 c 0.019294,1.855084 0.4897758,2.867548 1.21875,3.5 0.7231916,0.627435 1.8484188,0.929392 3.28125,0.96875 l 0.03125,0 108.375,0.0625 c 1.89031,0 2.92407,-0.315334 3.53125,-0.96875 0.60718,-0.653416 0.96875,-1.886359 0.96875,-4.03125 L 122.1875,19.8125 c 0,-5.418403 -3.42798,-8.71875 -8.375,-8.71875 l -100.90625,0 z" /> + <path + style="opacity:0.6;fill:url(#linearGradient11406);fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 37.026787,96.25858 c 0.221388,5.74059 -0.749824,7.69299 -4.322984,9.71117 l 62.492334,3.42794 c -2.511344,-3.0879 -6.164211,-7.75083 -5.167976,-13.180559 l -53.001374,0.04145 z" + id="path10672" + sodipodi:nodetypes="ccccc" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#8d8d8f;stroke-width:2.64429069px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.43902438" + d="m 26.441695,110.67737 c 17.747608,0.005 73.557332,0 73.557332,0" + id="path6575" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + id="path8029" + d="m 25.53086,113.3405 c 17.747608,0.005 76.00002,0 76.00002,0" + style="fill:none;stroke:#ffffff;stroke-width:2.64429069px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <rect + style="color:#000000;fill:url(#linearGradient3830);fill-opacity:1;fill-rule:nonzero;stroke:#b09000;stroke-width:2.64429021;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible" + id="rect1918" + width="39.776482" + height="23.780937" + x="43.663181" + y="49.914207" + rx="2.5797536" + ry="2.5759287" /> + <g + id="g3770" + style="opacity:0.3;fill-opacity:1;stroke:url(#linearGradient3801)" + transform="matrix(2.6462532,0,0,2.6423294,2.2740707e-8,3.6734295)"> + <path + id="path3762" + d="m 17,20.5 14,0" + style="fill:none;stroke:url(#linearGradient3846);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + id="path3764" + d="m 17,22.5 14,0" + style="fill:none;stroke:url(#linearGradient3848);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + id="path3766" + d="m 17,24.5 14,0" + style="fill:none;stroke:url(#linearGradient3850);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </g> + <rect + style="opacity:0.7;color:#000000;fill:none;stroke:url(#linearGradient3822);stroke-width:2.64428949;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible" + id="rect2845" + width="34.483986" + height="15.85399" + x="46.309422" + y="55.19886" + rx="0" + ry="0" /> + <rect + style="opacity:0.2;color:#000000;fill:url(#linearGradient3864);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + id="rect3856" + width="37.047543" + height="2.6423297" + x="44.986298" + y="51.235359" + rx="1.3231266" + ry="1.3211648" /> + <path + style="color:#000000;fill:none;stroke:url(#radialGradient3833);stroke-width:5.28858137;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible" + d="m 50.27881,51.235359 0,-10.69316 c 0,-5.786795 5.901145,-10.445477 13.231266,-10.445477 7.330121,0 13.231265,4.658682 13.231265,10.445477 l 0,10.69316" + id="rect2811" + sodipodi:nodetypes="ccccc" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:url(#radialGradient3795);stroke-width:2.64429069;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible" + d="m 75.418214,51.235359 0,-10.651891 c 0,-4.872825 -5.155248,-9.165581 -11.908138,-9.165581 -6.752892,0 -11.90814,4.292756 -11.90814,9.165581 l 0,10.651891" + id="path3750" + sodipodi:nodetypes="ccccc" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:url(#radialGradient3893);stroke-width:2.64428973;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:1.20000057;marker:none;visibility:visible;display:inline;overflow:visible" + d="m 83.356963,52.582029 c 0,1.44972 -1.150568,2.616823 -2.579751,2.616823 l -34.534282,0 c -1.429183,0 -2.579753,-1.167103 -2.579753,-2.616823 l 0,-0.05099" + id="rect3872" + sodipodi:nodetypes="ccccc" + inkscape:connector-curvature="0" /> + <path + style="opacity:0.65;fill:url(#linearGradient6246);fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 15.939782,22.252631 0,47.582656 C 59.455947,66.256913 75.741646,43.114943 111.12188,40.697127 l 0,-18.527393 -95.182098,0.0829 z" + id="path4073" + sodipodi:nodetypes="ccccc" + inkscape:connector-curvature="0" /> + </g> +</svg> diff --git a/icons/log-out.svg b/icons/log-out.svg new file mode 100644 index 0000000..e94c873 --- /dev/null +++ b/icons/log-out.svg @@ -0,0 +1,284 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48" + height="48" + id="svg5157" + sodipodi:version="0.32" + inkscape:version="0.45" + version="1.0" + sodipodi:docname="system-log-out.svg" + sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs5159"> + <linearGradient + inkscape:collect="always" + id="linearGradient7130"> + <stop + style="stop-color:#4e9a06;stop-opacity:1" + offset="0" + id="stop7132" /> + <stop + style="stop-color:#73d216;stop-opacity:1" + offset="1" + id="stop7134" /> + </linearGradient> + <linearGradient + id="linearGradient7121"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop7123" /> + <stop + style="stop-color:#8ae234;stop-opacity:1" + offset="1" + id="stop7125" /> + </linearGradient> + <linearGradient + id="linearGradient6998" + inkscape:collect="always"> + <stop + id="stop7000" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop7002" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7130" + id="linearGradient7145" + gradientUnits="userSpaceOnUse" + x1="11.5" + y1="68.75" + x2="-13.247213" + y2="21.843145" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7121" + id="linearGradient7147" + gradientUnits="userSpaceOnUse" + x1="-33.040741" + y1="10.966461" + x2="-30.919424" + y2="17.448257" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6998" + id="radialGradient7161" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.3222749,0,20.728756)" + cx="19.688505" + cy="30.585787" + fx="19.688505" + fy="30.585787" + r="4.6624851" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6998" + id="radialGradient7163" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.3222749,0,20.728756)" + cx="19.688505" + cy="30.585787" + fx="19.688505" + fy="30.585787" + r="4.6624851" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10000" + guidetolerance="10" + objecttolerance="10" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="197.95843" + inkscape:cy="28.49025" + inkscape:document-units="px" + inkscape:current-layer="layer2" + width="48px" + height="48px" + inkscape:window-width="872" + inkscape:window-height="624" + inkscape:window-x="684" + inkscape:window-y="208" + showborder="false" + inkscape:showpageshadow="false" + showgrid="false" + showguides="true" + inkscape:guide-bbox="true" + gridspacingx="0.5px" + gridspacingy="0.5px" + gridempspacing="2" + inkscape:grid-points="true" /> + <metadata + id="metadata5162"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>System-log-out</dc:title> + <dc:date>2007-08-27</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Lapo Calamandrei</dc:title> + </cc:Agent> + </dc:creator> + <dc:source /> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:contributor> + <cc:Agent> + <dc:title>Kalle Persson</dc:title> + </cc:Agent> + </dc:contributor> + <dc:subject> + <rdf:Bag> + <rdf:li>logout</rdf:li> + <rdf:li>exit</rdf:li> + <rdf:li>man</rdf:li> + <rdf:li>sign</rdf:li> + <rdf:li>running</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + inkscape:label="shadow" + inkscape:groupmode="layer" + id="layer1" + style="display:inline"> + <g + id="g6227" + transform="matrix(0.6759778,0,0,0.8422279,-72.059226,25.879981)" + style="opacity:0.33000004" /> + <g + id="g7008" + style="opacity:0.5" + transform="matrix(1.2209709,0,0,1.465165,4.32932,-3.7089664)"> + <path + transform="matrix(1.356682,0,0,1.1785115,-7.0105312,-5.8165354)" + d="M 24.35099 30.585787 A 4.6624851 1.5026019 0 1 1 15.02602,30.585787 A 4.6624851 1.5026019 0 1 1 24.35099 30.585787 z" + sodipodi:ry="1.5026019" + sodipodi:rx="4.6624851" + sodipodi:cy="30.585787" + sodipodi:cx="19.688505" + id="path6984" + style="opacity:0.5;fill:url(#radialGradient7161);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + sodipodi:type="arc" /> + <path + transform="matrix(3.7061179,0,0,1.3310245,-58.247641,-11.710432)" + d="M 24.35099 30.585787 A 4.6624851 1.5026019 0 1 1 15.02602,30.585787 A 4.6624851 1.5026019 0 1 1 24.35099 30.585787 z" + sodipodi:ry="1.5026019" + sodipodi:rx="4.6624851" + sodipodi:cy="30.585787" + sodipodi:cx="19.688505" + id="path6986" + style="opacity:0.25;fill:url(#radialGradient7163);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1" + sodipodi:type="arc" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="omino"> + <g + id="g7138" + transform="translate(40,0)"> + <g + id="g7094"> + <path + id="path5955" + d="M -7.5,5.5 C -9.708,5.5 -11.5,7.292 -11.5,9.5 C -11.5,11.708 -9.7080001,13.5 -7.5,13.5 C -5.292,13.5 -3.5000001,11.708 -3.5,9.5 C -3.5,7.292 -5.2920001,5.5 -7.5,5.5 z M -20.6875,11.5 C -21.228728,11.552698 -21.725172,11.823486 -22.0625,12.25 L -26.0625,17.25 C -26.752856,18.112945 -26.612945,19.372144 -25.75,20.0625 C -24.887055,20.752856 -23.627856,20.612945 -22.9375,19.75 L -19.53125,15.5 L -15.75,15.5 L -22.1875,23.3125 C -22.420945,23.645583 -22.50685,24.06221 -22.5,24.5 L -22.5,31.5 L -30.5,31.5 L -30.5,35.5 L -20.5,35.5 C -19.395476,35.49989 -18.50011,34.604524 -18.5,33.5 L -18.5,27.3125 L -13.5,32.3125 L -13.5,40.5 L -9.5,40.5 L -9.5,31.5 L -9.5,30.65625 L -10.09375,30.09375 L -14.84375,25.34375 L -11.5,21.28125 L -11.5,22.5 C -11.49989,23.604524 -10.604524,24.49989 -9.5,24.5 L -2.5,24.5 C -1.778728,24.510201 -1.113613,24.122995 -0.75,23.5 C -0.386387,22.877006 -0.386387,22.122995 -0.75,21.5 C -1.113613,20.877004 -1.778728,20.489799 -2.5,20.5 L -7.5,20.5 L -7.5,16 C -10.390638,16 -12.843604,14.110886 -13.6875,11.5 L -20.5,11.5 C -20.562466,11.497069 -20.625034,11.497069 -20.6875,11.5 z " + style="opacity:1;fill:url(#linearGradient7145);fill-opacity:1;fill-rule:evenodd;stroke:#4e9a06;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> + </g> + <path + d="M -20.625,12.5 C -20.883516,12.532601 -21.119099,12.669978 -21.28125,12.875 L -25.28125,17.875 C -25.632167,18.313646 -25.563646,18.930333 -25.125,19.28125 C -24.686354,19.632167 -24.069667,19.563646 -23.71875,19.125 L -20.3125,14.875 C -20.122073,14.638438 -19.834933,14.500611 -19.53125,14.5 L -15.75,14.5 C -15.36741,14.504084 -15.020291,14.724946 -14.854508,15.069775 C -14.688724,15.414605 -14.733008,15.823641 -14.96875,16.125 L -21.375,23.875 C -21.378721,23.880309 -21.37135,23.900494 -21.375,23.90625 L -21.40625,23.9375 C -21.46879,24.048638 -21.50412,24.205427 -21.5,24.46875 C -21.499838,24.479166 -21.499838,24.489584 -21.5,24.5 L -21.5,31.5 C -21.503016,32.051031 -21.948969,32.496984 -22.5,32.5 L -29.5,32.5 L -29.5,34.5 L -20.5,34.5 C -19.938773,34.499944 -19.500056,34.061227 -19.5,33.5 L -19.5,27.3125 C -19.504078,26.903415 -19.259899,26.532643 -18.882467,26.374807 C -18.505035,26.216972 -18.069603,26.303544 -17.78125,26.59375 L -12.78125,31.59375 C -12.595622,31.786381 -12.494406,32.045043 -12.5,32.3125 L -12.5,39.5 L -10.5,39.5 L -10.5,31.5 L -10.5,31.09375 L -10.78125,30.8125 C -10.791666,30.812662 -10.802084,30.812662 -10.8125,30.8125 L -15.5625,26.0625 C -15.923992,25.696513 -15.95096,25.116711 -15.625,24.71875 L -12.28125,20.65625 C -12.013038,20.330928 -11.570348,20.207488 -11.172497,20.347084 C -10.774646,20.486681 -10.506139,20.859664 -10.5,21.28125 L -10.5,22.5 C -10.499944,23.061227 -10.061227,23.499944 -9.5,23.5 L -2.5,23.5 C -2.1471898,23.50499 -1.8109749,23.318639 -1.625,23 C -1.439414,22.682027 -1.4394134,22.317974 -1.625,22 C -1.8109749,21.68136 -2.1471889,21.49501 -2.5,21.5 L -7.5,21.5 C -8.0510308,21.496984 -8.4969843,21.051031 -8.5,20.5 L -8.5,16.84375 C -11.109944,16.483168 -13.278833,14.83457 -14.3125,12.5 L -20.5,12.5 C -20.520828,12.500648 -20.541672,12.500648 -20.5625,12.5 C -20.578034,12.499271 -20.578204,12.5 -20.59375,12.5 C -20.609296,12.5 -20.609466,12.499271 -20.625,12.5 z " + id="path7104" + style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#8ae234;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" + inkscape:original="M -20.6875 11.5 C -21.228728 11.552698 -21.725172 11.823486 -22.0625 12.25 L -26.0625 17.25 C -26.752856 18.112945 -26.612945 19.372144 -25.75 20.0625 C -24.887055 20.752856 -23.627856 20.612945 -22.9375 19.75 L -19.53125 15.5 L -15.75 15.5 L -22.1875 23.3125 C -22.420945 23.645583 -22.50685 24.06221 -22.5 24.5 L -22.5 31.5 L -30.5 31.5 L -30.5 35.5 L -20.5 35.5 C -19.395476 35.49989 -18.50011 34.604524 -18.5 33.5 L -18.5 27.3125 L -13.5 32.3125 L -13.5 40.5 L -9.5 40.5 L -9.5 31.5 L -9.5 30.65625 L -10.09375 30.09375 L -14.84375 25.34375 L -11.5 21.28125 L -11.5 22.5 C -11.49989 23.604524 -10.604524 24.49989 -9.5 24.5 L -2.5 24.5 C -1.778728 24.510201 -1.113613 24.122995 -0.75 23.5 C -0.386387 22.877006 -0.386387 22.122995 -0.75 21.5 C -1.113613 20.877004 -1.778728 20.489799 -2.5 20.5 L -7.5 20.5 L -7.5 16 C -10.390638 16 -12.843604 14.110886 -13.6875 11.5 L -20.5 11.5 C -20.562466 11.497069 -20.625034 11.497069 -20.6875 11.5 z " + inkscape:radius="-1.0054175" + sodipodi:type="inkscape:offset" /> + <path + sodipodi:nodetypes="cccccccsscccscccccccccccccsccccc" + id="path7106" + d="M -1.625,22 C -1.810975,21.68136 -2.147189,21.49501 -2.5,21.5 L -7.5,21.5 C -8.051031,21.496984 -8.496984,21.051031 -8.5,20.5 L -8.5,16.84375 C -11.109944,16.483168 -13.278833,14.83457 -14.3125,12.5 L -20.5,12.5 C -20.520828,12.500648 -20.541672,12.500648 -20.5625,12.5 C -20.578034,12.499271 -20.578204,12.5 -20.59375,12.5 C -20.609296,12.5 -20.609466,12.499271 -20.625,12.5 C -20.883516,12.532601 -21.119099,12.669978 -21.28125,12.875 L -25.28125,17.875 C -25.632167,18.313646 -25.563646,18.930333 -25.125,19.28125 M -10.5,31.5 L -10.5,31.09375 L -10.78125,30.8125 C -10.791666,30.812662 -10.802084,30.812662 -10.8125,30.8125 L -15.5625,26.0625 C -15.923992,25.696513 -15.95096,25.116711 -15.625,24.71875 M -12.5,32.3125 L -12.5,39.5 M -14.854508,15.069775 C -14.688724,15.414605 -14.733008,15.823641 -14.96875,16.125 L -21.375,23.875 C -21.378721,23.880309 -21.37135,23.900494 -21.375,23.90625 L -21.40625,23.9375 C -21.46879,24.048638 -21.50412,24.205427 -21.5,24.46875 C -21.499838,24.479166 -21.499838,24.489584 -21.5,24.5 L -21.5,31.5 C -21.503016,32.051031 -21.948969,32.496984 -22.5,32.5 L -29.5,32.5 L -29.5,34.5" + style="opacity:0.3;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline" /> + <path + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="/home/kalle/Desktop/system-log-out.png" + sodipodi:type="arc" + style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7147);stroke-width:0.6666649;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path7119" + sodipodi:cx="-31.5" + sodipodi:cy="16" + sodipodi:rx="2" + sodipodi:ry="2" + d="M -29.5 16 A 2 2 0 1 1 -33.5,16 A 2 2 0 1 1 -29.5 16 z" + transform="matrix(1.500004,0,0,1.500004,39.750134,-14.500064)" /> + </g> + <g + id="g7055" + transform="translate(130,0)"> + <path + sodipodi:nodetypes="ccc" + id="path7045" + d="M -28.5,33.5 L -20.5,33.5 L -20.5,24.5" + style="opacity:0.4089219;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> + <path + sodipodi:nodetypes="ccc" + id="path7047" + d="M -24.5,18.5 L -20.5,13.5 L -11.5,13.5" + style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccc" + id="path7049" + d="M -2.5,22.5 L -9.5,22.5 L -9.5,13.5" + style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="ccc" + id="path7051" + d="M -11.5,38.5 L -11.5,31.5 L -18.5,24.5" + style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + id="path7053" + d="M -10,14 L -19.5,25.5" + style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + </g> +</svg> diff --git a/icons/ok16.svg b/icons/ok16.svg new file mode 100644 index 0000000..3d60d49 --- /dev/null +++ b/icons/ok16.svg @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + id="svg2" + version="1.1" + inkscape:version="0.47 r22583" + sodipodi:docname="darrow16.svg" + inkscape:export-filename="/home/jjl/ok.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="44.8" + inkscape:cx="9.5866317" + inkscape:cy="8.5407368" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:window-width="1920" + inkscape:window-height="1150" + inkscape:window-x="-4" + inkscape:window-y="-3" + inkscape:window-maximized="1" + guidetolerance="10000" + objecttolerance="10000"> + <inkscape:grid + type="xygrid" + id="grid4187" + empspacing="5" + visible="true" + enabled="true" + snapvisiblegridlinesonly="true" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Ebene 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1036.3622)"> + <path + style="fill:none;stroke:#000000;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" + d="m 4,9 c 1.3333333,1.333333 2.6666667,2.666667 4,4 1.6666667,-3 3.333333,-6 5,-9" + id="path4344" + transform="translate(0,1036.3622)" + sodipodi:nodetypes="ccc" /> + </g> +</svg> diff --git a/icons/photo.svg b/icons/photo.svg new file mode 100644 index 0000000..6552735 --- /dev/null +++ b/icons/photo.svg @@ -0,0 +1,1003 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48" + height="48" + id="svg7854" + sodipodi:version="0.32" + inkscape:version="0.45" + version="1.0" + sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/devices" + sodipodi:docname="camera-photo.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs7856"> + <linearGradient + inkscape:collect="always" + id="linearGradient8954"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop8956" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop8958" /> + </linearGradient> + <linearGradient + id="linearGradient8940"> + <stop + id="stop8942" + offset="0" + style="stop-color:#72776c;stop-opacity:1;" /> + <stop + style="stop-color:#e0e0e0;stop-opacity:1;" + offset="0.5" + id="stop8944" /> + <stop + id="stop8946" + offset="0.75" + style="stop-color:#8f9587;stop-opacity:1;" /> + <stop + id="stop8948" + offset="1" + style="stop-color:#c1c1c1;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient8928"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop8930" /> + <stop + style="stop-color:#cccccc;stop-opacity:1;" + offset="1" + id="stop8932" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient8909"> + <stop + style="stop-color:#edd400;stop-opacity:1;" + offset="0" + id="stop8911" /> + <stop + style="stop-color:#edd400;stop-opacity:0;" + offset="1" + id="stop8913" /> + </linearGradient> + <linearGradient + id="linearGradient8895"> + <stop + id="stop8899" + offset="0" + style="stop-color:#204a87;stop-opacity:0;" /> + <stop + style="stop-color:#204a87;stop-opacity:0;" + offset="0.5" + id="stop8905" /> + <stop + id="stop8897" + offset="1" + style="stop-color:#204a87;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient8735"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop8737" /> + <stop + style="stop-color:#8b8b8b;stop-opacity:1;" + offset="1" + id="stop8739" /> + </linearGradient> + <linearGradient + id="linearGradient8700"> + <stop + id="stop8702" + offset="0" + style="stop-color:#babdb6;stop-opacity:1;" /> + <stop + style="stop-color:#e0e0e0;stop-opacity:1;" + offset="0.5" + id="stop8704" /> + <stop + id="stop8706" + offset="0.75" + style="stop-color:#c0c3bb;stop-opacity:1;" /> + <stop + id="stop8708" + offset="1" + style="stop-color:#dbdbdb;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient8680"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop8682" /> + <stop + id="stop8688" + offset="0.5" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + style="stop-color:#afafaf;stop-opacity:1;" + offset="1" + id="stop8684" /> + </linearGradient> + <linearGradient + id="linearGradient8670"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop8672" /> + <stop + id="stop8950" + offset="0.32142857" + style="stop-color:#ebebeb;stop-opacity:1;" /> + <stop + id="stop8678" + offset="0.5" + style="stop-color:#909090;stop-opacity:1;" /> + <stop + style="stop-color:#fafafa;stop-opacity:1;" + offset="1" + id="stop8674" /> + </linearGradient> + <linearGradient + id="linearGradient8658"> + <stop + id="stop8660" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop8662" + offset="1" + style="stop-color:#a5a5a5;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient8644"> + <stop + style="stop-color:#717171;stop-opacity:1;" + offset="0" + id="stop8646" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="1" + id="stop8648" /> + </linearGradient> + <linearGradient + id="linearGradient8632"> + <stop + style="stop-color:#2e3436;stop-opacity:1;" + offset="0" + id="stop8634" /> + <stop + id="stop8640" + offset="0.5" + style="stop-color:#6b797d;stop-opacity:1;" /> + <stop + style="stop-color:#2e3436;stop-opacity:1;" + offset="1" + id="stop8636" /> + </linearGradient> + <linearGradient + id="linearGradient2230"> + <stop + style="stop-color:#eeeeee;stop-opacity:1;" + offset="0" + id="stop2232" /> + <stop + style="stop-color:#a2a2a2;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop2234" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2230" + id="linearGradient1458" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.13066,0,0,0.6747171,28.550675,-1.9552823)" + x1="7.9151335" + y1="30.816841" + x2="7.9151335" + y2="24.700985" /> + <linearGradient + id="linearGradient3301"> + <stop + id="stop3303" + offset="0.0000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + <stop + id="stop3305" + offset="1.0000000" + style="stop-color:#cbcbcb;stop-opacity:1.0000000;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3301" + id="linearGradient1456" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2673265,0,0,1.7297296,28.430708,-34.581052)" + x1="6.5595827" + y1="29.373810" + x2="6.5595827" + y2="30.191154" /> + <linearGradient + id="linearGradient5895"> + <stop + style="stop-color:#888a85;stop-opacity:1;" + offset="0" + id="stop5897" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop5899" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5871"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5873" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5875" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5841"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5843" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5845" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5829"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop5831" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop5833" /> + </linearGradient> + <linearGradient + id="linearGradient5819"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5821" /> + <stop + style="stop-color:#a5a5a5;stop-opacity:0;" + offset="1" + id="stop5823" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5788"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5790" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5792" /> + </linearGradient> + <linearGradient + id="linearGradient5776"> + <stop + style="stop-color:#babdb6;stop-opacity:1;" + offset="0" + id="stop5778" /> + <stop + id="stop5784" + offset="0.5" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + style="stop-color:#c0c3bb;stop-opacity:1;" + offset="0.75" + id="stop5786" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop5780" /> + </linearGradient> + <linearGradient + id="linearGradient5759"> + <stop + style="stop-color:#898b86;stop-opacity:1;" + offset="0" + id="stop5761" /> + <stop + id="stop5767" + offset="0.16071428" + style="stop-color:#b3b3b0;stop-opacity:1;" /> + <stop + style="stop-color:#71746f;stop-opacity:1;" + offset="0.56037414" + id="stop5769" /> + <stop + style="stop-color:#555753;stop-opacity:1;" + offset="1" + id="stop5763" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5788" + id="linearGradient5794" + x1="24.038181" + y1="18.620981" + x2="24.038181" + y2="15.495981" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9755756,0,0,1,0.1099098,-4)" /> + <filter + inkscape:collect="always" + x="-0.0533544" + width="1.1067088" + y="-0.25483746" + height="1.5096749" + id="filter5813"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="1.2104779" + id="feGaussianBlur5815" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5819" + id="linearGradient5825" + x1="31.5" + y1="39" + x2="31.5" + y2="34.498264" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9490741,0,0,1,-1.1788194,-4)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5829" + id="linearGradient5835" + x1="44.5" + y1="32.25" + x2="40.625" + y2="32.25" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9512194,0,0,0.9756096,0.6707319,-3.304878)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient8700" + id="linearGradient5839" + gradientUnits="userSpaceOnUse" + x1="6.0052037" + y1="7.1100197" + x2="37.575378" + y2="44" + gradientTransform="matrix(0.9756098,0,0,1,8.5365854e-2,-4)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5841" + id="linearGradient5847" + x1="25.84375" + y1="27.124889" + x2="25.84375" + y2="45" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5871" + id="linearGradient5877" + x1="13.928617" + y1="29.084788" + x2="35.02602" + y2="29.084787" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,-4)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5776" + id="linearGradient5887" + x1="22.992924" + y1="42.25816" + x2="39.224056" + y2="19.704054" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9780423,0,0,0.9730736,1.5876454,-1.307902)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5895" + id="linearGradient5901" + x1="22.0625" + y1="22.125" + x2="24" + y2="24.9375" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5895" + id="linearGradient5905" + gradientUnits="userSpaceOnUse" + x1="22.0625" + y1="22.125" + x2="24" + y2="24.9375" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient8940" + id="linearGradient8604" + x1="25.632622" + y1="33.150757" + x2="39.421204" + y2="33.150757" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient8658" + id="linearGradient8628" + x1="32.753944" + y1="29.525757" + x2="32.671204" + y2="39.484386" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient8632" + id="linearGradient8638" + x1="28.3125" + y1="33.375" + x2="35.8125" + y2="33.375" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8644" + id="radialGradient8650" + cx="33.717392" + cy="34.229168" + fx="33.717392" + fy="34.229168" + r="3.5" + gradientTransform="matrix(0.9597076,0,0,1.4285709,-0.6258796,-20.549066)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8670" + id="radialGradient8676" + cx="9.2365828" + cy="16.462448" + fx="9.2365828" + fy="16.462448" + r="2.9610097" + gradientTransform="matrix(1.9559599,0,0,1.02177,-8.8298023,0.2455734)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8680" + id="radialGradient8686" + cx="9.2365828" + cy="15.62961" + fx="9.2365828" + fy="15.62961" + r="2.9610097" + gradientTransform="matrix(1.5304128,0,0,0.7994693,-4.8992018,4.1359504)" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5759" + id="linearGradient8711" + gradientUnits="userSpaceOnUse" + x1="5" + y1="29.951863" + x2="20" + y2="29.951863" + gradientTransform="translate(0,-4)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient8735" + id="linearGradient8741" + x1="24.75" + y1="14.559897" + x2="24.75" + y2="17.5625" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9747923,0,0,1,9.6892066e-2,-4)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8670" + id="radialGradient8745" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.1327366,0,0,1.114116,-10.462615,-1.2746684)" + cx="9.2365828" + cy="15.667007" + fx="9.1956778" + fy="16.975967" + r="2.9610097" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8670" + id="radialGradient8749" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.1327366,0,0,1.114116,-10.462615,-1.2746684)" + cx="9.2365828" + cy="15.667007" + fx="9.1956778" + fy="16.975967" + r="2.9610097" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8670" + id="radialGradient8753" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.1327366,0,0,1.114116,-10.462615,-1.2746684)" + cx="9.2365828" + cy="15.667007" + fx="9.1956778" + fy="16.975967" + r="2.9610097" /> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath8924"> + <rect + ry="1.1324512" + rx="1.1324512" + y="29" + x="28.475426" + height="5" + width="8.17838" + id="rect8926" + style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + </clipPath> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8928" + id="radialGradient8934" + cx="35.132233" + cy="38.144695" + fx="35.132233" + fy="38.144695" + r="5.9602366" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8895" + id="radialGradient8936" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.953696,0,0,0.953696,1.4961981,1.4354241)" + cx="32.3125" + cy="31" + fx="32.3125" + fy="31" + r="2.6875" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8909" + id="radialGradient8938" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4953887,0,0,0.4953887,16.642078,14.429586)" + cx="32.104324" + cy="27.799385" + fx="32.104324" + fy="27.799385" + r="4.125" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8954" + id="radialGradient8960" + cx="7.375" + cy="35.875" + fx="7.375" + fy="35.875" + r="11.5" + gradientTransform="matrix(1,0,0,0.5,0,17.9375)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + x="-0.34117647" + width="1.6823529" + y="-0.34117647" + height="1.6823529" + id="filter9094"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.28648224" + id="feGaussianBlur9096" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient8940" + id="linearGradient9105" + gradientUnits="userSpaceOnUse" + x1="25.632622" + y1="33.150757" + x2="39.421204" + y2="33.150757" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient8928" + id="radialGradient9107" + gradientUnits="userSpaceOnUse" + cx="32.753944" + cy="29.525757" + fx="32.753944" + fy="29.525757" + r="5.9602366" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient8658" + id="linearGradient9109" + gradientUnits="userSpaceOnUse" + x1="32.753944" + y1="29.525757" + x2="32.671204" + y2="39.484386" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#e0e0e0" + borderopacity="1" + gridtolerance="10000" + guidetolerance="10" + objecttolerance="10" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1" + inkscape:cx="37.755423" + inkscape:cy="22.242989" + inkscape:document-units="px" + inkscape:current-layer="layer1" + width="48px" + height="48px" + inkscape:showpageshadow="false" + inkscape:window-width="1042" + inkscape:window-height="958" + inkscape:window-x="480" + inkscape:window-y="187" + showgrid="false" /> + <metadata + id="metadata7859"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:creator> + <cc:Agent> + <dc:title>Jakub Steiner</dc:title> + </cc:Agent> + </dc:creator> + <dc:source>http://jimmac.musichall.cz</dc:source> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:title>Photo Camera</dc:title> + <dc:subject> + <rdf:Bag> + <rdf:li>snapshot</rdf:li> + <rdf:li>camera</rdf:li> + <rdf:li>photo</rdf:li> + <rdf:li>compact</rdf:li> + <rdf:li>snap</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <path + sodipodi:type="arc" + style="opacity:0.24117647;color:#000000;fill:url(#radialGradient8960);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path8952" + sodipodi:cx="7.375" + sodipodi:cy="35.875" + sodipodi:rx="11.5" + sodipodi:ry="5.75" + d="M 18.875 35.875 A 11.5 5.75 0 1 1 -4.125,35.875 A 11.5 5.75 0 1 1 18.875 35.875 z" + transform="translate(3.875,0.5)" /> + <path + style="opacity:0.34705882;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter5813);enable-background:accumulate" + d="M 9.25,30.5 C 7.8238976,30.5 6.4967572,30.783497 5.375,31.25 L 4.75,31.25 C 2.9495,31.25 1.5,32.6995 1.5,34.5 C 1.5,35.319227 1.8158092,36.054579 2.3125,36.625 C 2.3168879,36.634445 2.3080247,36.64683 2.3125,36.65625 C 3.2308853,38.589435 5.998375,40 9.25,40 C 11.85114,40 14.12695,39.099285 15.40625,37.75 L 43.625,37.75 C 45.4255,37.75 46.875,36.3005 46.875,34.5 C 46.875,32.6995 45.4255,31.25 43.625,31.25 L 13.125,31.25 C 12.003243,30.783497 10.676102,30.5 9.25,30.5 z " + id="rect5796" + transform="matrix(0.9766246,0,0,1,3.5063146e-2,0)" /> + <path + style="opacity:1;color:#000000;fill:url(#linearGradient5839);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 5.2073173,9.5 C 4.2556608,9.5 3.5000002,10.260522 3.5000002,11.1875 L 3.5000002,15.71875 L 3.5000002,35.0625 L 3.5000002,35.28125 C 3.5000002,37.62061 6.110732,39.5 9.353659,39.5 C 11.880769,39.5 14.018446,38.17441 14.841464,36.5625 L 41.792685,36.5625 C 42.744341,36.5625 43.500002,35.80198 43.500002,34.875 L 43.500002,11.1875 C 43.500002,10.260522 42.744339,9.5 41.792685,9.5 L 5.2073173,9.5 z " + id="rect4783" + sodipodi:nodetypes="cccccscccccc" /> + <path + sodipodi:nodetypes="cccccscccccc" + id="path5827" + d="M 5.6646343,9.865852 C 4.736769,9.865852 4,10.607826 4,11.512196 L 4,15.932926 L 4,34.55488 L 4,34.768294 C 4,37.050594 6.5454633,38.884148 9.7073169,38.884148 C 12.171249,38.884148 14.255485,37.590886 15.057927,36.018292 L 41.335367,36.018292 C 42.263232,36.018292 43,35.27632 43,34.371952 L 43,11.512196 C 43,10.607826 42.26323,9.865852 41.335367,9.865852 L 5.6646343,9.865852 z " + style="opacity:0.28823529;color:#000000;fill:url(#linearGradient5835);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <rect + style="opacity:0.47647059;color:#000000;fill:url(#linearGradient5825);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5817" + width="25.625" + height="4.5" + x="14.125" + y="30.5" + rx="0.5931713" + ry="0.625" /> + <path + style="opacity:1;color:#000000;fill:url(#linearGradient5887);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 30.4375 15 C 24.161402 15 19.0625 20.068286 19.0625 26.3125 C 19.0625 30.442697 21.327842 34.027952 24.65625 36 L 36.21875 36 C 39.547157 34.027952 41.8125 30.442696 41.8125 26.3125 C 41.8125 20.068287 36.713597 15 30.4375 15 z " + id="path5879" /> + <path + style="opacity:1;color:#000000;fill:url(#linearGradient8711);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 4,33.763325 C 3.5625,38.391398 12.590192,39.218272 14.116117,35.107075 L 17,35.107075 C 17.577468,35.107075 18,34.735332 18,33.9375 L 18,16 C 18,15.377795 17.742047,15.0625 17.125,15.0625 L 13.928617,15.0625 C 11.234482,18.288094 4.7735018,15.204428 4,13.125 L 4,33.763325 z " + id="path5757" + sodipodi:nodetypes="ccccccccc" /> + <path + style="opacity:1;color:#000000;fill:#f6f6f6;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5794);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 4.5,10.93566 L 4.5,12.28125 C 4.5,14.62061 6.0131178,16.4375 9.255931,16.4375 C 11.782953,16.4375 13.005952,15.17441 13.828942,13.5625 L 41.267005,13.5625 C 42.218629,13.5625 42.5,12.80198 42.5,11.875 L 42.5,11.053243 C 42.5,10.481627 41.903642,10.06066 41.314344,10.06066 L 5.4755756,10.06066 C 4.9569242,10.021822 4.5350381,10.148297 4.5,10.93566 z " + id="path5771" + sodipodi:nodetypes="ccsccccccc" /> + <rect + style="opacity:0.14705882;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect5849" + width="1.5" + height="19.5" + x="7" + y="17.75" + rx="0.5931713" + ry="0.625" /> + <path + sodipodi:nodetypes="ccccccc" + id="path5869" + d="M 14.116117,35.107075 L 17,35.107075 C 17.577468,35.107075 18,34.735332 18,33.9375 L 18,16 C 18,15.377795 17.742047,15.0625 17.125,15.0625 L 13.928617,15.0625 C 13.928617,15.0625 14.116117,35.107075 14.116117,35.107075 z " + style="opacity:0.2;color:#000000;fill:url(#linearGradient5877);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-1.1642135" + inkscape:original="M 5.21875 9.5 C 4.2670934 9.5 3.5 10.260522 3.5 11.1875 L 3.5 15.71875 L 3.5 35.0625 L 3.5 35.28125 C 3.5 37.62061 6.100823 39.5 9.34375 39.5 C 11.87086 39.5 14.020732 38.17441 14.84375 36.5625 L 41.78125 36.5625 C 42.732905 36.5625 43.5 35.80198 43.5 34.875 L 43.5 11.1875 C 43.499998 10.260522 42.732904 9.5 41.78125 9.5 L 5.21875 9.5 z " + xlink:href="#rect4783" + style="opacity:0.37058824;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5847);stroke-width:0.99793345;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5837" + inkscape:href="#rect4783" + d="M 5.21875,10.65625 C 4.8873522,10.65625 4.65625,10.902796 4.65625,11.1875 L 4.65625,15.71875 L 4.65625,35.0625 L 4.65625,35.28125 C 4.65625,36.019485 5.0486842,36.715787 5.875,37.3125 C 6.7013158,37.909213 7.9471874,38.34375 9.34375,38.34375 C 11.463736,38.34375 13.245322,37.142088 13.8125,36.03125 C 14.013191,35.647273 14.410489,35.406486 14.84375,35.40625 L 41.78125,35.40625 C 42.112647,35.40625 42.34375,35.159706 42.34375,34.875 L 42.34375,11.1875 C 42.343749,10.902795 42.112644,10.65625 41.78125,10.65625 L 5.21875,10.65625 z " + transform="matrix(1.0041459,0,0,1,-1.9304654e-2,0)" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5901);stroke-width:0.90909094;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path5893" + sodipodi:cx="22.6875" + sodipodi:cy="23.0625" + sodipodi:rx="1.875" + sodipodi:ry="1.875" + d="M 24.5625 23.0625 A 1.875 1.875 0 1 1 20.8125,23.0625 A 1.875 1.875 0 1 1 24.5625 23.0625 z" + transform="matrix(1.1,0,0,1.1,0.60625,-8.93125)" /> + <path + transform="matrix(0.5333333,0,0,0.5333333,8.400001,4.2000007)" + d="M 24.5625 23.0625 A 1.875 1.875 0 1 1 20.8125,23.0625 A 1.875 1.875 0 1 1 24.5625 23.0625 z" + sodipodi:ry="1.875" + sodipodi:rx="1.875" + sodipodi:cy="23.0625" + sodipodi:cx="22.6875" + id="path5903" + style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5905);stroke-width:1.87500012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <rect + ry="1.3120532" + rx="1.2894175" + y="14.5" + x="33.5" + height="3.9999995" + width="7.9999967" + id="rect3297" + style="color:#000000;fill:url(#linearGradient1456);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1458);stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans" /> + <path + transform="matrix(1.355599,0,0,1.3453973,-14.966671,-18.75734)" + d="M 39.421205 33.150757 A 5.833631 5.833631 0 1 1 27.753943,33.150757 A 5.833631 5.833631 0 1 1 39.421205 33.150757 z" + sodipodi:ry="5.833631" + sodipodi:rx="5.833631" + sodipodi:cy="33.150757" + sodipodi:cx="33.587574" + id="path8596" + style="opacity:1;color:#000000;fill:url(#linearGradient8604);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:url(#radialGradient8934);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8628);stroke-width:0.23515993;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path8594" + sodipodi:cx="33.587574" + sodipodi:cy="33.150757" + sodipodi:rx="5.833631" + sodipodi:ry="5.833631" + d="M 39.421205 33.150757 A 5.833631 5.833631 0 1 1 27.753943,33.150757 A 5.833631 5.833631 0 1 1 39.421205 33.150757 z" + transform="matrix(1.2939177,0,0,1.257793,-12.894941,-15.094093)" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:url(#linearGradient9105);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path9101" + sodipodi:cx="33.587574" + sodipodi:cy="33.150757" + sodipodi:rx="5.833631" + sodipodi:ry="5.833631" + d="M 39.421205 33.150757 A 5.833631 5.833631 0 1 1 27.753943,33.150757 A 5.833631 5.833631 0 1 1 39.421205 33.150757 z" + transform="matrix(1.0635279,0,0,1.0465458,-5.1567141,-7.5886238)" /> + <path + transform="matrix(1.0151362,0,0,0.9686302,-3.5313497,-4.797608)" + d="M 39.421205 33.150757 A 5.833631 5.833631 0 1 1 27.753943,33.150757 A 5.833631 5.833631 0 1 1 39.421205 33.150757 z" + sodipodi:ry="5.833631" + sodipodi:rx="5.833631" + sodipodi:cy="33.150757" + sodipodi:cx="33.587574" + id="path9103" + style="opacity:1;color:#000000;fill:url(#radialGradient9107);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient9109);stroke-width:0.3025381;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:url(#linearGradient8638);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path8630" + sodipodi:cx="32.0625" + sodipodi:cy="33.375" + sodipodi:rx="3.75" + sodipodi:ry="3.75" + d="M 35.8125 33.375 A 3.75 3.75 0 1 1 28.3125,33.375 A 3.75 3.75 0 1 1 35.8125 33.375 z" + transform="matrix(1.2702988,0,0,1.2700836,-10.164339,-15.06132)" /> + <rect + ry="1.2356688" + rx="0.94875419" + y="25.375658" + x="26.475426" + height="4.5649796" + width="8.17838" + id="rect8664" + style="opacity:0.47058824;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + <rect + style="opacity:1;color:#000000;fill:url(#radialGradient8650);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect8642" + width="8.17838" + height="5" + x="26.475426" + y="24.808058" + rx="1.1324512" + ry="1.1324512" /> + <path + sodipodi:type="arc" + style="opacity:0.78235294;color:#000000;fill:url(#radialGradient8686);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path8666" + sodipodi:cx="9.2365828" + sodipodi:cy="17.726992" + sodipodi:rx="2.9610097" + sodipodi:ry="1.5467961" + d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z" + transform="matrix(1,0,0,0.9697467,0,-2.6906916)" /> + <path + transform="matrix(0.8598222,0,0,0.7359198,1.2947636,1.3521018)" + d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z" + sodipodi:ry="1.5467961" + sodipodi:rx="2.9610097" + sodipodi:cy="17.726992" + sodipodi:cx="9.2365828" + id="path8668" + style="opacity:1;color:#000000;fill:url(#radialGradient8676);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + style="opacity:1;color:#000000;fill:url(#linearGradient8741);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 3.84375,11.28125 L 3.9960613,17.25 L 4.3616084,13.375 C 4.3616084,11.78401 5.9456459,11.75 5.9456459,11.75 L 41.647414,11.75 C 42.80498,11.71875 42.865905,13.875 42.865905,13.875 C 42.865905,13.875 42.987754,11.375 42.987754,11.375 C 43.073914,10.579505 42.713593,9.96875 41.647414,9.875 L 5.2145517,9.875 C 4.54369,9.875 3.84375,10.48781 3.84375,11.28125 z " + id="path8733" + sodipodi:nodetypes="cccccccccc" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:url(#radialGradient8745);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path8743" + sodipodi:cx="9.2365828" + sodipodi:cy="17.726992" + sodipodi:rx="2.9610097" + sodipodi:ry="1.5467961" + d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z" + transform="matrix(0.5065839,0,0,0.6464973,24.820896,-0.4604517)" /> + <path + transform="matrix(0.5065839,0,0,0.6464973,28.820896,-0.4604517)" + d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z" + sodipodi:ry="1.5467961" + sodipodi:rx="2.9610097" + sodipodi:cy="17.726992" + sodipodi:cx="9.2365828" + id="path8747" + style="opacity:1;color:#000000;fill:url(#radialGradient8749);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:url(#radialGradient8753);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path8751" + sodipodi:cx="9.2365828" + sodipodi:cy="17.726992" + sodipodi:rx="2.9610097" + sodipodi:ry="1.5467961" + d="M 12.197592 17.726992 A 2.9610097 1.5467961 0 1 1 6.275573,17.726992 A 2.9610097 1.5467961 0 1 1 12.197592 17.726992 z" + transform="matrix(0.5065839,0,0,0.6464973,32.820896,-0.4604517)" /> + <g + id="g8919" + clip-path="url(#clipPath8924)" + transform="translate(-2,-4.1919416)"> + <path + transform="translate(0.375,-0.125)" + d="M 35 31 A 2.6875 2.6875 0 1 1 29.625,31 A 2.6875 2.6875 0 1 1 35 31 z" + sodipodi:ry="2.6875" + sodipodi:rx="2.6875" + sodipodi:cy="31" + sodipodi:cx="32.3125" + id="path8893" + style="opacity:1;color:#000000;fill:url(#radialGradient8936);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + transform="matrix(0.6764706,0,0,0.6764706,9.9834559,13.224265)" + d="M 35.6875 26 A 2.125 2.125 0 1 1 31.4375,26 A 2.125 2.125 0 1 1 35.6875 26 z" + sodipodi:ry="2.125" + sodipodi:rx="2.125" + sodipodi:cy="26" + sodipodi:cx="33.5625" + id="path8907" + style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient8938);stroke-width:1.47826087;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + <path + transform="matrix(0.6676229,0,0,0.6675098,10.635888,7.577028)" + d="M 32.1875 33.0625 A 0.875 0.875 0 1 1 30.4375,33.0625 A 0.875 0.875 0 1 1 32.1875 33.0625 z" + sodipodi:ry="0.875" + sodipodi:rx="0.875" + sodipodi:cy="33.0625" + sodipodi:cx="31.3125" + id="path8652" + style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + </g> + <path + sodipodi:type="arc" + style="opacity:0.34705882;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path8962" + sodipodi:cx="27.577164" + sodipodi:cy="16.44536" + sodipodi:rx="0.83968931" + sodipodi:ry="0.83968931" + d="M 28.416853 16.44536 A 0.83968931 0.83968931 0 1 1 26.737474,16.44536 A 0.83968931 0.83968931 0 1 1 28.416853 16.44536 z" + transform="translate(-2,0)" /> + <path + d="M 28.416853 16.44536 A 0.83968931 0.83968931 0 1 1 26.737474,16.44536 A 0.83968931 0.83968931 0 1 1 28.416853 16.44536 z" + sodipodi:ry="0.83968931" + sodipodi:rx="0.83968931" + sodipodi:cy="16.44536" + sodipodi:cx="27.577164" + id="path8964" + style="opacity:0.30588235;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter9094);enable-background:accumulate" + sodipodi:type="arc" + transform="matrix(0.7105263,0,0,0.7105263,6.3585135,5.4745378)" /> + </g> +</svg> diff --git a/icons/screen.svg b/icons/screen.svg new file mode 100644 index 0000000..17abe8b --- /dev/null +++ b/icons/screen.svg @@ -0,0 +1,469 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48.000000px" + height="48.000000px" + id="svg3304" + sodipodi:version="0.32" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="lock.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1"> + <defs + id="defs3306"> + <linearGradient + id="linearGradient3877"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop3879" /> + <stop + id="stop3895" + offset="0.84337348" + style="stop-color:white;stop-opacity:1;" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop3881" /> + </linearGradient> + <linearGradient + id="linearGradient3866"> + <stop + id="stop3868" + offset="0" + style="stop-color:white;stop-opacity:1;" /> + <stop + id="stop3870" + offset="1" + style="stop-color:#d3d7cf;stop-opacity:1" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3858"> + <stop + style="stop-color:black;stop-opacity:1" + offset="0" + id="stop3860" /> + <stop + style="stop-color:#c4a000;stop-opacity:0;" + offset="1" + id="stop3862" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3776"> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop3778" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop3780" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3734"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop3736" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop3738" /> + </linearGradient> + <linearGradient + id="linearGradient2833"> + <stop + style="stop-color:#edd400;stop-opacity:1" + offset="0" + id="stop2835" /> + <stop + id="stop2841" + offset="0.2" + style="stop-color:#fce94f;stop-opacity:1;" /> + <stop + style="stop-color:#fce94f;stop-opacity:1;" + offset="0.5" + id="stop2843" /> + <stop + style="stop-color:#edd400;stop-opacity:1" + offset="1" + id="stop2837" /> + </linearGradient> + <linearGradient + id="linearGradient2817"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop2819" /> + <stop + id="stop3899" + offset="0.50602412" + style="stop-color:white;stop-opacity:1;" /> + <stop + style="stop-color:#d3d7cf;stop-opacity:1" + offset="1" + id="stop2821" /> + </linearGradient> + <linearGradient + id="linearGradient5233"> + <stop + style="stop-color:#555753;stop-opacity:1" + offset="0" + id="stop5235" /> + <stop + style="stop-color:black;stop-opacity:1" + offset="1" + id="stop5237" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5225"> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop5227" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5229" /> + </linearGradient> + <linearGradient + id="linearGradient5137"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop5139" /> + <stop + style="stop-color:#e6e6e3;stop-opacity:1;" + offset="1" + id="stop5141" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient6240"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop6242" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop6244" /> + </linearGradient> + <linearGradient + id="linearGradient11400"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop11402" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop11404" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient11400" + id="linearGradient11406" + x1="23.154902" + y1="34.572548" + x2="23.529411" + y2="40.219608" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6240" + id="linearGradient6246" + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5137" + id="linearGradient5147" + gradientUnits="userSpaceOnUse" + x1="17.247635" + y1="6.3760414" + x2="39.904388" + y2="38.876041" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5137" + id="linearGradient5223" + gradientUnits="userSpaceOnUse" + x1="31.743324" + y1="37.842293" + x2="31.86105" + y2="43.82579" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5225" + id="radialGradient5231" + cx="23.9375" + cy="42.6875" + fx="23.9375" + fy="42.6875" + r="23.75956" + gradientTransform="matrix(1,0,0,0.24763,4.590511e-16,32.1168)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5233" + id="radialGradient5239" + cx="24.006104" + cy="32.997028" + fx="24.006104" + fy="32.997028" + r="19.00016" + gradientTransform="matrix(1.232634,1.948681e-23,-1.1422e-23,0.778392,-5.584638,2.154377)" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3866" + id="radialGradient3795" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.870643,0,0,1.866263,-24.33718,-15.74392)" + cx="27.953125" + cy="18.315439" + fx="27.953125" + fy="18.315439" + r="5.128125" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3776" + id="linearGradient3801" + gradientUnits="userSpaceOnUse" + x1="42.4706" + y1="32.399456" + x2="13.479223" + y2="22.632544" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3734" + id="linearGradient3822" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.864869,-51.88396,3.1237514)" + x1="18.21875" + y1="20.46875" + x2="19.1875" + y2="30.4375" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2833" + id="linearGradient3830" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,1.006994,0,-1.136389)" + x1="17.871288" + y1="23.875" + x2="29.689016" + y2="23.875" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2817" + id="radialGradient3833" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.57668,0,0,1.800344,-31.2679,-10.37657)" + cx="19.468771" + cy="12.116604" + fx="19.468771" + fy="12.116604" + r="6.0156319" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3776" + id="linearGradient3846" + gradientUnits="userSpaceOnUse" + x1="42.4706" + y1="32.399456" + x2="13.479223" + y2="22.632544" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3776" + id="linearGradient3848" + gradientUnits="userSpaceOnUse" + x1="42.4706" + y1="32.399456" + x2="13.479223" + y2="22.632544" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3776" + id="linearGradient3850" + gradientUnits="userSpaceOnUse" + x1="42.4706" + y1="32.399456" + x2="13.479223" + y2="22.632544" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3858" + id="linearGradient3864" + x1="13.5" + y1="17.84375" + x2="36" + y2="19.5" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3877" + id="radialGradient3893" + cx="23.582689" + cy="19.995197" + fx="23.582689" + fy="19.995197" + r="7.9999981" + gradientTransform="matrix(0.913714,-6.637959e-2,2.992885e-2,0.41197,1.45598,13.32316)" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#849193" + borderopacity="1.0000000" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="8" + inkscape:cx="14.458556" + inkscape:cy="27.346585" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:showpageshadow="false" + showborder="false" + inkscape:window-width="1920" + inkscape:window-height="1148" + inkscape:window-x="0" + inkscape:window-y="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:grid-points="true" + inkscape:window-maximized="1" /> + <metadata + id="metadata3309"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + <dc:creator> + <cc:Agent> + <dc:title>Luca Ferretti <elle.uca@libero.it></dc:title> + </cc:Agent> + </dc:creator> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:subject> + <rdf:Bag> + <rdf:li>monitor</rdf:li> + <rdf:li>display</rdf:li> + <rdf:li>video</rdf:li> + <rdf:li>screen</rdf:li> + <rdf:li>LCD</rdf:li> + <rdf:li>CRT</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <rect + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" + id="rect4784" + width="48.000000" + height="48.000000" + x="0.0000000" + y="0.0000000" /> + <path + sodipodi:type="arc" + style="opacity:0.4;fill:url(#radialGradient5231);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path13582" + sodipodi:cx="23.9375" + sodipodi:cy="42.6875" + sodipodi:rx="23.75956" + sodipodi:ry="5.8835783" + d="M 47.69706 42.6875 A 23.75956 5.8835783 0 1 1 0.17794037,42.6875 A 23.75956 5.8835783 0 1 1 47.69706 42.6875 z" + transform="matrix(0.968245,0,0,0.863797,1.447631,6.096332)" /> + <path + style="fill:url(#linearGradient5223);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;opacity:1;color:black;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;visibility:visible;display:inline;overflow:visible" + d="M 14.375479,35.533351 C 14.375479,35.533351 15.592355,40.467951 10.519150,40.514275 C 8.0888743,40.536180 8.5866723,44.549426 8.5866723,44.549426 L 39.433139,44.518053 C 39.433139,44.518053 39.851577,40.622690 37.410922,40.577021 C 32.423455,40.484882 33.600393,35.470606 33.600393,35.470606 L 14.375479,35.533351 z " + id="path9222" + sodipodi:nodetypes="csccscc" /> + <path + style="fill:url(#linearGradient5147);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" + d="M 4.8886262,3.4784362 L 43.01746,3.4784362 C 45.042579,3.4784362 46.518438,4.9060907 46.518438,7.104577 L 46.529388,33.308416 C 46.529388,35.000483 46.001041,35.523645 44.494732,35.523645 L 3.5320635,35.50471 C 2.3527922,35.475917 1.513468,35.010049 1.4976345,33.485407 L 1.5128113,6.9168325 C 1.5128113,5.1430066 3.0522187,3.4784362 4.8886262,3.4784362 z " + id="rect5040" + sodipodi:nodetypes="ccccccccc" /> + <rect + style="fill:url(#radialGradient5239);fill-opacity:1.0;fill-rule:evenodd;stroke:black;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" + id="rect9208" + width="37.000320" + height="22.996691" + x="5.5059438" + y="7.5018229" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-0.875" + inkscape:original="M 4.875 3.46875 C 3.0385925 3.46875 1.5 5.1324241 1.5 6.90625 L 1.5 33.5 C 1.5158335 35.024642 2.3519787 35.471207 3.53125 35.5 L 44.5 35.53125 C 46.006309 35.53125 46.53125 35.004567 46.53125 33.3125 L 46.53125 7.09375 C 46.53125 4.8952637 45.056369 3.46875 43.03125 3.46875 L 4.875 3.46875 z " + xlink:href="#rect5040" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" + id="path5145" + inkscape:href="#rect5040" + d="M 4.875,4.34375 C 3.5670572,4.34375 2.375,5.6383996 2.375,6.90625 L 2.375,33.5 C 2.3812651,34.103278 2.5206964,34.290591 2.65625,34.40625 C 2.7918036,34.521909 3.0781685,34.613174 3.5625,34.625 L 44.5,34.65625 C 45.151173,34.65625 45.356981,34.55523 45.4375,34.46875 C 45.518019,34.38227 45.65625,34.068049 45.65625,33.3125 L 45.65625,7.09375 C 45.65625,5.2865999 44.645463,4.34375 43.03125,4.34375 L 4.875,4.34375 z " /> + <path + style="fill:url(#linearGradient11406);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.60000000" + d="M 13.992156,36.039216 C 14.075817,38.211765 13.708803,38.950659 12.358532,39.714447 L 35.973934,41.011765 C 35.024915,39.843137 33.644523,38.078431 34.020993,36.02353 L 13.992156,36.039216 z " + id="path10672" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#8d8d8f;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:0.43902439" + d="M 9.9921262,41.496063 C 16.698819,41.498032 37.788910,41.496063 37.788910,41.496063" + id="path6575" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cc" + id="path8029" + d="M 9.6479280,42.503937 C 16.354621,42.505906 38.367789,42.503937 38.367789,42.503937" + style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1.0000000" /> + <path + style="fill:url(#linearGradient6246);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity:0.65" + d="M 6.0235294,8.0313725 L 6.0235294,26.039216 C 22.467974,24.684967 28.622222,15.926797 41.992156,15.011764 L 41.992157,8.0000000 L 6.0235294,8.0313725 z " + id="path4073" + sodipodi:nodetypes="ccccc" /> + </g> +</svg> diff --git a/icons/student2all.svg b/icons/student2all.svg new file mode 100644 index 0000000..ef3d7b2 --- /dev/null +++ b/icons/student2all.svg @@ -0,0 +1,2818 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + width="114.38715" + height="114.30188" + id="svg2" + xml:space="preserve" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="student2all.svg"><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1148" + id="namedview1023" + showgrid="false" + inkscape:zoom="5.839876" + inkscape:cx="57.193577" + inkscape:cy="57.15094" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="g10" /><metadata + id="metadata8"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs6"><clipPath + id="clipPath18"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path20" /></clipPath><mask + id="mask22"><g + id="g24"><g + clip-path="url(#clipPath18)" + id="g26"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path28" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath34"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path36" /></clipPath><clipPath + id="clipPath38"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path40" /></clipPath><clipPath + id="clipPath42"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path44" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient46" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)" + spreadMethod="pad"><stop + id="stop48" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop50" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath52"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path54" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient56" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)" + spreadMethod="pad"><stop + id="stop58" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop60" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern62"><defs + id="defs64"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask0"><g + id="g67"><g + clip-path="url(#clipPath42)" + id="g69"><g + id="g71"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient46);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path73" /></g></g></g></mask></defs><g + id="g75" /><g + id="g77"><g + clip-path="url(#clipPath38)" + id="g79"><g + id="g81"><g + id="g83"><g + id="g85" /><g + mask="url(#_mask0)" + id="g87"><g + id="g89" /><g + id="g91"><g + clip-path="url(#clipPath52)" + id="g93"><g + id="g95"><path + d="m 48.215,48.504 c 0,-2.844 -10.426,-5.145 -23.289,-5.145 -12.86,0 -23.285,2.301 -23.285,5.145 0,2.84 10.425,5.144 23.285,5.144 12.863,0 23.289,-2.304 23.289,-5.144 z" + style="fill:url(#radialGradient56);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path97" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient111" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)" + spreadMethod="pad"><stop + id="stop113" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop115" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient123" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)" + spreadMethod="pad"><stop + id="stop125" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop127" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient133" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.247759,0,0,-0.787943,-5.653165,89.260693)" + spreadMethod="pad"><stop + id="stop135" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop137" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath153"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path155" /></clipPath><mask + id="mask157"><g + id="g159"><g + clip-path="url(#clipPath153)" + id="g161"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path163" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath169"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path171" /></clipPath><clipPath + id="clipPath173"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path175" /></clipPath><clipPath + id="clipPath177"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path179" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient181" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop183" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop185" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath187"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path189" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient191" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop193" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop195" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern197"><defs + id="defs199"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask1"><g + id="g202"><g + clip-path="url(#clipPath177)" + id="g204"><g + id="g206"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient181);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path208" /></g></g></g></mask></defs><g + id="g210" /><g + id="g212"><g + clip-path="url(#clipPath173)" + id="g214"><g + id="g216"><g + id="g218"><g + id="g220" /><g + mask="url(#_mask1)" + id="g222"><g + id="g224" /><g + id="g226"><g + clip-path="url(#clipPath187)" + id="g228"><g + id="g230"><path + d="m 14.164,55.52 c 0.086,-2.2 -0.285,-2.95 -1.652,-3.723 l 23.902,-1.313 c -0.961,1.184 -2.355,2.969 -1.976,5.051 L 14.164,55.52 z" + style="fill:url(#linearGradient191);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path232" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath254"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path256" /></clipPath><mask + id="mask258"><g + id="g260"><g + clip-path="url(#clipPath254)" + id="g262"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path264" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath270"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path272" /></clipPath><clipPath + id="clipPath274"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path276" /></clipPath><clipPath + id="clipPath278"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path280" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient282" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop284" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop286" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath288"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path290" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient292" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop294" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop296" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern298"><defs + id="defs300"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask2"><g + id="g303"><g + clip-path="url(#clipPath278)" + id="g305"><g + id="g307"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient282);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path309" /></g></g></g></mask></defs><g + id="g311" /><g + id="g313"><g + clip-path="url(#clipPath274)" + id="g315"><g + id="g317"><g + id="g319"><g + id="g321" /><g + mask="url(#_mask2)" + id="g323"><g + id="g325" /><g + id="g327"><g + clip-path="url(#clipPath288)" + id="g329"><g + id="g331"><path + d="m 6.098,83.871 0,-18.23 c 16.644,1.371 22.875,10.238 36.41,11.164 l 0,7.097 -36.41,-0.031 z" + style="fill:url(#linearGradient292);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path333" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath347"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path349" /></clipPath><mask + id="mask351"><g + id="g353"><g + clip-path="url(#clipPath347)" + id="g355"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path357" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath363"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path365" /></clipPath><clipPath + id="clipPath367"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path369" /></clipPath><clipPath + id="clipPath371"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path373" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient375" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)" + spreadMethod="pad"><stop + id="stop377" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop379" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath381"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path383" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient385" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)" + spreadMethod="pad"><stop + id="stop387" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop389" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern391"><defs + id="defs393"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask3"><g + id="g396"><g + clip-path="url(#clipPath371)" + id="g398"><g + id="g400"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient375);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path402" /></g></g></g></mask></defs><g + id="g404" /><g + id="g406"><g + clip-path="url(#clipPath367)" + id="g408"><g + id="g410"><g + id="g412"><g + id="g414" /><g + mask="url(#_mask3)" + id="g416"><g + id="g418" /><g + id="g420"><g + clip-path="url(#clipPath381)" + id="g422"><g + id="g424"><path + d="m 91.281,60.074 c 0,-1.722 -6.308,-3.117 -14.093,-3.117 -7.786,0 -14.094,1.395 -14.094,3.117 0,1.719 6.308,3.114 14.094,3.114 7.785,0 14.093,-1.395 14.093,-3.114 z" + style="fill:url(#radialGradient385);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path426" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient440" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)" + spreadMethod="pad"><stop + id="stop442" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop444" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient452" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)" + spreadMethod="pad"><stop + id="stop454" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop456" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient462" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,58.678279,84.521513)" + spreadMethod="pad"><stop + id="stop464" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop466" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath482"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path484" /></clipPath><mask + id="mask486"><g + id="g488"><g + clip-path="url(#clipPath482)" + id="g490"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path492" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath498"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path500" /></clipPath><clipPath + id="clipPath502"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path504" /></clipPath><clipPath + id="clipPath506"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path508" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient510" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop512" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop514" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath516"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path518" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient520" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop522" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop524" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern526"><defs + id="defs528"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask4"><g + id="g531"><g + clip-path="url(#clipPath506)" + id="g533"><g + id="g535"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient510);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path537" /></g></g></g></mask></defs><g + id="g539" /><g + id="g541"><g + clip-path="url(#clipPath502)" + id="g543"><g + id="g545"><g + id="g547"><g + id="g549" /><g + mask="url(#_mask4)" + id="g551"><g + id="g553" /><g + id="g555"><g + clip-path="url(#clipPath516)" + id="g557"><g + id="g559"><path + d="m 70.672,64.32 c 0.051,-1.332 -0.172,-1.785 -1,-2.254 l 14.469,-0.793 c -0.582,0.715 -1.426,1.797 -1.196,3.055 L 70.672,64.32 z" + style="fill:url(#linearGradient520);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path561" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath583"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path585" /></clipPath><mask + id="mask587"><g + id="g589"><g + clip-path="url(#clipPath583)" + id="g591"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path593" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath599"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path601" /></clipPath><clipPath + id="clipPath603"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path605" /></clipPath><clipPath + id="clipPath607"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path609" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient611" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop613" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop615" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath617"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path619" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient621" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop623" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop625" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern627"><defs + id="defs629"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask5"><g + id="g632"><g + clip-path="url(#clipPath607)" + id="g634"><g + id="g636"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient611);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path638" /></g></g></g></mask></defs><g + id="g640" /><g + id="g642"><g + clip-path="url(#clipPath603)" + id="g644"><g + id="g646"><g + id="g648"><g + id="g650" /><g + mask="url(#_mask5)" + id="g652"><g + id="g654" /><g + id="g656"><g + clip-path="url(#clipPath617)" + id="g658"><g + id="g660"><path + d="m 65.789,81.48 0,-11.035 c 10.078,0.832 13.848,6.196 22.039,6.758 l 0,4.297 -22.039,-0.02 z" + style="fill:url(#linearGradient621);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path662" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath676"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path678" /></clipPath><mask + id="mask680"><g + id="g682"><g + clip-path="url(#clipPath676)" + id="g684"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path686" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath692"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path694" /></clipPath><clipPath + id="clipPath696"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path698" /></clipPath><clipPath + id="clipPath700"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path702" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient704" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)" + spreadMethod="pad"><stop + id="stop706" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop708" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath710"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path712" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient714" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)" + spreadMethod="pad"><stop + id="stop716" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop718" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern720"><defs + id="defs722"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask6"><g + id="g725"><g + clip-path="url(#clipPath700)" + id="g727"><g + id="g729"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient704);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path731" /></g></g></g></mask></defs><g + id="g733" /><g + id="g735"><g + clip-path="url(#clipPath696)" + id="g737"><g + id="g739"><g + id="g741"><g + id="g743" /><g + mask="url(#_mask6)" + id="g745"><g + id="g747" /><g + id="g749"><g + clip-path="url(#clipPath710)" + id="g751"><g + id="g753"><path + d="m 81.984,13.871 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.723 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.39 14.097,-3.113 z" + style="fill:url(#radialGradient714);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path755" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient769" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)" + spreadMethod="pad"><stop + id="stop771" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop773" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient781" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)" + spreadMethod="pad"><stop + id="stop783" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop785" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient791" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,49.378279,38.321513)" + spreadMethod="pad"><stop + id="stop793" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop795" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath811"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path813" /></clipPath><mask + id="mask815"><g + id="g817"><g + clip-path="url(#clipPath811)" + id="g819"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path821" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath827"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path829" /></clipPath><clipPath + id="clipPath831"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path833" /></clipPath><clipPath + id="clipPath835"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path837" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient839" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop841" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop843" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath845"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path847" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient849" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop851" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop853" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern855"><defs + id="defs857"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask7"><g + id="g860"><g + clip-path="url(#clipPath835)" + id="g862"><g + id="g864"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient839);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path866" /></g></g></g></mask></defs><g + id="g868" /><g + id="g870"><g + clip-path="url(#clipPath831)" + id="g872"><g + id="g874"><g + id="g876"><g + id="g878" /><g + mask="url(#_mask7)" + id="g880"><g + id="g882" /><g + id="g884"><g + clip-path="url(#clipPath845)" + id="g886"><g + id="g888"><path + d="m 61.371,18.117 c 0.055,-1.328 -0.172,-1.781 -1,-2.25 L 74.84,15.07 c -0.578,0.719 -1.426,1.801 -1.195,3.059 L 61.371,18.117 z" + style="fill:url(#linearGradient849);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path890" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath912"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path914" /></clipPath><mask + id="mask916"><g + id="g918"><g + clip-path="url(#clipPath912)" + id="g920"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path922" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath928"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path930" /></clipPath><clipPath + id="clipPath932"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path934" /></clipPath><clipPath + id="clipPath936"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path938" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient940" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop942" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop944" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath946"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path948" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient950" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop952" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop954" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern956"><defs + id="defs958"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask8"><g + id="g961"><g + clip-path="url(#clipPath936)" + id="g963"><g + id="g965"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient940);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path967" /></g></g></g></mask></defs><g + id="g969" /><g + id="g971"><g + clip-path="url(#clipPath932)" + id="g973"><g + id="g975"><g + id="g977"><g + id="g979" /><g + mask="url(#_mask8)" + id="g981"><g + id="g983" /><g + id="g985"><g + clip-path="url(#clipPath946)" + id="g987"><g + id="g989"><path + d="m 56.492,35.277 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.758 l 0,4.293 -22.035,-0.02 z" + style="fill:url(#linearGradient950);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path991" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath1005"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1007" /></clipPath><mask + id="mask1009"><g + id="g1011"><g + clip-path="url(#clipPath1005)" + id="g1013"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1015" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1021"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1023" /></clipPath><clipPath + id="clipPath1025"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1027" /></clipPath><clipPath + id="clipPath1029"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1031" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient1033" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)" + spreadMethod="pad"><stop + id="stop1035" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1037" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath1039"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1041" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient1043" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)" + spreadMethod="pad"><stop + id="stop1045" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop1047" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1049"><defs + id="defs1051"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask9"><g + id="g1054"><g + clip-path="url(#clipPath1029)" + id="g1056"><g + id="g1058"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient1033);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1060" /></g></g></g></mask></defs><g + id="g1062" /><g + id="g1064"><g + clip-path="url(#clipPath1025)" + id="g1066"><g + id="g1068"><g + id="g1070"><g + id="g1072" /><g + mask="url(#_mask9)" + id="g1074"><g + id="g1076" /><g + id="g1078"><g + clip-path="url(#clipPath1039)" + id="g1080"><g + id="g1082"><path + d="m 30.984,3.672 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.719 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.394 14.097,-3.113 z" + style="fill:url(#radialGradient1043);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1084" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient1098" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)" + spreadMethod="pad"><stop + id="stop1100" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop1102" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient1110" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)" + spreadMethod="pad"><stop + id="stop1112" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop1114" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient1120" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,-1.621721,28.121513)" + spreadMethod="pad"><stop + id="stop1122" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop1124" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath1140"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1142" /></clipPath><mask + id="mask1144"><g + id="g1146"><g + clip-path="url(#clipPath1140)" + id="g1148"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1150" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1156"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1158" /></clipPath><clipPath + id="clipPath1160"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1162" /></clipPath><clipPath + id="clipPath1164"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1166" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient1168" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1170" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1172" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath1174"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1176" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient1178" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1180" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop1182" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1184"><defs + id="defs1186"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask10"><g + id="g1189"><g + clip-path="url(#clipPath1164)" + id="g1191"><g + id="g1193"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient1168);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1195" /></g></g></g></mask></defs><g + id="g1197" /><g + id="g1199"><g + clip-path="url(#clipPath1160)" + id="g1201"><g + id="g1203"><g + id="g1205"><g + id="g1207" /><g + mask="url(#_mask10)" + id="g1209"><g + id="g1211" /><g + id="g1213"><g + clip-path="url(#clipPath1174)" + id="g1215"><g + id="g1217"><path + d="m 10.371,7.918 c 0.055,-1.332 -0.172,-1.781 -1,-2.25 L 23.84,4.871 C 23.262,5.59 22.414,6.668 22.645,7.93 L 10.371,7.918 z" + style="fill:url(#linearGradient1178);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1219" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath1241"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1243" /></clipPath><mask + id="mask1245"><g + id="g1247"><g + clip-path="url(#clipPath1241)" + id="g1249"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1251" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1257"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1259" /></clipPath><clipPath + id="clipPath1261"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1263" /></clipPath><clipPath + id="clipPath1265"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1267" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient1269" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1271" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1273" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath1275"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1277" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient1279" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1281" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1283" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1285"><defs + id="defs1287"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask11"><g + id="g1290"><g + clip-path="url(#clipPath1265)" + id="g1292"><g + id="g1294"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient1269);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1296" /></g></g></g></mask></defs><g + id="g1298" /><g + id="g1300"><g + clip-path="url(#clipPath1261)" + id="g1302"><g + id="g1304"><g + id="g1306"><g + id="g1308" /><g + mask="url(#_mask11)" + id="g1310"><g + id="g1312" /><g + id="g1314"><g + clip-path="url(#clipPath1275)" + id="g1316"><g + id="g1318"><path + d="m 5.492,25.078 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.754 l 0,4.297 -22.035,-0.02 z" + style="fill:url(#linearGradient1279);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1320" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient6246" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient6240"><stop + id="stop6242" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop6244" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient3063" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient6246-6" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient6240-0"><stop + id="stop6242-8" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop6244-7" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient3063-5" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4486" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4490" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4469" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4472" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4475" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4478" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><filter + color-interpolation-filters="sRGB" + id="filter3297"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295" /></filter><linearGradient + id="linearGradient44699"><stop + id="stop44701" + style="stop-color:#000173;stop-opacity:0.93333334" + offset="0" /><stop + id="stop44703" + style="stop-color:#3575f0;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44080"><stop + id="stop44082" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop44084" + style="stop-color:#57aeff;stop-opacity:1" + offset="0.25" /><stop + id="stop44086" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop44088" + style="stop-color:#5aafff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44090"><stop + id="stop44092" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop44094" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5790"><stop + id="stop5792" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop5794" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44615"><stop + id="stop44617" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop44619" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44693"><stop + id="stop44695" + style="stop-color:#3690e6;stop-opacity:1" + offset="0" /><stop + id="stop44697" + style="stop-color:#d0e9ff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44605"><stop + id="stop44607" + style="stop-color:#d0ecff;stop-opacity:1" + offset="0" /><stop + id="stop44609" + style="stop-color:#d7f0ff;stop-opacity:1" + offset="0.5" /><stop + id="stop44611" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5810"><stop + id="stop5812" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop5814" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2300-4"><stop + id="stop2302-6" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2304-2" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44627"><stop + id="stop44629" + style="stop-color:#fffcfb;stop-opacity:1" + offset="0" /><stop + id="stop44633" + style="stop-color:#f4ad94;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44681"><stop + id="stop44683" + style="stop-color:#ff5c38;stop-opacity:1" + offset="0" /><stop + id="stop44685" + style="stop-color:#fb7e65;stop-opacity:0.99607843" + offset="0.30397323" /><stop + id="stop44687" + style="stop-color:#cd0000;stop-opacity:0.98039216" + offset="1" /></linearGradient><linearGradient + id="linearGradient2288-5"><stop + id="stop2290-0" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2292-6" + style="stop-color:#898989;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5834"><stop + id="stop5836" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop5838" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2318-2"><stop + id="stop2320-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2326-4" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /><stop + id="stop2322-7" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2392-2"><stop + id="stop2394-4" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /><stop + id="stop2398-0" + style="stop-color:#000000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient2338-6"><stop + id="stop2340-2" + style="stop-color:#545454;stop-opacity:1" + offset="0" /><stop + id="stop2344-9" + style="stop-color:#545454;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient2380-9"><stop + id="stop2382-0" + style="stop-color:#838383;stop-opacity:1" + offset="0" /><stop + id="stop2384-8" + style="stop-color:#767676;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3836-1"><stop + id="stop3838-3" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /><stop + id="stop3844-1" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /><stop + id="stop3846-1" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /><stop + id="stop3840-0" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3895-3"><stop + id="stop3897-4" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /><stop + id="stop3899-0" + style="stop-color:#930000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3924-3"><stop + id="stop3926-9" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /><stop + id="stop3928-1" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3854-9"><stop + id="stop3856-6" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /><stop + id="stop3860-9" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /><stop + id="stop3862-3" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5207" + xlink:href="#linearGradient3339-4" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4"><stop + id="stop3341-7" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1"><feGaussianBlur + id="feGaussianBlur3387-7" + stdDeviation="0.14607691" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3297-9"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299-7" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293-2"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295-7" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient5673-0" + xlink:href="#linearGradient44699-4" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(38.627584,1.0111154)" /><linearGradient + id="linearGradient44699-4"><stop + id="stop44701-3" + style="stop-color:#000173;stop-opacity:0.93333334" + offset="0" /><stop + id="stop44703-4" + style="stop-color:#3575f0;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient5670-6" + xlink:href="#linearGradient44080-3" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" /><linearGradient + id="linearGradient44080-3"><stop + id="stop44082-5" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop44084-5" + style="stop-color:#57aeff;stop-opacity:1" + offset="0.25" /><stop + id="stop44086-1" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop44088-4" + style="stop-color:#5aafff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5667-0" + xlink:href="#linearGradient44090-0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-408.92103,-635.92247)" /><linearGradient + id="linearGradient44090-0"><stop + id="stop44092-7" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop44094-9" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5664-4" + xlink:href="#linearGradient44090-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" /><linearGradient + id="linearGradient6984"><stop + id="stop6986" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop6988" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5661-5" + xlink:href="#linearGradient44615-6" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(321.10111,-881.68159)" /><linearGradient + id="linearGradient44615-6"><stop + id="stop44617-5" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop44619-1" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-35.566662" + y1="76.562927" + x2="-35.566662" + y2="84.910484" + id="linearGradient5658-1" + xlink:href="#linearGradient44693-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" /><linearGradient + id="linearGradient44693-1"><stop + id="stop44695-8" + style="stop-color:#3690e6;stop-opacity:1" + offset="0" /><stop + id="stop44697-1" + style="stop-color:#d0e9ff;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient5655-7" + xlink:href="#linearGradient44605-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" /><linearGradient + id="linearGradient44605-2"><stop + id="stop44607-0" + style="stop-color:#d0ecff;stop-opacity:1" + offset="0" /><stop + id="stop44609-9" + style="stop-color:#d7f0ff;stop-opacity:1" + offset="0.5" /><stop + id="stop44611-1" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5652-7" + xlink:href="#linearGradient44615-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" /><linearGradient + id="linearGradient7004"><stop + id="stop7006" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop7008" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="170.29684" + y1="219.20184" + x2="75.611801" + y2="140.29272" + id="linearGradient5645-3" + xlink:href="#linearGradient2300-4-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" /><linearGradient + id="linearGradient2300-4-8"><stop + id="stop2302-6-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2304-2-7" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient5640-1" + xlink:href="#linearGradient44627-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" /><linearGradient + id="linearGradient44627-2"><stop + id="stop44629-5" + style="stop-color:#fffcfb;stop-opacity:1" + offset="0" /><stop + id="stop44633-6" + style="stop-color:#f4ad94;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="60.126968" + y1="81.913818" + x2="60.126968" + y2="47.542713" + id="linearGradient5642-0" + xlink:href="#linearGradient44681-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" /><linearGradient + id="linearGradient44681-0"><stop + id="stop44683-0" + style="stop-color:#ff5c38;stop-opacity:1" + offset="0" /><stop + id="stop44685-6" + style="stop-color:#fb7e65;stop-opacity:0.99607843" + offset="0.30397323" /><stop + id="stop44687-1" + style="stop-color:#cd0000;stop-opacity:0.98039216" + offset="1" /></linearGradient><linearGradient + x1="81.846077" + y1="136.15834" + x2="168.78268" + y2="53.432808" + id="linearGradient5637-0" + xlink:href="#linearGradient2288-5-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient + id="linearGradient2288-5-4"><stop + id="stop2290-0-2" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2292-6-5" + style="stop-color:#898989;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="366.57416" + y1="39.730881" + x2="168.78265" + y2="53.4328" + id="linearGradient5634-9" + xlink:href="#linearGradient2300-4-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient + id="linearGradient7028"><stop + id="stop7030" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop7032" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="263.96207" + y1="41.317993" + x2="24.068567" + y2="220.45784" + id="linearGradient5631-1" + xlink:href="#linearGradient2318-2-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient + id="linearGradient2318-2-2"><stop + id="stop2320-8-2" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2326-4-2" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /><stop + id="stop2322-7-5" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="136.33336" + y1="113.51798" + x2="173.3575" + y2="164.5226" + id="linearGradient5628-3" + xlink:href="#linearGradient2392-2-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient + id="linearGradient2392-2-4"><stop + id="stop2394-4-5" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /><stop + id="stop2398-0-5" + style="stop-color:#000000;stop-opacity:0" + offset="1" /></linearGradient><radialGradient + cx="180.07829" + cy="176.38765" + r="53.050598" + fx="180.07837" + fy="177.18346" + id="radialGradient5625-6" + xlink:href="#linearGradient2338-6-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient + id="linearGradient2338-6-6"><stop + id="stop2340-2-6" + style="stop-color:#545454;stop-opacity:1" + offset="0" /><stop + id="stop2344-9-3" + style="stop-color:#545454;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="219.53198" + y1="120.31494" + x2="211.80861" + y2="127.47651" + id="linearGradient5622-2" + xlink:href="#linearGradient2380-9-7" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient + id="linearGradient2380-9-7"><stop + id="stop2382-0-1" + style="stop-color:#838383;stop-opacity:1" + offset="0" /><stop + id="stop2384-8-9" + style="stop-color:#767676;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="144.45633" + y1="98.692307" + x2="155.86334" + y2="161.02338" + id="linearGradient5618-0" + xlink:href="#linearGradient3836-1-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient + id="linearGradient3836-1-6"><stop + id="stop3838-3-7" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /><stop + id="stop3844-1-7" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /><stop + id="stop3846-1-8" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /><stop + id="stop3840-0-7" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5615-9" + xlink:href="#linearGradient3895-3-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" /><linearGradient + id="linearGradient3895-3-4"><stop + id="stop3897-4-0" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /><stop + id="stop3899-0-9" + style="stop-color:#930000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5612-8" + xlink:href="#linearGradient3924-3-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" /><linearGradient + id="linearGradient3924-3-5"><stop + id="stop3926-9-6" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /><stop + id="stop3928-1-9" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="137.93805" + y1="118.24712" + x2="183.56607" + y2="110.30299" + id="linearGradient5609-6" + xlink:href="#linearGradient3854-9-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient + id="linearGradient3854-9-1"><stop + id="stop3856-6-2" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /><stop + id="stop3860-9-0" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /><stop + id="stop3862-3-8" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5207-5" + xlink:href="#linearGradient3339-4-4" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4-4"><stop + id="stop3341-7-3" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6-0" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3-2" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1-2"><feGaussianBlur + id="feGaussianBlur3387-7-8" + stdDeviation="0.14607691" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3297-4"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299-77" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293-5"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295-8" /></filter><linearGradient + id="linearGradient3197"><stop + id="stop3199" + style="stop-color:#002f32;stop-opacity:1" + offset="0" /><stop + id="stop3201" + style="stop-color:#045b04;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3205"><stop + id="stop3207" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop3215" + style="stop-color:#3db800;stop-opacity:1" + offset="0.25" /><stop + id="stop3213" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3209" + style="stop-color:#69cf35;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3219"><stop + id="stop3221" + style="stop-color:#0e7309;stop-opacity:1" + offset="0" /><stop + id="stop3223" + style="stop-color:#70d13e;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient7410"><stop + id="stop7412" + style="stop-color:#0e7309;stop-opacity:1" + offset="0" /><stop + id="stop7414" + style="stop-color:#70d13e;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3261"><stop + id="stop3263" + style="stop-color:#ffffff;stop-opacity:0" + offset="0" /><stop + id="stop3269" + style="stop-color:#ffffff;stop-opacity:0" + offset="0.5" /><stop + id="stop3265" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3327"><stop + id="stop3329" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop3335" + style="stop-color:#fdd99a;stop-opacity:1" + offset="0.5" /><stop + id="stop3331" + style="stop-color:#c39539;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3319"><stop + id="stop3321" + style="stop-color:#7d491f;stop-opacity:1" + offset="0" /><stop + id="stop44679" + style="stop-color:#87570f;stop-opacity:1" + offset="0.5" /><stop + id="stop3323" + style="stop-color:#926600;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3339-4-5"><stop + id="stop3341-7-9" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6-7" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3-5" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1-3"><feGaussianBlur + id="feGaussianBlur3387-7-8-5" + stdDeviation="0.14607691" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7597" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7599" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7601" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7603" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7605" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7607" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7609" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7611" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7647" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7649" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7651" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7653" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7655" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7657" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7659" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7661" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7697" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7699" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7701" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7703" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7705" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7707" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7709" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7711" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /></defs><g + transform="matrix(1.25,0,0,-1.25,0,114.30188)" + id="g10"><g + id="g14"><g + id="g16" /><g + mask="url(#mask22)" + id="g30"><g + id="g32" /><g + id="g99"><g + clip-path="url(#clipPath34)" + id="g101"><g + id="g103"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path105" + style="fill:url(#pattern62);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g107"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g109"><path + d="m 14.551,35.969 c 0,0 1.234,4.996 -3.903,5.043 -2.46,0.023 -1.957,4.086 -1.957,4.086 l 31.227,-0.036 c 0,0 0.422,-3.941 -2.047,-3.988 -5.051,-0.094 -3.859,-5.168 -3.859,-5.168 l -19.461,0.063 z" + id="path117" + style="fill:url(#linearGradient111);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g119"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g121"><path + d="m 4.949,3.52 38.598,0 c 2.047,0 3.543,1.445 3.543,3.671 l 0.012,26.528 c 0,1.711 -0.536,2.242 -2.063,2.242 L 3.574,35.941 C 2.383,35.91 1.531,35.441 1.516,33.895 L 1.531,7 c 0,-1.793 1.559,-3.48 3.418,-3.48 z" + id="path129" + style="fill:url(#linearGradient123);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g131"><path + d="m 5.574,83.848 37.453,0 0,-23.277 -37.453,0 0,23.277 z" + id="path139" + style="fill:url(#radialGradient133);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g141"><path + d="m 5.574,7.594 37.453,0 0,23.277 -37.453,0 0,-23.277 z" + id="path143" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g145"><path + d="m 4.934,4.398 c -1.325,0 -2.532,1.309 -2.532,2.594 l 0,26.918 c 0.008,0.613 0.149,0.801 0.286,0.918 0.132,0.113 0.425,0.203 0.886,0.223 l 0.031,0 41.442,0.031 c 0.66,0 0.867,-0.102 0.949,-0.191 0.082,-0.086 0.219,-0.407 0.219,-1.168 l 0,-26.543 c 0,-1.828 -1.024,-2.782 -2.656,-2.782 l -38.625,0 z" + id="path147" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g149"><g + id="g151" /><g + mask="url(#mask157)" + id="g165"><g + id="g167" /><g + id="g234"><g + clip-path="url(#clipPath169)" + id="g236"><g + id="g238"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path240" + style="fill:url(#pattern197);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g242"><path + d="m 10.113,42.004 c 6.789,0.004 28.141,0 28.141,0" + id="path244" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g246"><path + d="m 9.766,43.027 c 6.789,0 29.074,0 29.074,0" + id="path248" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g250"><g + id="g252" /><g + mask="url(#mask258)" + id="g266"><g + id="g268" /><g + id="g335"><g + clip-path="url(#clipPath270)" + id="g337"><g + id="g339"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path341" + style="fill:url(#pattern298);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g343"><g + id="g345" /><g + mask="url(#mask351)" + id="g359"><g + id="g361" /><g + id="g428"><g + clip-path="url(#clipPath363)" + id="g430"><g + id="g432"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path434" + style="fill:url(#pattern391);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g436"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g438"><path + d="m 70.906,27.371 c 0,0 0.746,3.024 -2.359,3.051 -1.492,0.016 -1.188,2.473 -1.188,2.473 l 18.903,-0.02 c 0,0 0.254,-2.387 -1.239,-2.414 -3.058,-0.055 -2.335,-3.129 -2.335,-3.129 l -11.782,0.039 z" + id="path446" + style="fill:url(#linearGradient440);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g448"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g450"><path + d="m 65.094,7.73 23.363,0 c 1.242,0 2.145,0.875 2.145,2.223 l 0.007,16.055 c 0,1.035 -0.324,1.359 -1.246,1.359 L 64.266,27.355 C 63.543,27.336 63.027,27.051 63.02,26.117 L 63.027,9.84 c 0,-1.09 0.942,-2.11 2.067,-2.11 z" + id="path458" + style="fill:url(#linearGradient452);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g460"><path + d="m 65.473,81.246 22.672,0 0,-14.09 -22.672,0 0,14.09 z" + id="path468" + style="fill:url(#radialGradient462);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g470"><path + d="m 65.473,10.195 22.672,0 0,14.09 -22.672,0 0,-14.09 z" + id="path472" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g474"><path + d="m 65.086,8.262 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.484 0.172,0.555 0.082,0.07 0.257,0.125 0.535,0.136 l 0.019,0 25.086,0.016 c 0.399,0 0.524,-0.059 0.574,-0.113 0.047,-0.051 0.133,-0.246 0.133,-0.707 l 0,-16.067 c 0,-1.105 -0.621,-1.683 -1.609,-1.683 l -23.379,0 z" + id="path476" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g478"><g + id="g480" /><g + mask="url(#mask486)" + id="g494"><g + id="g496" /><g + id="g563"><g + clip-path="url(#clipPath498)" + id="g565"><g + id="g567"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path569" + style="fill:url(#pattern526);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g571"><path + d="m 68.223,31.023 c 4.109,0.004 17.031,0 17.031,0" + id="path573" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g575"><path + d="m 68.012,31.641 c 4.109,0.004 17.597,0 17.597,0" + id="path577" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g579"><g + id="g581" /><g + mask="url(#mask587)" + id="g595"><g + id="g597" /><g + id="g664"><g + clip-path="url(#clipPath599)" + id="g666"><g + id="g668"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path670" + style="fill:url(#pattern627);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g672"><g + id="g674" /><g + mask="url(#mask680)" + id="g688"><g + id="g690" /><g + id="g757"><g + clip-path="url(#clipPath692)" + id="g759"><g + id="g761"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path763" + style="fill:url(#pattern720);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g765"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g767"><path + d="m 61.609,73.57 c 0,0 0.743,3.024 -2.363,3.055 -1.488,0.012 -1.184,2.469 -1.184,2.469 l 18.899,-0.016 c 0,0 0.258,-2.387 -1.238,-2.418 -3.059,-0.055 -2.336,-3.129 -2.336,-3.129 L 61.609,73.57 z" + id="path775" + style="fill:url(#linearGradient769);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g777"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g779"><path + d="m 55.797,53.93 23.359,0 c 1.242,0 2.145,0.875 2.145,2.222 l 0.008,16.055 c 0,1.039 -0.325,1.359 -1.247,1.359 L 54.965,73.555 c -0.723,-0.02 -1.238,-0.305 -1.246,-1.239 l 0.008,-16.277 c 0,-1.09 0.945,-2.109 2.07,-2.109 z" + id="path787" + style="fill:url(#linearGradient781);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g789"><path + d="m 56.172,35.047 22.672,0 0,-14.094 -22.672,0 0,14.094 z" + id="path797" + style="fill:url(#radialGradient791);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g799"><path + d="m 56.172,56.395 22.672,0 0,14.094 -22.672,0 0,-14.094 z" + id="path801" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g803"><path + d="m 55.785,54.461 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.485 0.172,0.555 0.082,0.07 0.258,0.125 0.539,0.137 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.246 0.132,-0.707 l 0,-16.066 c 0,-1.106 -0.617,-1.684 -1.609,-1.684 l -23.379,0 z" + id="path805" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g807"><g + id="g809" /><g + mask="url(#mask815)" + id="g823"><g + id="g825" /><g + id="g892"><g + clip-path="url(#clipPath827)" + id="g894"><g + id="g896"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path898" + style="fill:url(#pattern855);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g900"><path + d="m 58.922,77.227 c 4.109,0 17.031,0 17.031,0" + id="path902" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g904"><path + d="m 58.711,77.844 c 4.109,0 17.598,0 17.598,0" + id="path906" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g908"><g + id="g910" /><g + mask="url(#mask916)" + id="g924"><g + id="g926" /><g + id="g993"><g + clip-path="url(#clipPath928)" + id="g995"><g + id="g997"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path999" + style="fill:url(#pattern956);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g1001"><g + id="g1003" /><g + mask="url(#mask1009)" + id="g1017"><g + id="g1019" /><g + id="g1086"><g + clip-path="url(#clipPath1021)" + id="g1088"><g + id="g1090"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1092" + style="fill:url(#pattern1049);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g1094"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1096"><path + d="m 10.609,83.77 c 0,0 0.743,3.023 -2.363,3.054 -1.488,0.012 -1.184,2.473 -1.184,2.473 l 18.899,-0.02 c 0,0 0.258,-2.386 -1.238,-2.414 -3.059,-0.058 -2.336,-3.129 -2.336,-3.129 L 10.609,83.77 z" + id="path1104" + style="fill:url(#linearGradient1098);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g1106"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1108"><path + d="m 4.797,64.133 23.359,0 c 1.242,0 2.145,0.875 2.145,2.219 l 0.008,16.054 c 0,1.039 -0.325,1.36 -1.247,1.36 L 3.965,83.754 C 3.242,83.734 2.727,83.449 2.719,82.516 L 2.727,66.238 c 0,-1.086 0.945,-2.105 2.07,-2.105 z" + id="path1116" + style="fill:url(#linearGradient1110);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g1118"><path + d="m 5.172,24.844 22.672,0 0,-14.09 -22.672,0 0,14.09 z" + id="path1126" + style="fill:url(#radialGradient1120);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1128"><path + d="m 5.172,66.598 22.672,0 0,14.09 -22.672,0 0,-14.09 z" + id="path1130" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1132"><path + d="m 4.785,64.66 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.297 c 0.004,0.368 0.09,0.485 0.172,0.555 0.082,0.066 0.258,0.121 0.539,0.133 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.242 0.132,-0.707 l 0,-16.062 c 0,-1.11 -0.617,-1.688 -1.609,-1.688 l -23.379,0 z" + id="path1134" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g1136"><g + id="g1138" /><g + mask="url(#mask1144)" + id="g1152"><g + id="g1154" /><g + id="g1221"><g + clip-path="url(#clipPath1156)" + id="g1223"><g + id="g1225"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1227" + style="fill:url(#pattern1184);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1229"><path + d="m 7.922,87.426 c 4.109,0 17.031,0 17.031,0" + id="path1231" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1233"><path + d="m 7.711,88.043 c 4.109,0 17.598,0 17.598,0" + id="path1235" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g1237"><g + id="g1239" /><g + mask="url(#mask1245)" + id="g1253"><g + id="g1255" /><g + id="g1322"><g + clip-path="url(#clipPath1257)" + id="g1324"><g + id="g1326"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1328" + style="fill:url(#pattern1285);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1330"><path + d="m 62.199,17.5 -14.301,-6.699 1.704,6 -1.903,4.699 14.5,-4 z" + id="path1332" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1334"><path + d="m 56.102,52.199 -4.903,-17.898 -3.801,5.597 -6,1.602 14.704,10.699 z" + id="path1336" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1338"><path + d="M 16.801,63 12.602,46.301 17.801,49.699 24.398,47.398 16.801,63 z" + id="path1340" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><path + d="m 5.9755084,83.487599 0,-17.839038 C 22.718232,66.990115 28.98411,75.666186 42.596557,76.572642 l 0,6.946035 -36.6210486,-0.03108 z" + id="path4073" + style="opacity:0.65;fill:url(#linearGradient4478);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 5.5444789,24.526574 0,-10.474685 c 9.9770891,0.787731 13.7109621,5.882126 21.8227001,6.414376 l 0,4.078557 -21.8227001,-0.01825 z" + id="path4073-3" + style="opacity:0.65;fill:url(#linearGradient4475);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 56.57296,34.663776 0,-10.474685 c 9.97709,0.787731 13.710963,5.882126 21.822701,6.414376 l 0,4.078557 -21.822701,-0.01825 z" + id="path4484" + style="opacity:0.65;fill:url(#linearGradient4472);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 65.888226,80.863387 0,-10.474685 c 9.97709,0.787731 13.710963,5.882126 21.822701,6.414376 l 0,4.078557 -21.822701,-0.01825 z" + id="path4488" + style="opacity:0.65;fill:url(#linearGradient4469);fill-opacity:1;fill-rule:evenodd;stroke:none" /><g + transform="matrix(0.17337752,0,0,-0.17337752,63.186972,86.825638)" + id="g5712"><path + d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z" + id="path44010" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-9)" /><path + d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z" + id="path44012" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-2)" /><path + d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z" + id="path44014" + style="fill:url(#linearGradient5673-0);fill-opacity:1;stroke:none" /><path + d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z" + id="path44016" + style="fill:url(#radialGradient5670-6);fill-opacity:1;stroke:none" /><path + d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675" + id="path44018" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5667-0);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path + d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675" + id="path44020" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5664-4);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path + d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" + id="path44022" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5661-5);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path + d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z" + id="path44024" + style="fill:url(#linearGradient5658-1);fill-opacity:1;stroke:none" /><path + d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" + id="path44028" + style="fill:url(#radialGradient5655-7);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z" + id="path44621" + style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5652-7);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path + d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z" + id="path2368" + style="fill:url(#linearGradient5645-3);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z" + id="path44030" + style="fill:url(#radialGradient5640-1);fill-opacity:1;stroke:url(#linearGradient5642-0);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /><path + d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z" + id="path1526" + style="fill:url(#linearGradient5637-0);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z" + id="path2296" + style="fill:url(#linearGradient5634-9);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2308" + style="fill:url(#linearGradient5631-1);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2390" + style="fill:url(#linearGradient5628-3);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2334" + style="fill:url(#radialGradient5625-6);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z" + id="path2378" + style="fill:url(#linearGradient5622-2);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z" + id="path2346" + style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z" + id="path2312" + style="fill:url(#linearGradient5618-0);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z" + id="path3870" + style="fill:url(#linearGradient5615-9);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z" + id="path3920" + style="fill:url(#linearGradient5612-8);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z" + id="use3848" + style="fill:url(#linearGradient5609-6);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z" + id="path3946" + style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z" + id="path3937" + style="fill:#f6ca12;fill-opacity:1;stroke:none" /><path + d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z" + id="path3942" + style="fill:#f6f1d7;fill-opacity:1;stroke:none" /><g + transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)" + id="g3842"><path + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" + id="path3337" + style="fill:url(#linearGradient5207-5);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + id="path3360" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-2)" /><path + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" + id="path3375" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" /></g></g><g + id="g5744" + transform="matrix(0.2879027,0,0,-0.2879027,69.235006,82.608114)"><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)" + id="path3281" + d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)" + id="path3283" + d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7597);fill-opacity:1;stroke:none" + id="path2214" + d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7599);fill-opacity:1;stroke:none" + id="path3193" + d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7601);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path3217" + d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7603);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path3227" + d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3249" + d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path3245" + d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path + inkscape:connector-curvature="0" + style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3247" + d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7605);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3251" + d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7607);fill-opacity:1;stroke:url(#linearGradient7609);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path2309" + d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g + id="g3842-8" + transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7611);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3337-3" + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" + id="path3360-1" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path + inkscape:connector-curvature="0" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3375-8" + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g + id="g7615" + transform="matrix(0.17221294,0,0,-0.17221294,94.665383,34.185536)"><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)" + id="path7617" + d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)" + id="path7619" + d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7647);fill-opacity:1;stroke:none" + id="path7621" + d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7649);fill-opacity:1;stroke:none" + id="path7623" + d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7651);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7625" + d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7653);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7627" + d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7629" + d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7631" + d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path + inkscape:connector-curvature="0" + style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7633" + d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7655);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7635" + d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7657);fill-opacity:1;stroke:url(#linearGradient7659);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7637" + d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g + id="g7639" + transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7661);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7641" + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" + id="path7643" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path + inkscape:connector-curvature="0" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7645" + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g + id="g7665" + transform="matrix(0.17221294,0,0,-0.17221294,43.705396,23.911345)"><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)" + id="path7667" + d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)" + id="path7669" + d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7697);fill-opacity:1;stroke:none" + id="path7671" + d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7699);fill-opacity:1;stroke:none" + id="path7673" + d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7701);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7675" + d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7703);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7677" + d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7679" + d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7681" + d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path + inkscape:connector-curvature="0" + style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7683" + d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7705);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7685" + d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7707);fill-opacity:1;stroke:url(#linearGradient7709);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7687" + d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g + id="g7689" + transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7711);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7691" + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" + id="path7693" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path + inkscape:connector-curvature="0" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7695" + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g></g></svg>
\ No newline at end of file diff --git a/icons/student2tutor.svg b/icons/student2tutor.svg new file mode 100644 index 0000000..7338347 --- /dev/null +++ b/icons/student2tutor.svg @@ -0,0 +1,2774 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + width="114.38715" + height="114.30188" + id="svg2" + xml:space="preserve" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="student2tutor.svg"><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1148" + id="namedview951" + showgrid="false" + inkscape:zoom="5.839876" + inkscape:cx="57.193577" + inkscape:cy="57.15094" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" /><metadata + id="metadata8"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs6"><clipPath + id="clipPath18"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path20" /></clipPath><mask + id="mask22"><g + id="g24"><g + clip-path="url(#clipPath18)" + id="g26"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path28" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath34"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path36" /></clipPath><clipPath + id="clipPath38"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path40" /></clipPath><clipPath + id="clipPath42"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path44" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient46" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)" + spreadMethod="pad"><stop + id="stop48" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop50" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath52"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path54" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient56" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)" + spreadMethod="pad"><stop + id="stop58" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop60" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern62"><defs + id="defs64"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask0"><g + id="g67"><g + clip-path="url(#clipPath42)" + id="g69"><g + id="g71"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient46);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path73" /></g></g></g></mask></defs><g + id="g75" /><g + id="g77"><g + clip-path="url(#clipPath38)" + id="g79"><g + id="g81"><g + id="g83"><g + id="g85" /><g + mask="url(#_mask0)" + id="g87"><g + id="g89" /><g + id="g91"><g + clip-path="url(#clipPath52)" + id="g93"><g + id="g95"><path + d="m 48.215,48.504 c 0,-2.844 -10.426,-5.145 -23.289,-5.145 -12.86,0 -23.285,2.301 -23.285,5.145 0,2.84 10.425,5.144 23.285,5.144 12.863,0 23.289,-2.304 23.289,-5.144 z" + style="fill:url(#radialGradient56);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path97" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient111" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)" + spreadMethod="pad"><stop + id="stop113" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop115" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient123" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)" + spreadMethod="pad"><stop + id="stop125" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop127" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient133" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.247759,0,0,-0.787943,-5.653165,89.260693)" + spreadMethod="pad"><stop + id="stop135" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop137" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath153"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path155" /></clipPath><mask + id="mask157"><g + id="g159"><g + clip-path="url(#clipPath153)" + id="g161"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path163" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath169"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path171" /></clipPath><clipPath + id="clipPath173"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path175" /></clipPath><clipPath + id="clipPath177"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path179" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient181" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop183" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop185" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath187"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path189" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient191" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop193" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop195" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern197"><defs + id="defs199"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask1"><g + id="g202"><g + clip-path="url(#clipPath177)" + id="g204"><g + id="g206"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient181);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path208" /></g></g></g></mask></defs><g + id="g210" /><g + id="g212"><g + clip-path="url(#clipPath173)" + id="g214"><g + id="g216"><g + id="g218"><g + id="g220" /><g + mask="url(#_mask1)" + id="g222"><g + id="g224" /><g + id="g226"><g + clip-path="url(#clipPath187)" + id="g228"><g + id="g230"><path + d="m 14.164,55.52 c 0.086,-2.2 -0.285,-2.95 -1.652,-3.723 l 23.902,-1.313 c -0.961,1.184 -2.355,2.969 -1.976,5.051 L 14.164,55.52 z" + style="fill:url(#linearGradient191);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path232" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath254"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path256" /></clipPath><mask + id="mask258"><g + id="g260"><g + clip-path="url(#clipPath254)" + id="g262"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path264" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath270"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path272" /></clipPath><clipPath + id="clipPath274"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path276" /></clipPath><clipPath + id="clipPath278"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path280" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient282" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop284" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop286" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath288"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path290" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient292" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop294" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop296" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern298"><defs + id="defs300"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask2"><g + id="g303"><g + clip-path="url(#clipPath278)" + id="g305"><g + id="g307"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient282);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path309" /></g></g></g></mask></defs><g + id="g311" /><g + id="g313"><g + clip-path="url(#clipPath274)" + id="g315"><g + id="g317"><g + id="g319"><g + id="g321" /><g + mask="url(#_mask2)" + id="g323"><g + id="g325" /><g + id="g327"><g + clip-path="url(#clipPath288)" + id="g329"><g + id="g331"><path + d="m 6.098,83.871 0,-18.23 c 16.644,1.371 22.875,10.238 36.41,11.164 l 0,7.097 -36.41,-0.031 z" + style="fill:url(#linearGradient292);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path333" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath347"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path349" /></clipPath><mask + id="mask351"><g + id="g353"><g + clip-path="url(#clipPath347)" + id="g355"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path357" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath363"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path365" /></clipPath><clipPath + id="clipPath367"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path369" /></clipPath><clipPath + id="clipPath371"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path373" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient375" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)" + spreadMethod="pad"><stop + id="stop377" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop379" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath381"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path383" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient385" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)" + spreadMethod="pad"><stop + id="stop387" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop389" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern391"><defs + id="defs393"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask3"><g + id="g396"><g + clip-path="url(#clipPath371)" + id="g398"><g + id="g400"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient375);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path402" /></g></g></g></mask></defs><g + id="g404" /><g + id="g406"><g + clip-path="url(#clipPath367)" + id="g408"><g + id="g410"><g + id="g412"><g + id="g414" /><g + mask="url(#_mask3)" + id="g416"><g + id="g418" /><g + id="g420"><g + clip-path="url(#clipPath381)" + id="g422"><g + id="g424"><path + d="m 91.281,60.074 c 0,-1.722 -6.308,-3.117 -14.093,-3.117 -7.786,0 -14.094,1.395 -14.094,3.117 0,1.719 6.308,3.114 14.094,3.114 7.785,0 14.093,-1.395 14.093,-3.114 z" + style="fill:url(#radialGradient385);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path426" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient440" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)" + spreadMethod="pad"><stop + id="stop442" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop444" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient452" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)" + spreadMethod="pad"><stop + id="stop454" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop456" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient462" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,58.678279,84.521513)" + spreadMethod="pad"><stop + id="stop464" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop466" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath482"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path484" /></clipPath><mask + id="mask486"><g + id="g488"><g + clip-path="url(#clipPath482)" + id="g490"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path492" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath498"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path500" /></clipPath><clipPath + id="clipPath502"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path504" /></clipPath><clipPath + id="clipPath506"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path508" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient510" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop512" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop514" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath516"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path518" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient520" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop522" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop524" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern526"><defs + id="defs528"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask4"><g + id="g531"><g + clip-path="url(#clipPath506)" + id="g533"><g + id="g535"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient510);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path537" /></g></g></g></mask></defs><g + id="g539" /><g + id="g541"><g + clip-path="url(#clipPath502)" + id="g543"><g + id="g545"><g + id="g547"><g + id="g549" /><g + mask="url(#_mask4)" + id="g551"><g + id="g553" /><g + id="g555"><g + clip-path="url(#clipPath516)" + id="g557"><g + id="g559"><path + d="m 70.672,64.32 c 0.051,-1.332 -0.172,-1.785 -1,-2.254 l 14.469,-0.793 c -0.582,0.715 -1.426,1.797 -1.196,3.055 L 70.672,64.32 z" + style="fill:url(#linearGradient520);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path561" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath583"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path585" /></clipPath><mask + id="mask587"><g + id="g589"><g + clip-path="url(#clipPath583)" + id="g591"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path593" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath599"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path601" /></clipPath><clipPath + id="clipPath603"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path605" /></clipPath><clipPath + id="clipPath607"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path609" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient611" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop613" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop615" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath617"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path619" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient621" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop623" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop625" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern627"><defs + id="defs629"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask5"><g + id="g632"><g + clip-path="url(#clipPath607)" + id="g634"><g + id="g636"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient611);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path638" /></g></g></g></mask></defs><g + id="g640" /><g + id="g642"><g + clip-path="url(#clipPath603)" + id="g644"><g + id="g646"><g + id="g648"><g + id="g650" /><g + mask="url(#_mask5)" + id="g652"><g + id="g654" /><g + id="g656"><g + clip-path="url(#clipPath617)" + id="g658"><g + id="g660"><path + d="m 65.789,81.48 0,-11.035 c 10.078,0.832 13.848,6.196 22.039,6.758 l 0,4.297 -22.039,-0.02 z" + style="fill:url(#linearGradient621);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path662" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath676"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path678" /></clipPath><mask + id="mask680"><g + id="g682"><g + clip-path="url(#clipPath676)" + id="g684"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path686" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath692"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path694" /></clipPath><clipPath + id="clipPath696"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path698" /></clipPath><clipPath + id="clipPath700"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path702" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient704" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)" + spreadMethod="pad"><stop + id="stop706" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop708" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath710"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path712" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient714" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)" + spreadMethod="pad"><stop + id="stop716" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop718" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern720"><defs + id="defs722"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask6"><g + id="g725"><g + clip-path="url(#clipPath700)" + id="g727"><g + id="g729"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient704);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path731" /></g></g></g></mask></defs><g + id="g733" /><g + id="g735"><g + clip-path="url(#clipPath696)" + id="g737"><g + id="g739"><g + id="g741"><g + id="g743" /><g + mask="url(#_mask6)" + id="g745"><g + id="g747" /><g + id="g749"><g + clip-path="url(#clipPath710)" + id="g751"><g + id="g753"><path + d="m 81.984,13.871 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.723 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.39 14.097,-3.113 z" + style="fill:url(#radialGradient714);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path755" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient769" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)" + spreadMethod="pad"><stop + id="stop771" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop773" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient781" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)" + spreadMethod="pad"><stop + id="stop783" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop785" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient791" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,49.378279,38.321513)" + spreadMethod="pad"><stop + id="stop793" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop795" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath811"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path813" /></clipPath><mask + id="mask815"><g + id="g817"><g + clip-path="url(#clipPath811)" + id="g819"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path821" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath827"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path829" /></clipPath><clipPath + id="clipPath831"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path833" /></clipPath><clipPath + id="clipPath835"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path837" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient839" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop841" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop843" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath845"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path847" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient849" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop851" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop853" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern855"><defs + id="defs857"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask7"><g + id="g860"><g + clip-path="url(#clipPath835)" + id="g862"><g + id="g864"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient839);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path866" /></g></g></g></mask></defs><g + id="g868" /><g + id="g870"><g + clip-path="url(#clipPath831)" + id="g872"><g + id="g874"><g + id="g876"><g + id="g878" /><g + mask="url(#_mask7)" + id="g880"><g + id="g882" /><g + id="g884"><g + clip-path="url(#clipPath845)" + id="g886"><g + id="g888"><path + d="m 61.371,18.117 c 0.055,-1.328 -0.172,-1.781 -1,-2.25 L 74.84,15.07 c -0.578,0.719 -1.426,1.801 -1.195,3.059 L 61.371,18.117 z" + style="fill:url(#linearGradient849);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path890" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath912"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path914" /></clipPath><mask + id="mask916"><g + id="g918"><g + clip-path="url(#clipPath912)" + id="g920"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path922" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath928"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path930" /></clipPath><clipPath + id="clipPath932"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path934" /></clipPath><clipPath + id="clipPath936"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path938" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient940" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop942" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop944" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath946"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path948" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient950" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop952" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop954" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern956"><defs + id="defs958"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask8"><g + id="g961"><g + clip-path="url(#clipPath936)" + id="g963"><g + id="g965"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient940);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path967" /></g></g></g></mask></defs><g + id="g969" /><g + id="g971"><g + clip-path="url(#clipPath932)" + id="g973"><g + id="g975"><g + id="g977"><g + id="g979" /><g + mask="url(#_mask8)" + id="g981"><g + id="g983" /><g + id="g985"><g + clip-path="url(#clipPath946)" + id="g987"><g + id="g989"><path + d="m 56.492,35.277 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.758 l 0,4.293 -22.035,-0.02 z" + style="fill:url(#linearGradient950);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path991" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath1005"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1007" /></clipPath><mask + id="mask1009"><g + id="g1011"><g + clip-path="url(#clipPath1005)" + id="g1013"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1015" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1021"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1023" /></clipPath><clipPath + id="clipPath1025"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1027" /></clipPath><clipPath + id="clipPath1029"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1031" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient1033" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)" + spreadMethod="pad"><stop + id="stop1035" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1037" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath1039"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1041" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient1043" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)" + spreadMethod="pad"><stop + id="stop1045" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop1047" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1049"><defs + id="defs1051"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask9"><g + id="g1054"><g + clip-path="url(#clipPath1029)" + id="g1056"><g + id="g1058"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient1033);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1060" /></g></g></g></mask></defs><g + id="g1062" /><g + id="g1064"><g + clip-path="url(#clipPath1025)" + id="g1066"><g + id="g1068"><g + id="g1070"><g + id="g1072" /><g + mask="url(#_mask9)" + id="g1074"><g + id="g1076" /><g + id="g1078"><g + clip-path="url(#clipPath1039)" + id="g1080"><g + id="g1082"><path + d="m 30.984,3.672 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.719 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.394 14.097,-3.113 z" + style="fill:url(#radialGradient1043);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1084" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient1098" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)" + spreadMethod="pad"><stop + id="stop1100" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop1102" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient1110" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)" + spreadMethod="pad"><stop + id="stop1112" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop1114" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient1120" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,-1.621721,28.121513)" + spreadMethod="pad"><stop + id="stop1122" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop1124" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath1140"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1142" /></clipPath><mask + id="mask1144"><g + id="g1146"><g + clip-path="url(#clipPath1140)" + id="g1148"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1150" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1156"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1158" /></clipPath><clipPath + id="clipPath1160"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1162" /></clipPath><clipPath + id="clipPath1164"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1166" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient1168" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1170" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1172" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath1174"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1176" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient1178" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1180" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop1182" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1184"><defs + id="defs1186"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask10"><g + id="g1189"><g + clip-path="url(#clipPath1164)" + id="g1191"><g + id="g1193"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient1168);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1195" /></g></g></g></mask></defs><g + id="g1197" /><g + id="g1199"><g + clip-path="url(#clipPath1160)" + id="g1201"><g + id="g1203"><g + id="g1205"><g + id="g1207" /><g + mask="url(#_mask10)" + id="g1209"><g + id="g1211" /><g + id="g1213"><g + clip-path="url(#clipPath1174)" + id="g1215"><g + id="g1217"><path + d="m 10.371,7.918 c 0.055,-1.332 -0.172,-1.781 -1,-2.25 L 23.84,4.871 C 23.262,5.59 22.414,6.668 22.645,7.93 L 10.371,7.918 z" + style="fill:url(#linearGradient1178);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1219" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath1241"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1243" /></clipPath><mask + id="mask1245"><g + id="g1247"><g + clip-path="url(#clipPath1241)" + id="g1249"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1251" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1257"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1259" /></clipPath><clipPath + id="clipPath1261"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1263" /></clipPath><clipPath + id="clipPath1265"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1267" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient1269" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1271" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1273" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath1275"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1277" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient1279" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1281" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1283" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1285"><defs + id="defs1287"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask11"><g + id="g1290"><g + clip-path="url(#clipPath1265)" + id="g1292"><g + id="g1294"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient1269);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1296" /></g></g></g></mask></defs><g + id="g1298" /><g + id="g1300"><g + clip-path="url(#clipPath1261)" + id="g1302"><g + id="g1304"><g + id="g1306"><g + id="g1308" /><g + mask="url(#_mask11)" + id="g1310"><g + id="g1312" /><g + id="g1314"><g + clip-path="url(#clipPath1275)" + id="g1316"><g + id="g1318"><path + d="m 5.492,25.078 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.754 l 0,4.297 -22.035,-0.02 z" + style="fill:url(#linearGradient1279);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1320" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient6246" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient6240"><stop + id="stop6242" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop6244" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient3063" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient6246-6" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient6240-0"><stop + id="stop6242-8" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop6244-7" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient3063-5" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4486" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4490" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4469" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.77988257,0,0,-0.74769392,54.17802,39.386029)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4472" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4475" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4478" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><filter + color-interpolation-filters="sRGB" + id="filter3297"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295" /></filter><linearGradient + id="linearGradient44699"><stop + id="stop44701" + style="stop-color:#000173;stop-opacity:0.93333334" + offset="0" /><stop + id="stop44703" + style="stop-color:#3575f0;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44080"><stop + id="stop44082" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop44084" + style="stop-color:#57aeff;stop-opacity:1" + offset="0.25" /><stop + id="stop44086" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop44088" + style="stop-color:#5aafff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44090"><stop + id="stop44092" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop44094" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5790"><stop + id="stop5792" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop5794" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44615"><stop + id="stop44617" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop44619" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44693"><stop + id="stop44695" + style="stop-color:#3690e6;stop-opacity:1" + offset="0" /><stop + id="stop44697" + style="stop-color:#d0e9ff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44605"><stop + id="stop44607" + style="stop-color:#d0ecff;stop-opacity:1" + offset="0" /><stop + id="stop44609" + style="stop-color:#d7f0ff;stop-opacity:1" + offset="0.5" /><stop + id="stop44611" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5810"><stop + id="stop5812" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop5814" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2300-4"><stop + id="stop2302-6" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2304-2" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44627"><stop + id="stop44629" + style="stop-color:#fffcfb;stop-opacity:1" + offset="0" /><stop + id="stop44633" + style="stop-color:#f4ad94;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44681"><stop + id="stop44683" + style="stop-color:#ff5c38;stop-opacity:1" + offset="0" /><stop + id="stop44685" + style="stop-color:#fb7e65;stop-opacity:0.99607843" + offset="0.30397323" /><stop + id="stop44687" + style="stop-color:#cd0000;stop-opacity:0.98039216" + offset="1" /></linearGradient><linearGradient + id="linearGradient2288-5"><stop + id="stop2290-0" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2292-6" + style="stop-color:#898989;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5834"><stop + id="stop5836" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop5838" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2318-2"><stop + id="stop2320-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2326-4" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /><stop + id="stop2322-7" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2392-2"><stop + id="stop2394-4" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /><stop + id="stop2398-0" + style="stop-color:#000000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient2338-6"><stop + id="stop2340-2" + style="stop-color:#545454;stop-opacity:1" + offset="0" /><stop + id="stop2344-9" + style="stop-color:#545454;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient2380-9"><stop + id="stop2382-0" + style="stop-color:#838383;stop-opacity:1" + offset="0" /><stop + id="stop2384-8" + style="stop-color:#767676;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3836-1"><stop + id="stop3838-3" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /><stop + id="stop3844-1" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /><stop + id="stop3846-1" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /><stop + id="stop3840-0" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3895-3"><stop + id="stop3897-4" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /><stop + id="stop3899-0" + style="stop-color:#930000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3924-3"><stop + id="stop3926-9" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /><stop + id="stop3928-1" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3854-9"><stop + id="stop3856-6" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /><stop + id="stop3860-9" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /><stop + id="stop3862-3" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5207" + xlink:href="#linearGradient3339-4" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4"><stop + id="stop3341-7" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1"><feGaussianBlur + id="feGaussianBlur3387-7" + stdDeviation="0.14607691" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3297-9"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299-7" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293-2"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295-7" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient5673-0" + xlink:href="#linearGradient44699-4" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(38.627584,1.0111154)" /><linearGradient + id="linearGradient44699-4"><stop + id="stop44701-3" + style="stop-color:#000173;stop-opacity:0.93333334" + offset="0" /><stop + id="stop44703-4" + style="stop-color:#3575f0;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient5670-6" + xlink:href="#linearGradient44080-3" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" /><linearGradient + id="linearGradient44080-3"><stop + id="stop44082-5" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop44084-5" + style="stop-color:#57aeff;stop-opacity:1" + offset="0.25" /><stop + id="stop44086-1" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop44088-4" + style="stop-color:#5aafff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5667-0" + xlink:href="#linearGradient44090-0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-408.92103,-635.92247)" /><linearGradient + id="linearGradient44090-0"><stop + id="stop44092-7" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop44094-9" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5664-4" + xlink:href="#linearGradient44090-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" /><linearGradient + id="linearGradient6984"><stop + id="stop6986" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop6988" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5661-5" + xlink:href="#linearGradient44615-6" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(321.10111,-881.68159)" /><linearGradient + id="linearGradient44615-6"><stop + id="stop44617-5" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop44619-1" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-35.566662" + y1="76.562927" + x2="-35.566662" + y2="84.910484" + id="linearGradient5658-1" + xlink:href="#linearGradient44693-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" /><linearGradient + id="linearGradient44693-1"><stop + id="stop44695-8" + style="stop-color:#3690e6;stop-opacity:1" + offset="0" /><stop + id="stop44697-1" + style="stop-color:#d0e9ff;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient5655-7" + xlink:href="#linearGradient44605-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" /><linearGradient + id="linearGradient44605-2"><stop + id="stop44607-0" + style="stop-color:#d0ecff;stop-opacity:1" + offset="0" /><stop + id="stop44609-9" + style="stop-color:#d7f0ff;stop-opacity:1" + offset="0.5" /><stop + id="stop44611-1" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5652-7" + xlink:href="#linearGradient44615-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" /><linearGradient + id="linearGradient7004"><stop + id="stop7006" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop7008" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="170.29684" + y1="219.20184" + x2="75.611801" + y2="140.29272" + id="linearGradient5645-3" + xlink:href="#linearGradient2300-4-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" /><linearGradient + id="linearGradient2300-4-8"><stop + id="stop2302-6-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2304-2-7" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient5640-1" + xlink:href="#linearGradient44627-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" /><linearGradient + id="linearGradient44627-2"><stop + id="stop44629-5" + style="stop-color:#fffcfb;stop-opacity:1" + offset="0" /><stop + id="stop44633-6" + style="stop-color:#f4ad94;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="60.126968" + y1="81.913818" + x2="60.126968" + y2="47.542713" + id="linearGradient5642-0" + xlink:href="#linearGradient44681-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" /><linearGradient + id="linearGradient44681-0"><stop + id="stop44683-0" + style="stop-color:#ff5c38;stop-opacity:1" + offset="0" /><stop + id="stop44685-6" + style="stop-color:#fb7e65;stop-opacity:0.99607843" + offset="0.30397323" /><stop + id="stop44687-1" + style="stop-color:#cd0000;stop-opacity:0.98039216" + offset="1" /></linearGradient><linearGradient + x1="81.846077" + y1="136.15834" + x2="168.78268" + y2="53.432808" + id="linearGradient5637-0" + xlink:href="#linearGradient2288-5-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient + id="linearGradient2288-5-4"><stop + id="stop2290-0-2" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2292-6-5" + style="stop-color:#898989;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="366.57416" + y1="39.730881" + x2="168.78265" + y2="53.4328" + id="linearGradient5634-9" + xlink:href="#linearGradient2300-4-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient + id="linearGradient7028"><stop + id="stop7030" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop7032" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="263.96207" + y1="41.317993" + x2="24.068567" + y2="220.45784" + id="linearGradient5631-1" + xlink:href="#linearGradient2318-2-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient + id="linearGradient2318-2-2"><stop + id="stop2320-8-2" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2326-4-2" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /><stop + id="stop2322-7-5" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="136.33336" + y1="113.51798" + x2="173.3575" + y2="164.5226" + id="linearGradient5628-3" + xlink:href="#linearGradient2392-2-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient + id="linearGradient2392-2-4"><stop + id="stop2394-4-5" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /><stop + id="stop2398-0-5" + style="stop-color:#000000;stop-opacity:0" + offset="1" /></linearGradient><radialGradient + cx="180.07829" + cy="176.38765" + r="53.050598" + fx="180.07837" + fy="177.18346" + id="radialGradient5625-6" + xlink:href="#linearGradient2338-6-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient + id="linearGradient2338-6-6"><stop + id="stop2340-2-6" + style="stop-color:#545454;stop-opacity:1" + offset="0" /><stop + id="stop2344-9-3" + style="stop-color:#545454;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="219.53198" + y1="120.31494" + x2="211.80861" + y2="127.47651" + id="linearGradient5622-2" + xlink:href="#linearGradient2380-9-7" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient + id="linearGradient2380-9-7"><stop + id="stop2382-0-1" + style="stop-color:#838383;stop-opacity:1" + offset="0" /><stop + id="stop2384-8-9" + style="stop-color:#767676;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="144.45633" + y1="98.692307" + x2="155.86334" + y2="161.02338" + id="linearGradient5618-0" + xlink:href="#linearGradient3836-1-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient + id="linearGradient3836-1-6"><stop + id="stop3838-3-7" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /><stop + id="stop3844-1-7" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /><stop + id="stop3846-1-8" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /><stop + id="stop3840-0-7" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5615-9" + xlink:href="#linearGradient3895-3-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" /><linearGradient + id="linearGradient3895-3-4"><stop + id="stop3897-4-0" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /><stop + id="stop3899-0-9" + style="stop-color:#930000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5612-8" + xlink:href="#linearGradient3924-3-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" /><linearGradient + id="linearGradient3924-3-5"><stop + id="stop3926-9-6" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /><stop + id="stop3928-1-9" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="137.93805" + y1="118.24712" + x2="183.56607" + y2="110.30299" + id="linearGradient5609-6" + xlink:href="#linearGradient3854-9-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient + id="linearGradient3854-9-1"><stop + id="stop3856-6-2" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /><stop + id="stop3860-9-0" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /><stop + id="stop3862-3-8" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5207-5" + xlink:href="#linearGradient3339-4-4" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4-4"><stop + id="stop3341-7-3" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6-0" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3-2" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1-2"><feGaussianBlur + id="feGaussianBlur3387-7-8" + stdDeviation="0.14607691" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3297-4"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299-77" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293-5"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295-8" /></filter><linearGradient + id="linearGradient3197"><stop + id="stop3199" + style="stop-color:#002f32;stop-opacity:1" + offset="0" /><stop + id="stop3201" + style="stop-color:#045b04;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3205"><stop + id="stop3207" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop3215" + style="stop-color:#3db800;stop-opacity:1" + offset="0.25" /><stop + id="stop3213" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3209" + style="stop-color:#69cf35;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3219"><stop + id="stop3221" + style="stop-color:#0e7309;stop-opacity:1" + offset="0" /><stop + id="stop3223" + style="stop-color:#70d13e;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient7410"><stop + id="stop7412" + style="stop-color:#0e7309;stop-opacity:1" + offset="0" /><stop + id="stop7414" + style="stop-color:#70d13e;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3261"><stop + id="stop3263" + style="stop-color:#ffffff;stop-opacity:0" + offset="0" /><stop + id="stop3269" + style="stop-color:#ffffff;stop-opacity:0" + offset="0.5" /><stop + id="stop3265" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3327"><stop + id="stop3329" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop3335" + style="stop-color:#fdd99a;stop-opacity:1" + offset="0.5" /><stop + id="stop3331" + style="stop-color:#c39539;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3319"><stop + id="stop3321" + style="stop-color:#7d491f;stop-opacity:1" + offset="0" /><stop + id="stop44679" + style="stop-color:#87570f;stop-opacity:1" + offset="0.5" /><stop + id="stop3323" + style="stop-color:#926600;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3339-4-5"><stop + id="stop3341-7-9" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6-7" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3-5" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1-3"><feGaussianBlur + id="feGaussianBlur3387-7-8-5" + stdDeviation="0.14607691" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7597" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7599" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7601" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7603" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7605" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7607" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7609" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7611" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7647" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7649" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7651" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7653" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7655" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7657" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7659" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7661" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7697" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7699" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7701" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7703" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7705" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7707" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7709" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7711" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6240-0" + id="linearGradient3977" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.97485321,0,0,0.9346174,67.722525,65.069344)" + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient6240" + id="linearGradient3980" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2726732,0,0,1.2382824,-0.19659917,-0.00272625)" + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3197" + id="linearGradient4112" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" /><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3205" + id="radialGradient4114" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" + cx="491.52231" + cy="670.92523" + fx="491.52231" + fy="670.92523" + r="36.426601" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3219" + id="linearGradient4116" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3219" + id="linearGradient4118" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" /><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3261" + id="radialGradient4120" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" + cx="479.68311" + cy="709.6579" + fx="479.68311" + fy="709.6579" + r="5.0058851" /><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3327" + id="radialGradient4122" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" + cx="53.60223" + cy="59.728882" + fx="53.60223" + fy="59.728882" + r="17.834057" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3319" + id="linearGradient4124" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3339-4-5" + id="linearGradient4126" + gradientUnits="userSpaceOnUse" + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" /></defs><g + id="g14" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g16" /><g + id="g30" + mask="url(#mask22)"><g + id="g32" /><g + id="g99"><g + id="g101" + clip-path="url(#clipPath34)"><g + id="g103"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern62);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path105" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g107" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g109" + transform="matrix(1,0,0,-1,0,91.441505)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient111);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path117" + d="m 14.551,35.969 c 0,0 1.234,4.996 -3.903,5.043 -2.46,0.023 -1.957,4.086 -1.957,4.086 l 31.227,-0.036 c 0,0 0.422,-3.941 -2.047,-3.988 -5.051,-0.094 -3.859,-5.168 -3.859,-5.168 l -19.461,0.063 z" /></g></g><g + id="g119" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g121" + transform="matrix(1,0,0,-1,0,91.441505)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient123);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path129" + d="m 4.949,3.52 38.598,0 c 2.047,0 3.543,1.445 3.543,3.671 l 0.012,26.528 c 0,1.711 -0.536,2.242 -2.063,2.242 L 3.574,35.941 C 2.383,35.91 1.531,35.441 1.516,33.895 L 1.531,7 c 0,-1.793 1.559,-3.48 3.418,-3.48 z" /></g></g><g + id="g131" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient133);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path139" + d="m 5.574,83.848 37.453,0 0,-23.277 -37.453,0 0,23.277 z" /></g><g + id="g141" + transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path + inkscape:connector-curvature="0" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path143" + d="m 5.574,7.594 37.453,0 0,23.277 -37.453,0 0,-23.277 z" /></g><g + id="g145" + transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path + inkscape:connector-curvature="0" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path147" + d="m 4.934,4.398 c -1.325,0 -2.532,1.309 -2.532,2.594 l 0,26.918 c 0.008,0.613 0.149,0.801 0.286,0.918 0.132,0.113 0.425,0.203 0.886,0.223 l 0.031,0 41.442,0.031 c 0.66,0 0.867,-0.102 0.949,-0.191 0.082,-0.086 0.219,-0.407 0.219,-1.168 l 0,-26.543 c 0,-1.828 -1.024,-2.782 -2.656,-2.782 l -38.625,0 z" /></g><g + id="g149" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g151" /><g + id="g165" + mask="url(#mask157)"><g + id="g167" /><g + id="g234"><g + id="g236" + clip-path="url(#clipPath169)"><g + id="g238"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern197);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path240" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g242" + transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path + inkscape:connector-curvature="0" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" + id="path244" + d="m 10.113,42.004 c 6.789,0.004 28.141,0 28.141,0" /></g><g + id="g246" + transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path + inkscape:connector-curvature="0" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path248" + d="m 9.766,43.027 c 6.789,0 29.074,0 29.074,0" /></g><g + id="g250" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g252" /><g + id="g266" + mask="url(#mask258)"><g + id="g268" /><g + id="g335"><g + id="g337" + clip-path="url(#clipPath270)"><g + id="g339"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern298);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path341" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g343" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g345" /><g + id="g359" + mask="url(#mask351)"><g + id="g361" /><g + id="g428"><g + id="g430" + clip-path="url(#clipPath363)"><g + id="g432"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern391);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path434" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g436" + transform="matrix(1.6067734,0,0,-1.6067734,-32.272865,202.50474)"><g + id="g438" + transform="matrix(1,0,0,-1,0,91.441505)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient440);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path446" + d="m 70.906,27.371 c 0,0 0.746,3.024 -2.359,3.051 -1.492,0.016 -1.188,2.473 -1.188,2.473 l 18.903,-0.02 c 0,0 0.254,-2.387 -1.239,-2.414 -3.058,-0.055 -2.335,-3.129 -2.335,-3.129 l -11.782,0.039 z" /></g></g><g + id="g448" + transform="matrix(1.6067734,0,0,-1.6067734,-32.272865,202.50474)"><g + id="g450" + transform="matrix(1,0,0,-1,0,91.441505)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient452);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path458" + d="m 65.094,7.73 23.363,0 c 1.242,0 2.145,0.875 2.145,2.223 l 0.007,16.055 c 0,1.035 -0.324,1.359 -1.246,1.359 L 64.266,27.355 C 63.543,27.336 63.027,27.051 63.02,26.117 L 63.027,9.84 c 0,-1.09 0.942,-2.11 2.067,-2.11 z" /></g></g><g + id="g460" + transform="matrix(1.6067734,0,0,-1.6067734,-32.272865,202.50474)"><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient462);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path468" + d="m 65.473,81.246 22.672,0 0,-14.09 -22.672,0 0,14.09 z" /></g><g + id="g470" + transform="matrix(1.6067734,0,0,1.6067734,-32.272865,55.578966)"><path + inkscape:connector-curvature="0" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path472" + d="m 65.473,10.195 22.672,0 0,14.09 -22.672,0 0,-14.09 z" /></g><g + id="g474" + transform="matrix(1.6067734,0,0,1.6067734,-32.272865,55.578966)"><path + inkscape:connector-curvature="0" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path476" + d="m 65.086,8.262 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.484 0.172,0.555 0.082,0.07 0.257,0.125 0.535,0.136 l 0.019,0 25.086,0.016 c 0.399,0 0.524,-0.059 0.574,-0.113 0.047,-0.051 0.133,-0.246 0.133,-0.707 l 0,-16.067 c 0,-1.105 -0.621,-1.683 -1.609,-1.683 l -23.379,0 z" /></g><g + id="g478" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g480" /><g + id="g494" + mask="url(#mask486)"><g + id="g496" /><g + id="g563"><g + id="g565" + clip-path="url(#clipPath498)"><g + id="g567"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern526);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path569" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g571" + transform="matrix(1.6067734,0,0,1.6067734,-32.272865,55.578966)"><path + inkscape:connector-curvature="0" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" + id="path573" + d="m 68.223,31.023 c 4.109,0.004 17.031,0 17.031,0" /></g><g + id="g575" + transform="matrix(1.6067734,0,0,1.6067734,-32.272865,55.578966)"><path + inkscape:connector-curvature="0" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path577" + d="m 68.012,31.641 c 4.109,0.004 17.597,0 17.597,0" /></g><g + id="g579" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g581" /><g + id="g595" + mask="url(#mask587)"><g + id="g597" /><g + id="g664"><g + id="g666" + clip-path="url(#clipPath599)"><g + id="g668"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern627);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path670" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g672" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g674" /><g + id="g688" + mask="url(#mask680)"><g + id="g690" /><g + id="g757"><g + id="g759" + clip-path="url(#clipPath692)"><g + id="g761"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern720);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path763" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g807" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g809" /><g + id="g823" + mask="url(#mask815)"><g + id="g825" /><g + id="g892"><g + id="g894" + clip-path="url(#clipPath827)"><g + id="g896"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern855);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path898" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g908" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g910" /><g + id="g924" + mask="url(#mask916)"><g + id="g926" /><g + id="g993"><g + id="g995" + clip-path="url(#clipPath928)"><g + id="g997"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern956);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path999" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g1001" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g1003" /><g + id="g1017" + mask="url(#mask1009)"><g + id="g1019" /><g + id="g1086"><g + id="g1088" + clip-path="url(#clipPath1021)"><g + id="g1090"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern1049);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1092" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g1136" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g1138" /><g + id="g1152" + mask="url(#mask1144)"><g + id="g1154" /><g + id="g1221"><g + id="g1223" + clip-path="url(#clipPath1156)"><g + id="g1225"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern1184);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1227" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g1237" + transform="matrix(1.25,0,0,-1.25,0,114.30188)"><g + id="g1239" /><g + id="g1253" + mask="url(#mask1245)"><g + id="g1255" /><g + id="g1322"><g + id="g1324" + clip-path="url(#clipPath1257)"><g + id="g1326"><path + inkscape:connector-curvature="0" + style="fill:url(#pattern1285);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1328" + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" /></g></g></g></g></g><g + id="g1334" + transform="matrix(1.25,0,0,1.25,0,-1.25e-6)"><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path1336" + d="m 56.102,52.199 -4.903,-17.898 -3.801,5.597 -6,1.602 14.704,10.699 z" /></g><path + inkscape:connector-curvature="0" + style="opacity:0.65;fill:url(#linearGradient3980);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path4073" + d="m 7.4693855,9.9423812 0,22.2987978 C 28.39779,30.564236 36.230137,19.719148 53.245696,18.586078 l 0,-8.6825443 -45.7763105,0.03885 z" /><path + inkscape:connector-curvature="0" + style="opacity:0.65;fill:url(#linearGradient3977);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path4488" + d="m 73.59458,72.575604 0,16.830445 C 89.625502,88.140344 95.624991,79.954805 108.65872,79.0996 l 0,-6.553316 -35.06414,0.02933 z" /><g + id="g5712" + transform="matrix(0.27857837,0,0,0.27857837,69.254277,62.995619)"><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-9)" + id="path44010" + d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-2)" + id="path44012" + d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5673-0);fill-opacity:1;stroke:none" + id="path44014" + d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient5670-6);fill-opacity:1;stroke:none" + id="path44016" + d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5667-0);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path44018" + d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5664-4);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path44020" + d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675" /><path + inkscape:connector-curvature="0" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5661-5);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path44022" + d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5658-1);fill-opacity:1;stroke:none" + id="path44024" + d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient5655-7);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path44028" + d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path + inkscape:connector-curvature="0" + style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5652-7);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path44621" + d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5645-3);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path2368" + d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient5640-1);fill-opacity:1;stroke:url(#linearGradient5642-0);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path44030" + d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5637-0);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1526" + d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5634-9);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path2296" + d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5631-1);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path2308" + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5628-3);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path2390" + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient5625-6);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path2334" + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5622-2);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path2378" + d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z" /><path + inkscape:connector-curvature="0" + style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path2346" + d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5618-0);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path2312" + d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5615-9);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3870" + d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5612-8);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3920" + d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5609-6);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="use3848" + d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z" /><path + inkscape:connector-curvature="0" + style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3946" + d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z" /><path + inkscape:connector-curvature="0" + style="fill:#f6ca12;fill-opacity:1;stroke:none" + id="path3937" + d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z" /><path + inkscape:connector-curvature="0" + style="fill:#f6f1d7;fill-opacity:1;stroke:none" + id="path3942" + d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z" /><g + id="g3842" + transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient5207-5);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3337" + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-2)" + id="path3360" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path + inkscape:connector-curvature="0" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3375" + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g + transform="matrix(0.35987837,0,0,0.35987837,86.543758,11.041734)" + id="g5744"><path + d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" + id="path3281" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)" + inkscape:connector-curvature="0" /><path + d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" + id="path3283" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)" + inkscape:connector-curvature="0" /><path + d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" + id="path2214" + style="fill:url(#linearGradient4112);fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" + id="path3193" + style="fill:url(#radialGradient4114);fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" + id="path3217" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient4116);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" + id="path3227" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient4118);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" + id="path3249" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /><path + d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" + id="path3245" + style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + inkscape:connector-curvature="0" /><path + d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" + id="path3247" + style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /><path + d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" + id="path3251" + style="fill:url(#radialGradient4120);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" + id="path2309" + style="fill:url(#radialGradient4122);fill-opacity:1;stroke:url(#linearGradient4124);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + inkscape:connector-curvature="0" /><g + transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)" + id="g3842-8"><path + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" + id="path3337-3" + style="fill:url(#linearGradient4126);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /><path + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + id="path3360-1" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" + inkscape:connector-curvature="0" /><path + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" + id="path3375-8" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /></g></g></svg>
\ No newline at end of file diff --git a/icons/terminal.svg b/icons/terminal.svg new file mode 100644 index 0000000..d9b5a2d --- /dev/null +++ b/icons/terminal.svg @@ -0,0 +1,390 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="128" + height="128" + id="svg1306" + sodipodi:version="0.32" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="terminal.svg" + inkscape:export-filename="/home/andreas/projekt/bild/tango/terminal4.png" + inkscape:export-xdpi="240.00000" + inkscape:export-ydpi="240.00000" + version="1.1" + xml:space="preserve"><defs + id="defs1308"><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5031" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /><linearGradient + inkscape:collect="always" + id="linearGradient5060"><stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop5062" /><stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5064" /></linearGradient><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5029" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /><linearGradient + id="linearGradient5048"><stop + style="stop-color:black;stop-opacity:0;" + offset="0" + id="stop5050" /><stop + id="stop5056" + offset="0.5" + style="stop-color:black;stop-opacity:1;" /><stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5052" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5048" + id="linearGradient5027" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" + x1="302.85715" + y1="366.64789" + x2="302.85715" + y2="609.50507" /><linearGradient + inkscape:collect="always" + id="linearGradient6447"><stop + style="stop-color:#777973;stop-opacity:1;" + offset="0" + id="stop6449" /><stop + style="stop-color:#777973;stop-opacity:0;" + offset="1" + id="stop6451" /></linearGradient><linearGradient + id="linearGradient4254"><stop + style="stop-color:#616161;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop4256" /><stop + style="stop-color:#a0a0a0;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop4258" /></linearGradient><linearGradient + id="linearGradient5176"><stop + id="stop5178" + offset="0.0000000" + style="stop-color:#a2a59c;stop-opacity:1.0000000;" /><stop + id="stop5180" + offset="1.0000000" + style="stop-color:#535750;stop-opacity:1.0000000;" /></linearGradient><linearGradient + id="linearGradient2667"><stop + id="stop2669" + offset="0.0000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /><stop + id="stop2671" + offset="1.0000000" + style="stop-color:#fcfcff;stop-opacity:0.0000000;" /></linearGradient><linearGradient + gradientUnits="userSpaceOnUse" + y2="26.729263" + x2="17.199417" + y1="1.6537577" + x1="11.492236" + gradientTransform="matrix(3.3010911,0,0,2.3928562,-2.937334,1.8381888)" + id="linearGradient2673" + xlink:href="#linearGradient2667" + inkscape:collect="always" /><linearGradient + inkscape:collect="always" + id="linearGradient2238"><stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop2240" /><stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop2242" /></linearGradient><linearGradient + id="linearGradient2224"><stop + style="stop-color:#32342f;stop-opacity:0.54639173;" + offset="0.0000000" + id="stop2226" /><stop + style="stop-color:#32342f;stop-opacity:0;" + offset="1" + id="stop2228" /></linearGradient><linearGradient + id="linearGradient2214"><stop + style="stop-color:#a9aaa7;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2216" /><stop + style="stop-color:#676964;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop2218" /></linearGradient><linearGradient + id="linearGradient2206"><stop + style="stop-color:#777973;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2208" /><stop + style="stop-color:#cbccca;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop2210" /></linearGradient><linearGradient + id="linearGradient2198"><stop + style="stop-color:#748f48;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2200" /><stop + style="stop-color:#1f2816;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop2202" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2198" + id="linearGradient2204" + x1="23.118565" + y1="9.5830288" + x2="22.440805" + y2="34.225887" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5371512,0,0,2.5787407,3.2735851,-5.039164)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2206" + id="linearGradient2212" + x1="29.870447" + y1="32.28574" + x2="24.841814" + y2="14.157946" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5567175,0,0,2.543149,2.6828503,-5.365052)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5176" + id="linearGradient2220" + x1="8.6529236" + y1="9.5865316" + x2="21.305075" + y2="32.497993" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5567175,0,0,2.543149,2.6828503,-5.365052)" /><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2224" + id="radialGradient2230" + cx="24.04163" + cy="42.24213" + fx="24.04163" + fy="42.24213" + r="17.576654" + gradientTransform="matrix(1,0,0,0.304598,0,29.37527)" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2238" + id="linearGradient2244" + x1="20.338758" + y1="19.636894" + x2="48.845253" + y2="49.730762" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.5462868,0,0,2.5312441,2.9999978,-2.501575)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4254" + id="linearGradient4260" + x1="11.048059" + y1="9.146349" + x2="26.178129" + y2="30.343304" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.663992,0,0,2.6435845,0.22971132,-5.533339)" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2214" + id="linearGradient5719" + x1="40.253334" + y1="42.318577" + x2="36.451904" + y2="37.999615" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6704465,0,0,1.9888311,-0.0483916,19.832814)" /><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient6447" + id="radialGradient6453" + cx="37.495605" + cy="39.510021" + fx="37.495605" + fy="39.510021" + r="2.5100369" + gradientTransform="matrix(2.6704465,0,0,1.9702287,-0.0483916,20.567692)" + gradientUnits="userSpaceOnUse" /></defs><sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="0.19607843" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.6568542" + inkscape:cx="23.810703" + inkscape:cy="52.124648" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1920" + inkscape:window-height="1148" + inkscape:window-x="0" + inkscape:window-y="0" + showguides="true" + inkscape:guide-bbox="true" + inkscape:showpageshadow="false" + inkscape:window-maximized="1" /><metadata + id="metadata1311"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title>Terminal</dc:title><dc:date>2005-10-15</dc:date><dc:creator><cc:Agent><dc:title>Andreas Nilsson</dc:title></cc:Agent></dc:creator><dc:subject><rdf:Bag><rdf:li>terminal</rdf:li><rdf:li>emulator</rdf:li><rdf:li>term</rdf:li><rdf:li>command line</rdf:li></rdf:Bag></dc:subject><cc:license + rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /><dc:contributor><cc:Agent><dc:title>Jakub Steiner</dc:title></cc:Agent></dc:contributor></cc:Work><cc:License + rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"><cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /><cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /><cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /><cc:requires + rdf:resource="http://web.resource.org/cc/Attribution" /><cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /><cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /></cc:License></rdf:RDF></metadata><g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"><g + id="g5022" + transform="matrix(0.06554608,0,0,0.05572576,123.17586,99.337235)"><rect + y="-150.69685" + x="-1559.2523" + height="478.35718" + width="1339.6335" + id="rect4173" + style="opacity:0.40206185;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" /><path + sodipodi:nodetypes="cccc" + id="path5058" + d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z" + style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + inkscape:connector-curvature="0" /><path + style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z" + id="path5018" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" /></g><rect + style="fill:url(#linearGradient2212);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2220);stroke-width:2.67044497;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="rect1316" + width="120.15951" + height="104.14403" + x="3.9643116" + y="3.6296694" + rx="12.956225" + ry="12.956226" /><rect + style="fill:url(#linearGradient2204);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:2.65698147;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="rect1314" + width="99.041534" + height="77.502556" + x="14.629127" + y="14.261132" + rx="4.3934588" + ry="4.3934569" /><g + id="g2286" + style="opacity:0.25568183" + transform="matrix(2.6704465,0,0,2.6704465,-0.04839156,-5.7210411)"><path + id="path1345" + d="m 8.0152033,11.500361 31.9789417,0" + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 8.0152033,13.500361 31.9789417,0" + id="path2264" + inkscape:connector-curvature="0" /><path + id="path2266" + d="m 8.0152033,15.500361 31.9789417,0" + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 8.0152033,17.500361 31.9789417,0" + id="path2268" + inkscape:connector-curvature="0" /><path + id="path2270" + d="m 8.0152033,19.500361 31.9789417,0" + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 8.0152033,21.500361 31.9789417,0" + id="path2272" + inkscape:connector-curvature="0" /><path + id="path2274" + d="m 8.0152033,23.500361 31.9789417,0" + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 8.0152033,25.500361 31.9789417,0" + id="path2276" + inkscape:connector-curvature="0" /><path + id="path2278" + d="m 8.0152033,27.500361 31.9789417,0" + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 8.0152033,29.500361 31.9789417,0" + id="path2280" + inkscape:connector-curvature="0" /><path + id="path2282" + d="m 8.0152033,31.500361 31.9789417,0" + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + style="fill:none;stroke:#181f10;stroke-width:1.00072134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 8.0152033,33.500361 31.9789417,0" + id="path2284" + inkscape:connector-curvature="0" /></g><rect + style="opacity:0.76373626;fill:none;stroke:url(#linearGradient2244);stroke-width:2.67044497;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="rect2232" + width="114.6827" + height="98.80809" + x="6.7726116" + y="6.2978683" + rx="10.123788" + ry="10.123788" /><path + style="font-size:18.58501053px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#6ed66e;stroke-width:2.6704464pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.27868856;font-family:Bitstream Vera Sans Mono" + d="m 30.995548,49.502169 0,-8.15659 23.993502,10.844133 0,4.956132 -23.993502,10.915274 0,-8.132359 18.598047,-4.950628 -18.598047,-5.475962 z m 50.451771,26.774858 0,5.271985 -29.116962,0 0,-5.271985 29.116962,0" + id="text1340" + sodipodi:nodetypes="ccccccccccccc" + inkscape:connector-curvature="0" /><path + sodipodi:nodetypes="ccccccc" + style="opacity:0.53142856;fill:url(#linearGradient2673);fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 20.314799,15.642531 c -1.397407,0 -4.202903,0.507887 -4.202903,2.739814 L 16.427142,62.48889 C 63.619236,59.916219 54.146805,40.441435 112.11036,30.686006 L 111.94283,19.09109 c -0.20899,-3.004499 -1.44022,-3.289788 -4.29982,-3.27212 L 20.314799,15.642531 z" + id="path2443" + inkscape:connector-curvature="0" /><rect + style="opacity:0.71428576;fill:none;stroke:#000000;stroke-width:5.34089088;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="rect1340" + width="90.864693" + height="69.585075" + x="18.616575" + y="18.260942" + rx="0.31439745" + ry="0.31439745" /><rect + style="fill:url(#radialGradient6453);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5719);stroke-width:2.67044973;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="rect5025" + width="10.735391" + height="7.9018679" + x="94.713921" + y="94.460587" + rx="0.95653802" + ry="1.4960535" /><rect + style="fill:#93d94c;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="rect6458" + width="5.3408928" + height="5.3408928" + x="85.405899" + y="95.755928" + rx="1.496052" + ry="1.496052" /><path + sodipodi:type="arc" + style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" + id="path2300" + sodipodi:cx="28.3125" + sodipodi:cy="38.75" + sodipodi:rx="0.5625" + sodipodi:ry="0.5625" + d="m 28.875,38.75 a 0.5625,0.5625 0 1 1 -1.125,0 0.5625,0.5625 0 1 1 1.125,0 z" + transform="matrix(2.6704465,0,0,2.6704465,11.634812,-5.887944)" /></g></svg>
\ No newline at end of file diff --git a/icons/tutor2all.svg b/icons/tutor2all.svg new file mode 100644 index 0000000..9fde8f2 --- /dev/null +++ b/icons/tutor2all.svg @@ -0,0 +1,2913 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + width="114.38715" + height="114.30188" + id="svg2" + xml:space="preserve" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="tutor2all.svg"><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1148" + id="namedview10864" + showgrid="false" + inkscape:zoom="8.2588318" + inkscape:cx="57.193577" + inkscape:cy="70.136895" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="g10" /><metadata + id="metadata8"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs6"><clipPath + id="clipPath18"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path20" /></clipPath><mask + id="mask22"><g + id="g24"><g + clip-path="url(#clipPath18)" + id="g26"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path28" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath34"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path36" /></clipPath><clipPath + id="clipPath38"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path40" /></clipPath><clipPath + id="clipPath42"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path44" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient46" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)" + spreadMethod="pad"><stop + id="stop48" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop50" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath52"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path54" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient56" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)" + spreadMethod="pad"><stop + id="stop58" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop60" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern62"><defs + id="defs64"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask0"><g + id="g67"><g + clip-path="url(#clipPath42)" + id="g69"><g + id="g71"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient46);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path73" /></g></g></g></mask></defs><g + id="g75" /><g + id="g77"><g + clip-path="url(#clipPath38)" + id="g79"><g + id="g81"><g + id="g83"><g + id="g85" /><g + mask="url(#_mask0)" + id="g87"><g + id="g89" /><g + id="g91"><g + clip-path="url(#clipPath52)" + id="g93"><g + id="g95"><path + d="m 48.215,48.504 c 0,-2.844 -10.426,-5.145 -23.289,-5.145 -12.86,0 -23.285,2.301 -23.285,5.145 0,2.84 10.425,5.144 23.285,5.144 12.863,0 23.289,-2.304 23.289,-5.144 z" + style="fill:url(#radialGradient56);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path97" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient111" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)" + spreadMethod="pad"><stop + id="stop113" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop115" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient123" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)" + spreadMethod="pad"><stop + id="stop125" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop127" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient133" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.247759,0,0,-0.787943,-5.653165,89.260693)" + spreadMethod="pad"><stop + id="stop135" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop137" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath153"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path155" /></clipPath><mask + id="mask157"><g + id="g159"><g + clip-path="url(#clipPath153)" + id="g161"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path163" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath169"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path171" /></clipPath><clipPath + id="clipPath173"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path175" /></clipPath><clipPath + id="clipPath177"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path179" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient181" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop183" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop185" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath187"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path189" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient191" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop193" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop195" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern197"><defs + id="defs199"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask1"><g + id="g202"><g + clip-path="url(#clipPath177)" + id="g204"><g + id="g206"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient181);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path208" /></g></g></g></mask></defs><g + id="g210" /><g + id="g212"><g + clip-path="url(#clipPath173)" + id="g214"><g + id="g216"><g + id="g218"><g + id="g220" /><g + mask="url(#_mask1)" + id="g222"><g + id="g224" /><g + id="g226"><g + clip-path="url(#clipPath187)" + id="g228"><g + id="g230"><path + d="m 14.164,55.52 c 0.086,-2.2 -0.285,-2.95 -1.652,-3.723 l 23.902,-1.313 c -0.961,1.184 -2.355,2.969 -1.976,5.051 L 14.164,55.52 z" + style="fill:url(#linearGradient191);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path232" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath254"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path256" /></clipPath><mask + id="mask258"><g + id="g260"><g + clip-path="url(#clipPath254)" + id="g262"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path264" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath270"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path272" /></clipPath><clipPath + id="clipPath274"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path276" /></clipPath><clipPath + id="clipPath278"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path280" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient282" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop284" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop286" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath288"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path290" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient292" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop294" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop296" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern298"><defs + id="defs300"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask2"><g + id="g303"><g + clip-path="url(#clipPath278)" + id="g305"><g + id="g307"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient282);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path309" /></g></g></g></mask></defs><g + id="g311" /><g + id="g313"><g + clip-path="url(#clipPath274)" + id="g315"><g + id="g317"><g + id="g319"><g + id="g321" /><g + mask="url(#_mask2)" + id="g323"><g + id="g325" /><g + id="g327"><g + clip-path="url(#clipPath288)" + id="g329"><g + id="g331"><path + d="m 6.098,83.871 0,-18.23 c 16.644,1.371 22.875,10.238 36.41,11.164 l 0,7.097 -36.41,-0.031 z" + style="fill:url(#linearGradient292);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path333" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath347"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path349" /></clipPath><mask + id="mask351"><g + id="g353"><g + clip-path="url(#clipPath347)" + id="g355"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path357" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath363"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path365" /></clipPath><clipPath + id="clipPath367"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path369" /></clipPath><clipPath + id="clipPath371"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path373" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient375" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)" + spreadMethod="pad"><stop + id="stop377" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop379" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath381"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path383" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient385" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)" + spreadMethod="pad"><stop + id="stop387" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop389" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern391"><defs + id="defs393"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask3"><g + id="g396"><g + clip-path="url(#clipPath371)" + id="g398"><g + id="g400"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient375);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path402" /></g></g></g></mask></defs><g + id="g404" /><g + id="g406"><g + clip-path="url(#clipPath367)" + id="g408"><g + id="g410"><g + id="g412"><g + id="g414" /><g + mask="url(#_mask3)" + id="g416"><g + id="g418" /><g + id="g420"><g + clip-path="url(#clipPath381)" + id="g422"><g + id="g424"><path + d="m 91.281,60.074 c 0,-1.722 -6.308,-3.117 -14.093,-3.117 -7.786,0 -14.094,1.395 -14.094,3.117 0,1.719 6.308,3.114 14.094,3.114 7.785,0 14.093,-1.395 14.093,-3.114 z" + style="fill:url(#radialGradient385);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path426" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient440" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)" + spreadMethod="pad"><stop + id="stop442" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop444" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient452" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)" + spreadMethod="pad"><stop + id="stop454" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop456" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient462" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,58.678279,84.521513)" + spreadMethod="pad"><stop + id="stop464" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop466" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath482"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path484" /></clipPath><mask + id="mask486"><g + id="g488"><g + clip-path="url(#clipPath482)" + id="g490"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path492" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath498"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path500" /></clipPath><clipPath + id="clipPath502"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path504" /></clipPath><clipPath + id="clipPath506"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path508" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient510" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop512" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop514" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath516"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path518" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient520" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop522" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop524" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern526"><defs + id="defs528"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask4"><g + id="g531"><g + clip-path="url(#clipPath506)" + id="g533"><g + id="g535"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient510);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path537" /></g></g></g></mask></defs><g + id="g539" /><g + id="g541"><g + clip-path="url(#clipPath502)" + id="g543"><g + id="g545"><g + id="g547"><g + id="g549" /><g + mask="url(#_mask4)" + id="g551"><g + id="g553" /><g + id="g555"><g + clip-path="url(#clipPath516)" + id="g557"><g + id="g559"><path + d="m 70.672,64.32 c 0.051,-1.332 -0.172,-1.785 -1,-2.254 l 14.469,-0.793 c -0.582,0.715 -1.426,1.797 -1.196,3.055 L 70.672,64.32 z" + style="fill:url(#linearGradient520);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path561" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath583"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path585" /></clipPath><mask + id="mask587"><g + id="g589"><g + clip-path="url(#clipPath583)" + id="g591"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path593" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath599"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path601" /></clipPath><clipPath + id="clipPath603"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path605" /></clipPath><clipPath + id="clipPath607"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path609" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient611" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop613" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop615" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath617"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path619" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient621" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop623" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop625" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern627"><defs + id="defs629"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask5"><g + id="g632"><g + clip-path="url(#clipPath607)" + id="g634"><g + id="g636"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient611);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path638" /></g></g></g></mask></defs><g + id="g640" /><g + id="g642"><g + clip-path="url(#clipPath603)" + id="g644"><g + id="g646"><g + id="g648"><g + id="g650" /><g + mask="url(#_mask5)" + id="g652"><g + id="g654" /><g + id="g656"><g + clip-path="url(#clipPath617)" + id="g658"><g + id="g660"><path + d="m 65.789,81.48 0,-11.035 c 10.078,0.832 13.848,6.196 22.039,6.758 l 0,4.297 -22.039,-0.02 z" + style="fill:url(#linearGradient621);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path662" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath676"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path678" /></clipPath><mask + id="mask680"><g + id="g682"><g + clip-path="url(#clipPath676)" + id="g684"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path686" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath692"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path694" /></clipPath><clipPath + id="clipPath696"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path698" /></clipPath><clipPath + id="clipPath700"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path702" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient704" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)" + spreadMethod="pad"><stop + id="stop706" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop708" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath710"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path712" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient714" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)" + spreadMethod="pad"><stop + id="stop716" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop718" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern720"><defs + id="defs722"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask6"><g + id="g725"><g + clip-path="url(#clipPath700)" + id="g727"><g + id="g729"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient704);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path731" /></g></g></g></mask></defs><g + id="g733" /><g + id="g735"><g + clip-path="url(#clipPath696)" + id="g737"><g + id="g739"><g + id="g741"><g + id="g743" /><g + mask="url(#_mask6)" + id="g745"><g + id="g747" /><g + id="g749"><g + clip-path="url(#clipPath710)" + id="g751"><g + id="g753"><path + d="m 81.984,13.871 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.723 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.39 14.097,-3.113 z" + style="fill:url(#radialGradient714);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path755" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient769" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)" + spreadMethod="pad"><stop + id="stop771" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop773" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient781" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)" + spreadMethod="pad"><stop + id="stop783" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop785" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient791" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,49.378279,38.321513)" + spreadMethod="pad"><stop + id="stop793" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop795" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath811"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path813" /></clipPath><mask + id="mask815"><g + id="g817"><g + clip-path="url(#clipPath811)" + id="g819"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path821" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath827"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path829" /></clipPath><clipPath + id="clipPath831"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path833" /></clipPath><clipPath + id="clipPath835"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path837" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient839" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop841" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop843" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath845"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path847" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient849" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop851" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop853" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern855"><defs + id="defs857"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask7"><g + id="g860"><g + clip-path="url(#clipPath835)" + id="g862"><g + id="g864"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient839);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path866" /></g></g></g></mask></defs><g + id="g868" /><g + id="g870"><g + clip-path="url(#clipPath831)" + id="g872"><g + id="g874"><g + id="g876"><g + id="g878" /><g + mask="url(#_mask7)" + id="g880"><g + id="g882" /><g + id="g884"><g + clip-path="url(#clipPath845)" + id="g886"><g + id="g888"><path + d="m 61.371,18.117 c 0.055,-1.328 -0.172,-1.781 -1,-2.25 L 74.84,15.07 c -0.578,0.719 -1.426,1.801 -1.195,3.059 L 61.371,18.117 z" + style="fill:url(#linearGradient849);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path890" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath912"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path914" /></clipPath><mask + id="mask916"><g + id="g918"><g + clip-path="url(#clipPath912)" + id="g920"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path922" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath928"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path930" /></clipPath><clipPath + id="clipPath932"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path934" /></clipPath><clipPath + id="clipPath936"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path938" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient940" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop942" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop944" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath946"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path948" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient950" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop952" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop954" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern956"><defs + id="defs958"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask8"><g + id="g961"><g + clip-path="url(#clipPath936)" + id="g963"><g + id="g965"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient940);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path967" /></g></g></g></mask></defs><g + id="g969" /><g + id="g971"><g + clip-path="url(#clipPath932)" + id="g973"><g + id="g975"><g + id="g977"><g + id="g979" /><g + mask="url(#_mask8)" + id="g981"><g + id="g983" /><g + id="g985"><g + clip-path="url(#clipPath946)" + id="g987"><g + id="g989"><path + d="m 56.492,35.277 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.758 l 0,4.293 -22.035,-0.02 z" + style="fill:url(#linearGradient950);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path991" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath1005"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1007" /></clipPath><mask + id="mask1009"><g + id="g1011"><g + clip-path="url(#clipPath1005)" + id="g1013"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1015" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1021"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1023" /></clipPath><clipPath + id="clipPath1025"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1027" /></clipPath><clipPath + id="clipPath1029"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1031" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient1033" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)" + spreadMethod="pad"><stop + id="stop1035" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1037" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath1039"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1041" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient1043" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)" + spreadMethod="pad"><stop + id="stop1045" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop1047" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1049"><defs + id="defs1051"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask9"><g + id="g1054"><g + clip-path="url(#clipPath1029)" + id="g1056"><g + id="g1058"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient1033);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1060" /></g></g></g></mask></defs><g + id="g1062" /><g + id="g1064"><g + clip-path="url(#clipPath1025)" + id="g1066"><g + id="g1068"><g + id="g1070"><g + id="g1072" /><g + mask="url(#_mask9)" + id="g1074"><g + id="g1076" /><g + id="g1078"><g + clip-path="url(#clipPath1039)" + id="g1080"><g + id="g1082"><path + d="m 30.984,3.672 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.719 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.394 14.097,-3.113 z" + style="fill:url(#radialGradient1043);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1084" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient1098" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)" + spreadMethod="pad"><stop + id="stop1100" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop1102" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient1110" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)" + spreadMethod="pad"><stop + id="stop1112" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop1114" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient1120" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,-1.621721,28.121513)" + spreadMethod="pad"><stop + id="stop1122" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop1124" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath1140"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1142" /></clipPath><mask + id="mask1144"><g + id="g1146"><g + clip-path="url(#clipPath1140)" + id="g1148"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1150" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1156"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1158" /></clipPath><clipPath + id="clipPath1160"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1162" /></clipPath><clipPath + id="clipPath1164"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1166" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient1168" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1170" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1172" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath1174"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1176" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient1178" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1180" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop1182" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1184"><defs + id="defs1186"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask10"><g + id="g1189"><g + clip-path="url(#clipPath1164)" + id="g1191"><g + id="g1193"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient1168);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1195" /></g></g></g></mask></defs><g + id="g1197" /><g + id="g1199"><g + clip-path="url(#clipPath1160)" + id="g1201"><g + id="g1203"><g + id="g1205"><g + id="g1207" /><g + mask="url(#_mask10)" + id="g1209"><g + id="g1211" /><g + id="g1213"><g + clip-path="url(#clipPath1174)" + id="g1215"><g + id="g1217"><path + d="m 10.371,7.918 c 0.055,-1.332 -0.172,-1.781 -1,-2.25 L 23.84,4.871 C 23.262,5.59 22.414,6.668 22.645,7.93 L 10.371,7.918 z" + style="fill:url(#linearGradient1178);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1219" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath1241"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1243" /></clipPath><mask + id="mask1245"><g + id="g1247"><g + clip-path="url(#clipPath1241)" + id="g1249"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1251" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1257"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1259" /></clipPath><clipPath + id="clipPath1261"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1263" /></clipPath><clipPath + id="clipPath1265"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1267" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient1269" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1271" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1273" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath1275"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1277" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient1279" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1281" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1283" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1285"><defs + id="defs1287"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask11"><g + id="g1290"><g + clip-path="url(#clipPath1265)" + id="g1292"><g + id="g1294"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient1269);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1296" /></g></g></g></mask></defs><g + id="g1298" /><g + id="g1300"><g + clip-path="url(#clipPath1261)" + id="g1302"><g + id="g1304"><g + id="g1306"><g + id="g1308" /><g + mask="url(#_mask11)" + id="g1310"><g + id="g1312" /><g + id="g1314"><g + clip-path="url(#clipPath1275)" + id="g1316"><g + id="g1318"><path + d="m 5.492,25.078 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.754 l 0,4.297 -22.035,-0.02 z" + style="fill:url(#linearGradient1279);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1320" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient6246" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient6240"><stop + id="stop6242" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop6244" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient3063" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient6246-6" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient6240-0"><stop + id="stop6242-8" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop6244-7" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient3063-5" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4486" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4490" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4469" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4472" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4475" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4478" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><filter + color-interpolation-filters="sRGB" + id="filter3297"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295" /></filter><linearGradient + id="linearGradient44699"><stop + id="stop44701" + style="stop-color:#000173;stop-opacity:0.93333334" + offset="0" /><stop + id="stop44703" + style="stop-color:#3575f0;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44080"><stop + id="stop44082" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop44084" + style="stop-color:#57aeff;stop-opacity:1" + offset="0.25" /><stop + id="stop44086" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop44088" + style="stop-color:#5aafff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44090"><stop + id="stop44092" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop44094" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5790"><stop + id="stop5792" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop5794" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44615"><stop + id="stop44617" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop44619" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44693"><stop + id="stop44695" + style="stop-color:#3690e6;stop-opacity:1" + offset="0" /><stop + id="stop44697" + style="stop-color:#d0e9ff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44605"><stop + id="stop44607" + style="stop-color:#d0ecff;stop-opacity:1" + offset="0" /><stop + id="stop44609" + style="stop-color:#d7f0ff;stop-opacity:1" + offset="0.5" /><stop + id="stop44611" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5810"><stop + id="stop5812" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop5814" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2300-4"><stop + id="stop2302-6" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2304-2" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44627"><stop + id="stop44629" + style="stop-color:#fffcfb;stop-opacity:1" + offset="0" /><stop + id="stop44633" + style="stop-color:#f4ad94;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44681"><stop + id="stop44683" + style="stop-color:#ff5c38;stop-opacity:1" + offset="0" /><stop + id="stop44685" + style="stop-color:#fb7e65;stop-opacity:0.99607843" + offset="0.30397323" /><stop + id="stop44687" + style="stop-color:#cd0000;stop-opacity:0.98039216" + offset="1" /></linearGradient><linearGradient + id="linearGradient2288-5"><stop + id="stop2290-0" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2292-6" + style="stop-color:#898989;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5834"><stop + id="stop5836" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop5838" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2318-2"><stop + id="stop2320-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2326-4" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /><stop + id="stop2322-7" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2392-2"><stop + id="stop2394-4" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /><stop + id="stop2398-0" + style="stop-color:#000000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient2338-6"><stop + id="stop2340-2" + style="stop-color:#545454;stop-opacity:1" + offset="0" /><stop + id="stop2344-9" + style="stop-color:#545454;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient2380-9"><stop + id="stop2382-0" + style="stop-color:#838383;stop-opacity:1" + offset="0" /><stop + id="stop2384-8" + style="stop-color:#767676;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3836-1"><stop + id="stop3838-3" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /><stop + id="stop3844-1" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /><stop + id="stop3846-1" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /><stop + id="stop3840-0" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3895-3"><stop + id="stop3897-4" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /><stop + id="stop3899-0" + style="stop-color:#930000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3924-3"><stop + id="stop3926-9" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /><stop + id="stop3928-1" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3854-9"><stop + id="stop3856-6" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /><stop + id="stop3860-9" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /><stop + id="stop3862-3" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5207" + xlink:href="#linearGradient3339-4" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4"><stop + id="stop3341-7" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1"><feGaussianBlur + id="feGaussianBlur3387-7" + stdDeviation="0.14607691" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3297-9"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299-7" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293-2"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295-7" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient5673-0" + xlink:href="#linearGradient44699-4" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(38.627584,1.0111154)" /><linearGradient + id="linearGradient44699-4"><stop + id="stop44701-3" + style="stop-color:#000173;stop-opacity:0.93333334" + offset="0" /><stop + id="stop44703-4" + style="stop-color:#3575f0;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient5670-6" + xlink:href="#linearGradient44080-3" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" /><linearGradient + id="linearGradient44080-3"><stop + id="stop44082-5" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop44084-5" + style="stop-color:#57aeff;stop-opacity:1" + offset="0.25" /><stop + id="stop44086-1" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop44088-4" + style="stop-color:#5aafff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5667-0" + xlink:href="#linearGradient44090-0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-408.92103,-635.92247)" /><linearGradient + id="linearGradient44090-0"><stop + id="stop44092-7" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop44094-9" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5664-4" + xlink:href="#linearGradient44090-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" /><linearGradient + id="linearGradient6984"><stop + id="stop6986" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop6988" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5661-5" + xlink:href="#linearGradient44615-6" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(321.10111,-881.68159)" /><linearGradient + id="linearGradient44615-6"><stop + id="stop44617-5" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop44619-1" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-35.566662" + y1="76.562927" + x2="-35.566662" + y2="84.910484" + id="linearGradient5658-1" + xlink:href="#linearGradient44693-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" /><linearGradient + id="linearGradient44693-1"><stop + id="stop44695-8" + style="stop-color:#3690e6;stop-opacity:1" + offset="0" /><stop + id="stop44697-1" + style="stop-color:#d0e9ff;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient5655-7" + xlink:href="#linearGradient44605-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" /><linearGradient + id="linearGradient44605-2"><stop + id="stop44607-0" + style="stop-color:#d0ecff;stop-opacity:1" + offset="0" /><stop + id="stop44609-9" + style="stop-color:#d7f0ff;stop-opacity:1" + offset="0.5" /><stop + id="stop44611-1" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5652-7" + xlink:href="#linearGradient44615-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" /><linearGradient + id="linearGradient7004"><stop + id="stop7006" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop7008" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="170.29684" + y1="219.20184" + x2="75.611801" + y2="140.29272" + id="linearGradient5645-3" + xlink:href="#linearGradient2300-4-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" /><linearGradient + id="linearGradient2300-4-8"><stop + id="stop2302-6-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2304-2-7" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient5640-1" + xlink:href="#linearGradient44627-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" /><linearGradient + id="linearGradient44627-2"><stop + id="stop44629-5" + style="stop-color:#fffcfb;stop-opacity:1" + offset="0" /><stop + id="stop44633-6" + style="stop-color:#f4ad94;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="60.126968" + y1="81.913818" + x2="60.126968" + y2="47.542713" + id="linearGradient5642-0" + xlink:href="#linearGradient44681-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" /><linearGradient + id="linearGradient44681-0"><stop + id="stop44683-0" + style="stop-color:#ff5c38;stop-opacity:1" + offset="0" /><stop + id="stop44685-6" + style="stop-color:#fb7e65;stop-opacity:0.99607843" + offset="0.30397323" /><stop + id="stop44687-1" + style="stop-color:#cd0000;stop-opacity:0.98039216" + offset="1" /></linearGradient><linearGradient + x1="81.846077" + y1="136.15834" + x2="168.78268" + y2="53.432808" + id="linearGradient5637-0" + xlink:href="#linearGradient2288-5-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient + id="linearGradient2288-5-4"><stop + id="stop2290-0-2" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2292-6-5" + style="stop-color:#898989;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="366.57416" + y1="39.730881" + x2="168.78265" + y2="53.4328" + id="linearGradient5634-9" + xlink:href="#linearGradient2300-4-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient + id="linearGradient7028"><stop + id="stop7030" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop7032" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="263.96207" + y1="41.317993" + x2="24.068567" + y2="220.45784" + id="linearGradient5631-1" + xlink:href="#linearGradient2318-2-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient + id="linearGradient2318-2-2"><stop + id="stop2320-8-2" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2326-4-2" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /><stop + id="stop2322-7-5" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="136.33336" + y1="113.51798" + x2="173.3575" + y2="164.5226" + id="linearGradient5628-3" + xlink:href="#linearGradient2392-2-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient + id="linearGradient2392-2-4"><stop + id="stop2394-4-5" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /><stop + id="stop2398-0-5" + style="stop-color:#000000;stop-opacity:0" + offset="1" /></linearGradient><radialGradient + cx="180.07829" + cy="176.38765" + r="53.050598" + fx="180.07837" + fy="177.18346" + id="radialGradient5625-6" + xlink:href="#linearGradient2338-6-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient + id="linearGradient2338-6-6"><stop + id="stop2340-2-6" + style="stop-color:#545454;stop-opacity:1" + offset="0" /><stop + id="stop2344-9-3" + style="stop-color:#545454;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="219.53198" + y1="120.31494" + x2="211.80861" + y2="127.47651" + id="linearGradient5622-2" + xlink:href="#linearGradient2380-9-7" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient + id="linearGradient2380-9-7"><stop + id="stop2382-0-1" + style="stop-color:#838383;stop-opacity:1" + offset="0" /><stop + id="stop2384-8-9" + style="stop-color:#767676;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="144.45633" + y1="98.692307" + x2="155.86334" + y2="161.02338" + id="linearGradient5618-0" + xlink:href="#linearGradient3836-1-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient + id="linearGradient3836-1-6"><stop + id="stop3838-3-7" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /><stop + id="stop3844-1-7" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /><stop + id="stop3846-1-8" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /><stop + id="stop3840-0-7" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5615-9" + xlink:href="#linearGradient3895-3-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" /><linearGradient + id="linearGradient3895-3-4"><stop + id="stop3897-4-0" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /><stop + id="stop3899-0-9" + style="stop-color:#930000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5612-8" + xlink:href="#linearGradient3924-3-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" /><linearGradient + id="linearGradient3924-3-5"><stop + id="stop3926-9-6" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /><stop + id="stop3928-1-9" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="137.93805" + y1="118.24712" + x2="183.56607" + y2="110.30299" + id="linearGradient5609-6" + xlink:href="#linearGradient3854-9-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient + id="linearGradient3854-9-1"><stop + id="stop3856-6-2" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /><stop + id="stop3860-9-0" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /><stop + id="stop3862-3-8" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5207-5" + xlink:href="#linearGradient3339-4-4" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4-4"><stop + id="stop3341-7-3" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6-0" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3-2" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1-2"><feGaussianBlur + id="feGaussianBlur3387-7-8" + stdDeviation="0.14607691" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3297-4"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299-77" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293-5"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295-8" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient5698" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><linearGradient + id="linearGradient3197"><stop + id="stop3199" + style="stop-color:#002f32;stop-opacity:1" + offset="0" /><stop + id="stop3201" + style="stop-color:#045b04;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient5695" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + id="linearGradient3205"><stop + id="stop3207" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop3215" + style="stop-color:#3db800;stop-opacity:1" + offset="0.25" /><stop + id="stop3213" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3209" + style="stop-color:#69cf35;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5692" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + id="linearGradient3219"><stop + id="stop3221" + style="stop-color:#0e7309;stop-opacity:1" + offset="0" /><stop + id="stop3223" + style="stop-color:#70d13e;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5689" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><linearGradient + id="linearGradient7410"><stop + id="stop7412" + style="stop-color:#0e7309;stop-opacity:1" + offset="0" /><stop + id="stop7414" + style="stop-color:#70d13e;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient5683" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><linearGradient + id="linearGradient3261"><stop + id="stop3263" + style="stop-color:#ffffff;stop-opacity:0" + offset="0" /><stop + id="stop3269" + style="stop-color:#ffffff;stop-opacity:0" + offset="0.5" /><stop + id="stop3265" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient5677" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + id="linearGradient3327"><stop + id="stop3329" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop3335" + style="stop-color:#fdd99a;stop-opacity:1" + offset="0.5" /><stop + id="stop3331" + style="stop-color:#c39539;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient5679" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + id="linearGradient3319"><stop + id="stop3321" + style="stop-color:#7d491f;stop-opacity:1" + offset="0" /><stop + id="stop44679" + style="stop-color:#87570f;stop-opacity:1" + offset="0.5" /><stop + id="stop3323" + style="stop-color:#926600;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5710" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4-5"><stop + id="stop3341-7-9" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6-7" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3-5" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1-3"><feGaussianBlur + id="feGaussianBlur3387-7-8-5" + stdDeviation="0.14607691" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7597" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7599" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7601" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7603" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7605" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7607" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7609" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7611" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7647" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7649" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7651" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7653" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7655" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7657" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7659" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7661" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7697" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7699" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7701" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7703" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7705" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7707" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7709" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7711" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /></defs><g + transform="matrix(1.25,0,0,-1.25,0,114.30188)" + id="g10"><g + id="g14"><g + id="g16" /><g + mask="url(#mask22)" + id="g30"><g + id="g32" /><g + id="g99"><g + clip-path="url(#clipPath34)" + id="g101"><g + id="g103"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path105" + style="fill:url(#pattern62);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g107"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g109"><path + d="m 14.551,35.969 c 0,0 1.234,4.996 -3.903,5.043 -2.46,0.023 -1.957,4.086 -1.957,4.086 l 31.227,-0.036 c 0,0 0.422,-3.941 -2.047,-3.988 -5.051,-0.094 -3.859,-5.168 -3.859,-5.168 l -19.461,0.063 z" + id="path117" + style="fill:url(#linearGradient111);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g119"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g121"><path + d="m 4.949,3.52 38.598,0 c 2.047,0 3.543,1.445 3.543,3.671 l 0.012,26.528 c 0,1.711 -0.536,2.242 -2.063,2.242 L 3.574,35.941 C 2.383,35.91 1.531,35.441 1.516,33.895 L 1.531,7 c 0,-1.793 1.559,-3.48 3.418,-3.48 z" + id="path129" + style="fill:url(#linearGradient123);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g131"><path + d="m 5.574,83.848 37.453,0 0,-23.277 -37.453,0 0,23.277 z" + id="path139" + style="fill:url(#radialGradient133);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g141"><path + d="m 5.574,7.594 37.453,0 0,23.277 -37.453,0 0,-23.277 z" + id="path143" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g145"><path + d="m 4.934,4.398 c -1.325,0 -2.532,1.309 -2.532,2.594 l 0,26.918 c 0.008,0.613 0.149,0.801 0.286,0.918 0.132,0.113 0.425,0.203 0.886,0.223 l 0.031,0 41.442,0.031 c 0.66,0 0.867,-0.102 0.949,-0.191 0.082,-0.086 0.219,-0.407 0.219,-1.168 l 0,-26.543 c 0,-1.828 -1.024,-2.782 -2.656,-2.782 l -38.625,0 z" + id="path147" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g149"><g + id="g151" /><g + mask="url(#mask157)" + id="g165"><g + id="g167" /><g + id="g234"><g + clip-path="url(#clipPath169)" + id="g236"><g + id="g238"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path240" + style="fill:url(#pattern197);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g242"><path + d="m 10.113,42.004 c 6.789,0.004 28.141,0 28.141,0" + id="path244" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g246"><path + d="m 9.766,43.027 c 6.789,0 29.074,0 29.074,0" + id="path248" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g250"><g + id="g252" /><g + mask="url(#mask258)" + id="g266"><g + id="g268" /><g + id="g335"><g + clip-path="url(#clipPath270)" + id="g337"><g + id="g339"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path341" + style="fill:url(#pattern298);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g343"><g + id="g345" /><g + mask="url(#mask351)" + id="g359"><g + id="g361" /><g + id="g428"><g + clip-path="url(#clipPath363)" + id="g430"><g + id="g432"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path434" + style="fill:url(#pattern391);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g436"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g438"><path + d="m 70.906,27.371 c 0,0 0.746,3.024 -2.359,3.051 -1.492,0.016 -1.188,2.473 -1.188,2.473 l 18.903,-0.02 c 0,0 0.254,-2.387 -1.239,-2.414 -3.058,-0.055 -2.335,-3.129 -2.335,-3.129 l -11.782,0.039 z" + id="path446" + style="fill:url(#linearGradient440);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g448"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g450"><path + d="m 65.094,7.73 23.363,0 c 1.242,0 2.145,0.875 2.145,2.223 l 0.007,16.055 c 0,1.035 -0.324,1.359 -1.246,1.359 L 64.266,27.355 C 63.543,27.336 63.027,27.051 63.02,26.117 L 63.027,9.84 c 0,-1.09 0.942,-2.11 2.067,-2.11 z" + id="path458" + style="fill:url(#linearGradient452);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g460"><path + d="m 65.473,81.246 22.672,0 0,-14.09 -22.672,0 0,14.09 z" + id="path468" + style="fill:url(#radialGradient462);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g470"><path + d="m 65.473,10.195 22.672,0 0,14.09 -22.672,0 0,-14.09 z" + id="path472" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g474"><path + d="m 65.086,8.262 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.484 0.172,0.555 0.082,0.07 0.257,0.125 0.535,0.136 l 0.019,0 25.086,0.016 c 0.399,0 0.524,-0.059 0.574,-0.113 0.047,-0.051 0.133,-0.246 0.133,-0.707 l 0,-16.067 c 0,-1.105 -0.621,-1.683 -1.609,-1.683 l -23.379,0 z" + id="path476" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g478"><g + id="g480" /><g + mask="url(#mask486)" + id="g494"><g + id="g496" /><g + id="g563"><g + clip-path="url(#clipPath498)" + id="g565"><g + id="g567"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path569" + style="fill:url(#pattern526);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g571"><path + d="m 68.223,31.023 c 4.109,0.004 17.031,0 17.031,0" + id="path573" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g575"><path + d="m 68.012,31.641 c 4.109,0.004 17.597,0 17.597,0" + id="path577" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g579"><g + id="g581" /><g + mask="url(#mask587)" + id="g595"><g + id="g597" /><g + id="g664"><g + clip-path="url(#clipPath599)" + id="g666"><g + id="g668"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path670" + style="fill:url(#pattern627);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g672"><g + id="g674" /><g + mask="url(#mask680)" + id="g688"><g + id="g690" /><g + id="g757"><g + clip-path="url(#clipPath692)" + id="g759"><g + id="g761"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path763" + style="fill:url(#pattern720);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g765"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g767"><path + d="m 61.609,73.57 c 0,0 0.743,3.024 -2.363,3.055 -1.488,0.012 -1.184,2.469 -1.184,2.469 l 18.899,-0.016 c 0,0 0.258,-2.387 -1.238,-2.418 -3.059,-0.055 -2.336,-3.129 -2.336,-3.129 L 61.609,73.57 z" + id="path775" + style="fill:url(#linearGradient769);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g777"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g779"><path + d="m 55.797,53.93 23.359,0 c 1.242,0 2.145,0.875 2.145,2.222 l 0.008,16.055 c 0,1.039 -0.325,1.359 -1.247,1.359 L 54.965,73.555 c -0.723,-0.02 -1.238,-0.305 -1.246,-1.239 l 0.008,-16.277 c 0,-1.09 0.945,-2.109 2.07,-2.109 z" + id="path787" + style="fill:url(#linearGradient781);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g789"><path + d="m 56.172,35.047 22.672,0 0,-14.094 -22.672,0 0,14.094 z" + id="path797" + style="fill:url(#radialGradient791);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g799"><path + d="m 56.172,56.395 22.672,0 0,14.094 -22.672,0 0,-14.094 z" + id="path801" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g803"><path + d="m 55.785,54.461 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.485 0.172,0.555 0.082,0.07 0.258,0.125 0.539,0.137 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.246 0.132,-0.707 l 0,-16.066 c 0,-1.106 -0.617,-1.684 -1.609,-1.684 l -23.379,0 z" + id="path805" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g807"><g + id="g809" /><g + mask="url(#mask815)" + id="g823"><g + id="g825" /><g + id="g892"><g + clip-path="url(#clipPath827)" + id="g894"><g + id="g896"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path898" + style="fill:url(#pattern855);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g900"><path + d="m 58.922,77.227 c 4.109,0 17.031,0 17.031,0" + id="path902" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g904"><path + d="m 58.711,77.844 c 4.109,0 17.598,0 17.598,0" + id="path906" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g908"><g + id="g910" /><g + mask="url(#mask916)" + id="g924"><g + id="g926" /><g + id="g993"><g + clip-path="url(#clipPath928)" + id="g995"><g + id="g997"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path999" + style="fill:url(#pattern956);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g1001"><g + id="g1003" /><g + mask="url(#mask1009)" + id="g1017"><g + id="g1019" /><g + id="g1086"><g + clip-path="url(#clipPath1021)" + id="g1088"><g + id="g1090"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1092" + style="fill:url(#pattern1049);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g1094"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1096"><path + d="m 10.609,83.77 c 0,0 0.743,3.023 -2.363,3.054 -1.488,0.012 -1.184,2.473 -1.184,2.473 l 18.899,-0.02 c 0,0 0.258,-2.386 -1.238,-2.414 -3.059,-0.058 -2.336,-3.129 -2.336,-3.129 L 10.609,83.77 z" + id="path1104" + style="fill:url(#linearGradient1098);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g1106"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1108"><path + d="m 4.797,64.133 23.359,0 c 1.242,0 2.145,0.875 2.145,2.219 l 0.008,16.054 c 0,1.039 -0.325,1.36 -1.247,1.36 L 3.965,83.754 C 3.242,83.734 2.727,83.449 2.719,82.516 L 2.727,66.238 c 0,-1.086 0.945,-2.105 2.07,-2.105 z" + id="path1116" + style="fill:url(#linearGradient1110);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g1118"><path + d="m 5.172,24.844 22.672,0 0,-14.09 -22.672,0 0,14.09 z" + id="path1126" + style="fill:url(#radialGradient1120);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1128"><path + d="m 5.172,66.598 22.672,0 0,14.09 -22.672,0 0,-14.09 z" + id="path1130" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1132"><path + d="m 4.785,64.66 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.297 c 0.004,0.368 0.09,0.485 0.172,0.555 0.082,0.066 0.258,0.121 0.539,0.133 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.242 0.132,-0.707 l 0,-16.062 c 0,-1.11 -0.617,-1.688 -1.609,-1.688 l -23.379,0 z" + id="path1134" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g1136"><g + id="g1138" /><g + mask="url(#mask1144)" + id="g1152"><g + id="g1154" /><g + id="g1221"><g + clip-path="url(#clipPath1156)" + id="g1223"><g + id="g1225"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1227" + style="fill:url(#pattern1184);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1229"><path + d="m 7.922,87.426 c 4.109,0 17.031,0 17.031,0" + id="path1231" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1233"><path + d="m 7.711,88.043 c 4.109,0 17.598,0 17.598,0" + id="path1235" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g1237"><g + id="g1239" /><g + mask="url(#mask1245)" + id="g1253"><g + id="g1255" /><g + id="g1322"><g + clip-path="url(#clipPath1257)" + id="g1324"><g + id="g1326"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1328" + style="fill:url(#pattern1285);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1330"><path + d="m 62.199,17.5 -14.301,-6.699 1.704,6 -1.903,4.699 14.5,-4 z" + id="path1332" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1334"><path + d="m 56.102,52.199 -4.903,-17.898 -3.801,5.597 -6,1.602 14.704,10.699 z" + id="path1336" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1338"><path + d="M 16.801,63 12.602,46.301 17.801,49.699 24.398,47.398 16.801,63 z" + id="path1340" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><path + d="m 5.9755084,83.487599 0,-17.839038 C 22.718232,66.990115 28.98411,75.666186 42.596557,76.572642 l 0,6.946035 -36.6210486,-0.03108 z" + id="path4073" + style="opacity:0.65;fill:url(#linearGradient4478);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 5.5444789,24.526574 0,-10.474685 c 9.9770891,0.787731 13.7109621,5.882126 21.8227001,6.414376 l 0,4.078557 -21.8227001,-0.01825 z" + id="path4073-3" + style="opacity:0.65;fill:url(#linearGradient4475);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 56.57296,34.663776 0,-10.474685 c 9.97709,0.787731 13.710963,5.882126 21.822701,6.414376 l 0,4.078557 -21.822701,-0.01825 z" + id="path4484" + style="opacity:0.65;fill:url(#linearGradient4472);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 65.888226,80.863387 0,-10.474685 c 9.97709,0.787731 13.710963,5.882126 21.822701,6.414376 l 0,4.078557 -21.822701,-0.01825 z" + id="path4488" + style="opacity:0.65;fill:url(#linearGradient4469);fill-opacity:1;fill-rule:evenodd;stroke:none" /><g + transform="matrix(0.2730524,0,0,-0.2730524,1.850926,90.906749)" + id="g5712"><path + d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z" + id="path44010" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-9)" + inkscape:connector-curvature="0" /><path + d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z" + id="path44012" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-2)" + inkscape:connector-curvature="0" /><path + d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z" + id="path44014" + style="fill:url(#linearGradient5673-0);fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z" + id="path44016" + style="fill:url(#radialGradient5670-6);fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675" + id="path44018" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5667-0);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675" + id="path44020" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5664-4);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" + id="path44022" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5661-5);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /><path + d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z" + id="path44024" + style="fill:url(#linearGradient5658-1);fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" + id="path44028" + style="fill:url(#radialGradient5655-7);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z" + id="path44621" + style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5652-7);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /><path + d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z" + id="path2368" + style="fill:url(#linearGradient5645-3);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z" + id="path44030" + style="fill:url(#radialGradient5640-1);fill-opacity:1;stroke:url(#linearGradient5642-0);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + inkscape:connector-curvature="0" /><path + d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z" + id="path1526" + style="fill:url(#linearGradient5637-0);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z" + id="path2296" + style="fill:url(#linearGradient5634-9);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2308" + style="fill:url(#linearGradient5631-1);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2390" + style="fill:url(#linearGradient5628-3);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2334" + style="fill:url(#radialGradient5625-6);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z" + id="path2378" + style="fill:url(#linearGradient5622-2);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z" + id="path2346" + style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z" + id="path2312" + style="fill:url(#linearGradient5618-0);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z" + id="path3870" + style="fill:url(#linearGradient5615-9);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z" + id="path3920" + style="fill:url(#linearGradient5612-8);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z" + id="use3848" + style="fill:url(#linearGradient5609-6);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z" + id="path3946" + style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z" + id="path3937" + style="fill:#f6ca12;fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z" + id="path3942" + style="fill:#f6f1d7;fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><g + transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)" + id="g3842"><path + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" + id="path3337" + style="fill:url(#linearGradient5207-5);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /><path + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + id="path3360" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-2)" + inkscape:connector-curvature="0" /><path + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" + id="path3375" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /></g></g><g + id="g5744" + transform="matrix(0.17221294,0,0,-0.17221294,104.6656,80.487889)"><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)" + id="path3281" + d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)" + id="path3283" + d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7597);fill-opacity:1;stroke:none" + id="path2214" + d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7599);fill-opacity:1;stroke:none" + id="path3193" + d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7601);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path3217" + d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7603);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path3227" + d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3249" + d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path3245" + d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path + inkscape:connector-curvature="0" + style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3247" + d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7605);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3251" + d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7607);fill-opacity:1;stroke:url(#linearGradient7609);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path2309" + d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g + id="g3842-8" + transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7611);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3337-3" + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" + id="path3360-1" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path + inkscape:connector-curvature="0" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3375-8" + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g + id="g7615" + transform="matrix(0.17221294,0,0,-0.17221294,94.665383,34.185536)"><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)" + id="path7617" + d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)" + id="path7619" + d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7647);fill-opacity:1;stroke:none" + id="path7621" + d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7649);fill-opacity:1;stroke:none" + id="path7623" + d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7651);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7625" + d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7653);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7627" + d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7629" + d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7631" + d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path + inkscape:connector-curvature="0" + style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7633" + d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7655);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7635" + d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7657);fill-opacity:1;stroke:url(#linearGradient7659);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7637" + d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g + id="g7639" + transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7661);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7641" + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" + id="path7643" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path + inkscape:connector-curvature="0" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7645" + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g><g + id="g7665" + transform="matrix(0.17221294,0,0,-0.17221294,43.705396,23.911345)"><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)" + id="path7667" + d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)" + id="path7669" + d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7697);fill-opacity:1;stroke:none" + id="path7671" + d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7699);fill-opacity:1;stroke:none" + id="path7673" + d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7701);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7675" + d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7703);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7677" + d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7679" + d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7681" + d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path + inkscape:connector-curvature="0" + style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7683" + d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7705);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7685" + d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7707);fill-opacity:1;stroke:url(#linearGradient7709);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7687" + d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g + id="g7689" + transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7711);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7691" + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" + id="path7693" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path + inkscape:connector-curvature="0" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7695" + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g></g></svg>
\ No newline at end of file diff --git a/icons/tutor2student.svg b/icons/tutor2student.svg new file mode 100644 index 0000000..52942c6 --- /dev/null +++ b/icons/tutor2student.svg @@ -0,0 +1,2608 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + width="114.38715" + height="114.30188" + id="svg2" + xml:space="preserve" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="tutor2student.svg"><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1148" + id="namedview10864" + showgrid="false" + inkscape:zoom="8.2588318" + inkscape:cx="57.193577" + inkscape:cy="56.962738" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="g10" /><metadata + id="metadata8"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs6"><clipPath + id="clipPath18"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path20" /></clipPath><mask + id="mask22"><g + id="g24"><g + clip-path="url(#clipPath18)" + id="g26"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path28" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath34"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path36" /></clipPath><clipPath + id="clipPath38"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path40" /></clipPath><clipPath + id="clipPath42"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path44" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient46" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)" + spreadMethod="pad"><stop + id="stop48" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop50" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath52"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path54" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient56" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.980126,0,0,-0.216527,1.465394,57.746052)" + spreadMethod="pad"><stop + id="stop58" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop60" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern62"><defs + id="defs64"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask0"><g + id="g67"><g + clip-path="url(#clipPath42)" + id="g69"><g + id="g71"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient46);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path73" /></g></g></g></mask></defs><g + id="g75" /><g + id="g77"><g + clip-path="url(#clipPath38)" + id="g79"><g + id="g81"><g + id="g83"><g + id="g85" /><g + mask="url(#_mask0)" + id="g87"><g + id="g89" /><g + id="g91"><g + clip-path="url(#clipPath52)" + id="g93"><g + id="g95"><path + d="m 48.215,48.504 c 0,-2.844 -10.426,-5.145 -23.289,-5.145 -12.86,0 -23.285,2.301 -23.285,5.145 0,2.84 10.425,5.144 23.285,5.144 12.863,0 23.289,-2.304 23.289,-5.144 z" + style="fill:url(#radialGradient56);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path97" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient111" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)" + spreadMethod="pad"><stop + id="stop113" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop115" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient123" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,91.441505)" + spreadMethod="pad"><stop + id="stop125" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop127" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient133" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.247759,0,0,-0.787943,-5.653165,89.260693)" + spreadMethod="pad"><stop + id="stop135" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop137" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath153"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path155" /></clipPath><mask + id="mask157"><g + id="g159"><g + clip-path="url(#clipPath153)" + id="g161"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path163" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath169"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path171" /></clipPath><clipPath + id="clipPath173"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path175" /></clipPath><clipPath + id="clipPath177"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path179" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient181" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop183" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop185" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath187"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path189" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient191" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop193" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop195" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern197"><defs + id="defs199"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask1"><g + id="g202"><g + clip-path="url(#clipPath177)" + id="g204"><g + id="g206"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient181);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path208" /></g></g></g></mask></defs><g + id="g210" /><g + id="g212"><g + clip-path="url(#clipPath173)" + id="g214"><g + id="g216"><g + id="g218"><g + id="g220" /><g + mask="url(#_mask1)" + id="g222"><g + id="g224" /><g + id="g226"><g + clip-path="url(#clipPath187)" + id="g228"><g + id="g230"><path + d="m 14.164,55.52 c 0.086,-2.2 -0.285,-2.95 -1.652,-3.723 l 23.902,-1.313 c -0.961,1.184 -2.355,2.969 -1.976,5.051 L 14.164,55.52 z" + style="fill:url(#linearGradient191);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path232" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath254"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path256" /></clipPath><mask + id="mask258"><g + id="g260"><g + clip-path="url(#clipPath254)" + id="g262"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path264" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath270"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path272" /></clipPath><clipPath + id="clipPath274"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path276" /></clipPath><clipPath + id="clipPath278"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path280" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient282" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop284" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop286" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath288"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path290" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient292" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.012271,0,0,-1.012271,0,92)" + spreadMethod="pad"><stop + id="stop294" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop296" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern298"><defs + id="defs300"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask2"><g + id="g303"><g + clip-path="url(#clipPath278)" + id="g305"><g + id="g307"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient282);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path309" /></g></g></g></mask></defs><g + id="g311" /><g + id="g313"><g + clip-path="url(#clipPath274)" + id="g315"><g + id="g317"><g + id="g319"><g + id="g321" /><g + mask="url(#_mask2)" + id="g323"><g + id="g325" /><g + id="g327"><g + clip-path="url(#clipPath288)" + id="g329"><g + id="g331"><path + d="m 6.098,83.871 0,-18.23 c 16.644,1.371 22.875,10.238 36.41,11.164 l 0,7.097 -36.41,-0.031 z" + style="fill:url(#linearGradient292);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path333" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath347"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path349" /></clipPath><mask + id="mask351"><g + id="g353"><g + clip-path="url(#clipPath347)" + id="g355"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path357" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath363"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path365" /></clipPath><clipPath + id="clipPath367"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path369" /></clipPath><clipPath + id="clipPath371"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path373" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient375" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)" + spreadMethod="pad"><stop + id="stop377" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop379" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath381"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path383" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient385" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,62.986967,65.666929)" + spreadMethod="pad"><stop + id="stop387" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop389" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern391"><defs + id="defs393"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask3"><g + id="g396"><g + clip-path="url(#clipPath371)" + id="g398"><g + id="g400"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient375);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path402" /></g></g></g></mask></defs><g + id="g404" /><g + id="g406"><g + clip-path="url(#clipPath367)" + id="g408"><g + id="g410"><g + id="g412"><g + id="g414" /><g + mask="url(#_mask3)" + id="g416"><g + id="g418" /><g + id="g420"><g + clip-path="url(#clipPath381)" + id="g422"><g + id="g424"><path + d="m 91.281,60.074 c 0,-1.722 -6.308,-3.117 -14.093,-3.117 -7.786,0 -14.094,1.395 -14.094,3.117 0,1.719 6.308,3.114 14.094,3.114 7.785,0 14.093,-1.395 14.093,-3.114 z" + style="fill:url(#radialGradient385);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path426" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient440" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)" + spreadMethod="pad"><stop + id="stop442" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop444" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient452" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,85.841505)" + spreadMethod="pad"><stop + id="stop454" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop456" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient462" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,58.678279,84.521513)" + spreadMethod="pad"><stop + id="stop464" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop466" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath482"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path484" /></clipPath><mask + id="mask486"><g + id="g488"><g + clip-path="url(#clipPath482)" + id="g490"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path492" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath498"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path500" /></clipPath><clipPath + id="clipPath502"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path504" /></clipPath><clipPath + id="clipPath506"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path508" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient510" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop512" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop514" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath516"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path518" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient520" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop522" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop524" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern526"><defs + id="defs528"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask4"><g + id="g531"><g + clip-path="url(#clipPath506)" + id="g533"><g + id="g535"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient510);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path537" /></g></g></g></mask></defs><g + id="g539" /><g + id="g541"><g + clip-path="url(#clipPath502)" + id="g543"><g + id="g545"><g + id="g547"><g + id="g549" /><g + mask="url(#_mask4)" + id="g551"><g + id="g553" /><g + id="g555"><g + clip-path="url(#clipPath516)" + id="g557"><g + id="g559"><path + d="m 70.672,64.32 c 0.051,-1.332 -0.172,-1.785 -1,-2.254 l 14.469,-0.793 c -0.582,0.715 -1.426,1.797 -1.196,3.055 L 70.672,64.32 z" + style="fill:url(#linearGradient520);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path561" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath583"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path585" /></clipPath><mask + id="mask587"><g + id="g589"><g + clip-path="url(#clipPath583)" + id="g591"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path593" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath599"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path601" /></clipPath><clipPath + id="clipPath603"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path605" /></clipPath><clipPath + id="clipPath607"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path609" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient611" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop613" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop615" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath617"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path619" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient621" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,62.1,86.4)" + spreadMethod="pad"><stop + id="stop623" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop625" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern627"><defs + id="defs629"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask5"><g + id="g632"><g + clip-path="url(#clipPath607)" + id="g634"><g + id="g636"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient611);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path638" /></g></g></g></mask></defs><g + id="g640" /><g + id="g642"><g + clip-path="url(#clipPath603)" + id="g644"><g + id="g646"><g + id="g648"><g + id="g650" /><g + mask="url(#_mask5)" + id="g652"><g + id="g654" /><g + id="g656"><g + clip-path="url(#clipPath617)" + id="g658"><g + id="g660"><path + d="m 65.789,81.48 0,-11.035 c 10.078,0.832 13.848,6.196 22.039,6.758 l 0,4.297 -22.039,-0.02 z" + style="fill:url(#linearGradient621);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path662" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath676"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path678" /></clipPath><mask + id="mask680"><g + id="g682"><g + clip-path="url(#clipPath676)" + id="g684"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path686" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath692"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path694" /></clipPath><clipPath + id="clipPath696"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path698" /></clipPath><clipPath + id="clipPath700"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path702" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient704" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)" + spreadMethod="pad"><stop + id="stop706" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop708" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath710"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path712" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient714" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,53.686967,19.466929)" + spreadMethod="pad"><stop + id="stop716" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop718" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern720"><defs + id="defs722"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask6"><g + id="g725"><g + clip-path="url(#clipPath700)" + id="g727"><g + id="g729"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient704);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path731" /></g></g></g></mask></defs><g + id="g733" /><g + id="g735"><g + clip-path="url(#clipPath696)" + id="g737"><g + id="g739"><g + id="g741"><g + id="g743" /><g + mask="url(#_mask6)" + id="g745"><g + id="g747" /><g + id="g749"><g + clip-path="url(#clipPath710)" + id="g751"><g + id="g753"><path + d="m 81.984,13.871 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.723 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.39 14.097,-3.113 z" + style="fill:url(#radialGradient714);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path755" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient769" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)" + spreadMethod="pad"><stop + id="stop771" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop773" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient781" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,39.641505)" + spreadMethod="pad"><stop + id="stop783" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop785" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient791" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,49.378279,38.321513)" + spreadMethod="pad"><stop + id="stop793" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop795" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath811"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path813" /></clipPath><mask + id="mask815"><g + id="g817"><g + clip-path="url(#clipPath811)" + id="g819"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path821" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath827"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path829" /></clipPath><clipPath + id="clipPath831"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path833" /></clipPath><clipPath + id="clipPath835"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path837" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient839" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop841" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop843" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath845"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path847" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient849" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop851" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop853" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern855"><defs + id="defs857"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask7"><g + id="g860"><g + clip-path="url(#clipPath835)" + id="g862"><g + id="g864"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient839);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path866" /></g></g></g></mask></defs><g + id="g868" /><g + id="g870"><g + clip-path="url(#clipPath831)" + id="g872"><g + id="g874"><g + id="g876"><g + id="g878" /><g + mask="url(#_mask7)" + id="g880"><g + id="g882" /><g + id="g884"><g + clip-path="url(#clipPath845)" + id="g886"><g + id="g888"><path + d="m 61.371,18.117 c 0.055,-1.328 -0.172,-1.781 -1,-2.25 L 74.84,15.07 c -0.578,0.719 -1.426,1.801 -1.195,3.059 L 61.371,18.117 z" + style="fill:url(#linearGradient849);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path890" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath912"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path914" /></clipPath><mask + id="mask916"><g + id="g918"><g + clip-path="url(#clipPath912)" + id="g920"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path922" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath928"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path930" /></clipPath><clipPath + id="clipPath932"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path934" /></clipPath><clipPath + id="clipPath936"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path938" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient940" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop942" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop944" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath946"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path948" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient950" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,52.8,40.2)" + spreadMethod="pad"><stop + id="stop952" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop954" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern956"><defs + id="defs958"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask8"><g + id="g961"><g + clip-path="url(#clipPath936)" + id="g963"><g + id="g965"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient940);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path967" /></g></g></g></mask></defs><g + id="g969" /><g + id="g971"><g + clip-path="url(#clipPath932)" + id="g973"><g + id="g975"><g + id="g977"><g + id="g979" /><g + mask="url(#_mask8)" + id="g981"><g + id="g983" /><g + id="g985"><g + clip-path="url(#clipPath946)" + id="g987"><g + id="g989"><path + d="m 56.492,35.277 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.758 l 0,4.293 -22.035,-0.02 z" + style="fill:url(#linearGradient950);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path991" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath1005"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1007" /></clipPath><mask + id="mask1009"><g + id="g1011"><g + clip-path="url(#clipPath1005)" + id="g1013"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1015" + style="fill:#000000;fill-opacity:0.4;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1021"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1023" /></clipPath><clipPath + id="clipPath1025"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1027" /></clipPath><clipPath + id="clipPath1029"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1031" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient1033" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)" + spreadMethod="pad"><stop + id="stop1035" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1037" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></radialGradient><clipPath + id="clipPath1039"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1041" /></clipPath><radialGradient + cx="23.9375" + cy="42.6875" + r="23.757812" + fx="23.9375" + fy="42.6875" + id="radialGradient1043" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.593246,0,0,-0.131058,2.686967,9.266929)" + spreadMethod="pad"><stop + id="stop1045" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop1047" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1049"><defs + id="defs1051"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask9"><g + id="g1054"><g + clip-path="url(#clipPath1029)" + id="g1056"><g + id="g1058"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#radialGradient1033);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1060" /></g></g></g></mask></defs><g + id="g1062" /><g + id="g1064"><g + clip-path="url(#clipPath1025)" + id="g1066"><g + id="g1068"><g + id="g1070"><g + id="g1072" /><g + mask="url(#_mask9)" + id="g1074"><g + id="g1076" /><g + id="g1078"><g + clip-path="url(#clipPath1039)" + id="g1080"><g + id="g1082"><path + d="m 30.984,3.672 c 0,-1.719 -6.312,-3.113 -14.097,-3.113 -7.785,0 -14.094,1.394 -14.094,3.113 0,1.719 6.309,3.113 14.094,3.113 7.785,0 14.097,-1.394 14.097,-3.113 z" + style="fill:url(#radialGradient1043);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1084" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="31.742188" + y1="37.84375" + x2="31.859375" + y2="43.824219" + id="linearGradient1098" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)" + spreadMethod="pad"><stop + id="stop1100" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop1102" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="17.246094" + y1="6.375" + x2="39.90625" + y2="38.875" + id="linearGradient1110" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,29.441505)" + spreadMethod="pad"><stop + id="stop1112" + style="stop-color:#eeeeec;stop-opacity:1" + offset="0" /><stop + id="stop1114" + style="stop-color:#e6e6e3;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="24.007812" + cy="32.996094" + r="19" + fx="24.007812" + fy="32.996094" + id="radialGradient1120" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.755238,0,0,-0.476923,-1.621721,28.121513)" + spreadMethod="pad"><stop + id="stop1122" + style="stop-color:#555753;stop-opacity:1" + offset="0" /><stop + id="stop1124" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></radialGradient><clipPath + id="clipPath1140"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1142" /></clipPath><mask + id="mask1144"><g + id="g1146"><g + clip-path="url(#clipPath1140)" + id="g1148"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1150" + style="fill:#000000;fill-opacity:0.6;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1156"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1158" /></clipPath><clipPath + id="clipPath1160"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1162" /></clipPath><clipPath + id="clipPath1164"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1166" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient1168" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1170" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1172" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath1174"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1176" /></clipPath><linearGradient + x1="23.15625" + y1="34.574219" + x2="23.53125" + y2="40.21875" + id="linearGradient1178" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1180" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop1182" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1184"><defs + id="defs1186"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask10"><g + id="g1189"><g + clip-path="url(#clipPath1164)" + id="g1191"><g + id="g1193"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient1168);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1195" /></g></g></g></mask></defs><g + id="g1197" /><g + id="g1199"><g + clip-path="url(#clipPath1160)" + id="g1201"><g + id="g1203"><g + id="g1205"><g + id="g1207" /><g + mask="url(#_mask10)" + id="g1209"><g + id="g1211" /><g + id="g1213"><g + clip-path="url(#clipPath1174)" + id="g1215"><g + id="g1217"><path + d="m 10.371,7.918 c 0.055,-1.332 -0.172,-1.781 -1,-2.25 L 23.84,4.871 C 23.262,5.59 22.414,6.668 22.645,7.93 L 10.371,7.918 z" + style="fill:url(#linearGradient1178);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1219" /></g></g></g></g></g></g></g></g></pattern><clipPath + id="clipPath1241"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1243" /></clipPath><mask + id="mask1245"><g + id="g1247"><g + clip-path="url(#clipPath1241)" + id="g1249"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1251" + style="fill:#000000;fill-opacity:0.65;fill-rule:nonzero;stroke:none" /></g></g></mask><clipPath + id="clipPath1257"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path1259" /></clipPath><clipPath + id="clipPath1261"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1263" /></clipPath><clipPath + id="clipPath1265"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1267" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient1269" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1271" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1273" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><clipPath + id="clipPath1275"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + id="path1277" /></clipPath><linearGradient + x1="20.15625" + y1="5.101562" + x2="20.15625" + y2="26.039062" + id="linearGradient1279" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.612702,0,0,-0.612702,1.8,30)" + spreadMethod="pad"><stop + id="stop1281" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop1283" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><pattern + patternTransform="translate(0,-0.558495)" + patternUnits="userSpaceOnUse" + x="0" + y="0" + width="92" + height="92" + id="pattern1285"><defs + id="defs1287"><mask + maskUnits="userSpaceOnUse" + x="0" + y="0" + width="1" + height="1" + id="_mask11"><g + id="g1290"><g + clip-path="url(#clipPath1265)" + id="g1292"><g + id="g1294"><path + d="M 0,0 92,0 92,92 0,92 0,0 z" + style="fill:url(#linearGradient1269);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path1296" /></g></g></g></mask></defs><g + id="g1298" /><g + id="g1300"><g + clip-path="url(#clipPath1261)" + id="g1302"><g + id="g1304"><g + id="g1306"><g + id="g1308" /><g + mask="url(#_mask11)" + id="g1310"><g + id="g1312" /><g + id="g1314"><g + clip-path="url(#clipPath1275)" + id="g1316"><g + id="g1318"><path + d="m 5.492,25.078 0,-11.031 c 10.074,0.828 13.844,6.195 22.035,6.754 l 0,4.297 -22.035,-0.02 z" + style="fill:url(#linearGradient1279);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1320" /></g></g></g></g></g></g></g></g></pattern><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient6246" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient6240"><stop + id="stop6242" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop6244" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient3063" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient6246-6" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient6240-0"><stop + id="stop6242-8" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop6244-7" + style="stop-color:#ffffff;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient3063-5" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4486" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,52.918396,39.335412)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4490" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4469" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,62.233662,85.535023)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4472" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.80816813,0,0,-0.77481202,52.78538,39.808205)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4475" + xlink:href="#linearGradient6240-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.60671483,0,0,-0.58167345,1.8899147,29.19821)" /><linearGradient + x1="20.156862" + y1="5.0996137" + x2="20.156862" + y2="26.039215" + id="linearGradient4478" + xlink:href="#linearGradient6240" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0181386,0,0,-0.99062596,-0.15727934,91.443685)" /><filter + color-interpolation-filters="sRGB" + id="filter3297"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295" /></filter><linearGradient + id="linearGradient44699"><stop + id="stop44701" + style="stop-color:#000173;stop-opacity:0.93333334" + offset="0" /><stop + id="stop44703" + style="stop-color:#3575f0;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44080"><stop + id="stop44082" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop44084" + style="stop-color:#57aeff;stop-opacity:1" + offset="0.25" /><stop + id="stop44086" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop44088" + style="stop-color:#5aafff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44090"><stop + id="stop44092" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop44094" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5790"><stop + id="stop5792" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop5794" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44615"><stop + id="stop44617" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop44619" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44693"><stop + id="stop44695" + style="stop-color:#3690e6;stop-opacity:1" + offset="0" /><stop + id="stop44697" + style="stop-color:#d0e9ff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44605"><stop + id="stop44607" + style="stop-color:#d0ecff;stop-opacity:1" + offset="0" /><stop + id="stop44609" + style="stop-color:#d7f0ff;stop-opacity:1" + offset="0.5" /><stop + id="stop44611" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5810"><stop + id="stop5812" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop5814" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2300-4"><stop + id="stop2302-6" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2304-2" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44627"><stop + id="stop44629" + style="stop-color:#fffcfb;stop-opacity:1" + offset="0" /><stop + id="stop44633" + style="stop-color:#f4ad94;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient44681"><stop + id="stop44683" + style="stop-color:#ff5c38;stop-opacity:1" + offset="0" /><stop + id="stop44685" + style="stop-color:#fb7e65;stop-opacity:0.99607843" + offset="0.30397323" /><stop + id="stop44687" + style="stop-color:#cd0000;stop-opacity:0.98039216" + offset="1" /></linearGradient><linearGradient + id="linearGradient2288-5"><stop + id="stop2290-0" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2292-6" + style="stop-color:#898989;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient5834"><stop + id="stop5836" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop5838" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2318-2"><stop + id="stop2320-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2326-4" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /><stop + id="stop2322-7" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient2392-2"><stop + id="stop2394-4" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /><stop + id="stop2398-0" + style="stop-color:#000000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient2338-6"><stop + id="stop2340-2" + style="stop-color:#545454;stop-opacity:1" + offset="0" /><stop + id="stop2344-9" + style="stop-color:#545454;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient2380-9"><stop + id="stop2382-0" + style="stop-color:#838383;stop-opacity:1" + offset="0" /><stop + id="stop2384-8" + style="stop-color:#767676;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3836-1"><stop + id="stop3838-3" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /><stop + id="stop3844-1" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /><stop + id="stop3846-1" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /><stop + id="stop3840-0" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + id="linearGradient3895-3"><stop + id="stop3897-4" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /><stop + id="stop3899-0" + style="stop-color:#930000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3924-3"><stop + id="stop3926-9" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /><stop + id="stop3928-1" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + id="linearGradient3854-9"><stop + id="stop3856-6" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /><stop + id="stop3860-9" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /><stop + id="stop3862-3" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5207" + xlink:href="#linearGradient3339-4" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4"><stop + id="stop3341-7" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1"><feGaussianBlur + id="feGaussianBlur3387-7" + stdDeviation="0.14607691" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3297-9"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299-7" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293-2"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295-7" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient5673-0" + xlink:href="#linearGradient44699-4" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(38.627584,1.0111154)" /><linearGradient + id="linearGradient44699-4"><stop + id="stop44701-3" + style="stop-color:#000173;stop-opacity:0.93333334" + offset="0" /><stop + id="stop44703-4" + style="stop-color:#3575f0;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient5670-6" + xlink:href="#linearGradient44080-3" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1396.4291,-948.41724)" /><linearGradient + id="linearGradient44080-3"><stop + id="stop44082-5" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop44084-5" + style="stop-color:#57aeff;stop-opacity:1" + offset="0.25" /><stop + id="stop44086-1" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop44088-4" + style="stop-color:#5aafff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5667-0" + xlink:href="#linearGradient44090-0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-408.92103,-635.92247)" /><linearGradient + id="linearGradient44090-0"><stop + id="stop44092-7" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop44094-9" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5664-4" + xlink:href="#linearGradient44090-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,574.52515,-635.92247)" /><linearGradient + id="linearGradient6984"><stop + id="stop6986" + style="stop-color:#0926bb;stop-opacity:1" + offset="0" /><stop + id="stop6988" + style="stop-color:#6bb5fe;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5661-5" + xlink:href="#linearGradient44615-6" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(321.10111,-881.68159)" /><linearGradient + id="linearGradient44615-6"><stop + id="stop44617-5" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop44619-1" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-35.566662" + y1="76.562927" + x2="-35.566662" + y2="84.910484" + id="linearGradient5658-1" + xlink:href="#linearGradient44693-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1784451,0,0,0.9316118,126.37167,5.1827454)" /><linearGradient + id="linearGradient44693-1"><stop + id="stop44695-8" + style="stop-color:#3690e6;stop-opacity:1" + offset="0" /><stop + id="stop44697-1" + style="stop-color:#d0e9ff;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient5655-7" + xlink:href="#linearGradient44605-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.856113,-0.0637264,0.1161478,1.5603521,-422.20596,-1003.4503)" /><linearGradient + id="linearGradient44605-2"><stop + id="stop44607-0" + style="stop-color:#d0ecff;stop-opacity:1" + offset="0" /><stop + id="stop44609-9" + style="stop-color:#d7f0ff;stop-opacity:1" + offset="0.5" /><stop + id="stop44611-1" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="-246.57739" + y1="958.07971" + x2="-248.7769" + y2="964.61743" + id="linearGradient5652-7" + xlink:href="#linearGradient44615-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,-155.83313,-881.68159)" /><linearGradient + id="linearGradient7004"><stop + id="stop7006" + style="stop-color:#2f68fa;stop-opacity:1" + offset="0" /><stop + id="stop7008" + style="stop-color:#c7d5fb;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="170.29684" + y1="219.20184" + x2="75.611801" + y2="140.29272" + id="linearGradient5645-3" + xlink:href="#linearGradient2300-4-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.32740907,0.15721672,0.11848357,0.24674603,115.25407,-34.956172)" /><linearGradient + id="linearGradient2300-4-8"><stop + id="stop2302-6-8" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2304-2-7" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient5640-1" + xlink:href="#linearGradient44627-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,220.99205,-95.843466)" /><linearGradient + id="linearGradient44627-2"><stop + id="stop44629-5" + style="stop-color:#fffcfb;stop-opacity:1" + offset="0" /><stop + id="stop44633-6" + style="stop-color:#f4ad94;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="60.126968" + y1="81.913818" + x2="60.126968" + y2="47.542713" + id="linearGradient5642-0" + xlink:href="#linearGradient44681-0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-6.6306562,-46.588225)" /><linearGradient + id="linearGradient44681-0"><stop + id="stop44683-0" + style="stop-color:#ff5c38;stop-opacity:1" + offset="0" /><stop + id="stop44685-6" + style="stop-color:#fb7e65;stop-opacity:0.99607843" + offset="0.30397323" /><stop + id="stop44687-1" + style="stop-color:#cd0000;stop-opacity:0.98039216" + offset="1" /></linearGradient><linearGradient + x1="81.846077" + y1="136.15834" + x2="168.78268" + y2="53.432808" + id="linearGradient5637-0" + xlink:href="#linearGradient2288-5-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient + id="linearGradient2288-5-4"><stop + id="stop2290-0-2" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2292-6-5" + style="stop-color:#898989;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="366.57416" + y1="39.730881" + x2="168.78265" + y2="53.4328" + id="linearGradient5634-9" + xlink:href="#linearGradient2300-4-8" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.19109066,0.09175867,0.20300624,0.42276738,115.25407,-34.956172)" /><linearGradient + id="linearGradient7028"><stop + id="stop7030" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop7032" + style="stop-color:#414141;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="263.96207" + y1="41.317993" + x2="24.068567" + y2="220.45784" + id="linearGradient5631-1" + xlink:href="#linearGradient2318-2-2" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient + id="linearGradient2318-2-2"><stop + id="stop2320-8-2" + style="stop-color:#000000;stop-opacity:1" + offset="0" /><stop + id="stop2326-4-2" + style="stop-color:#373737;stop-opacity:1" + offset="0.5" /><stop + id="stop2322-7-5" + style="stop-color:#000000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="136.33336" + y1="113.51798" + x2="173.3575" + y2="164.5226" + id="linearGradient5628-3" + xlink:href="#linearGradient2392-2-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.2973758,0.14279496,0.13044969,0.27166614,115.25407,-34.956172)" /><linearGradient + id="linearGradient2392-2-4"><stop + id="stop2394-4-5" + style="stop-color:#000000;stop-opacity:0.43298969" + offset="0" /><stop + id="stop2398-0-5" + style="stop-color:#000000;stop-opacity:0" + offset="1" /></linearGradient><radialGradient + cx="180.07829" + cy="176.38765" + r="53.050598" + fx="180.07837" + fy="177.18346" + id="radialGradient5625-6" + xlink:href="#linearGradient2338-6-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient + id="linearGradient2338-6-6"><stop + id="stop2340-2-6" + style="stop-color:#545454;stop-opacity:1" + offset="0" /><stop + id="stop2344-9-3" + style="stop-color:#545454;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="219.53198" + y1="120.31494" + x2="211.80861" + y2="127.47651" + id="linearGradient5622-2" + xlink:href="#linearGradient2380-9-7" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3015622,0.14480526,0.12863859,0.26789468,115.25407,-34.956172)" /><linearGradient + id="linearGradient2380-9-7"><stop + id="stop2382-0-1" + style="stop-color:#838383;stop-opacity:1" + offset="0" /><stop + id="stop2384-8-9" + style="stop-color:#767676;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="144.45633" + y1="98.692307" + x2="155.86334" + y2="161.02338" + id="linearGradient5618-0" + xlink:href="#linearGradient3836-1-6" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient + id="linearGradient3836-1-6"><stop + id="stop3838-3-7" + style="stop-color:#c90000;stop-opacity:1" + offset="0" /><stop + id="stop3844-1-7" + style="stop-color:#ff7474;stop-opacity:1" + offset="0.5" /><stop + id="stop3846-1-8" + style="stop-color:#c90000;stop-opacity:1" + offset="0.75" /><stop + id="stop3840-0-7" + style="stop-color:#fa5555;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5615-9" + xlink:href="#linearGradient3895-3-4" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.52106,-35.084377)" /><linearGradient + id="linearGradient3895-3-4"><stop + id="stop3897-4-0" + style="stop-color:#930000;stop-opacity:0.50515461" + offset="0" /><stop + id="stop3899-0-9" + style="stop-color:#930000;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="190.18034" + y1="96.076317" + x2="156.40744" + y2="143.56932" + id="linearGradient5612-8" + xlink:href="#linearGradient3924-3-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.14979776,0.07193037,0.25896642,0.53930685,115.19546,-34.989862)" /><linearGradient + id="linearGradient3924-3-5"><stop + id="stop3926-9-6" + style="stop-color:#ff6e6e;stop-opacity:1" + offset="0" /><stop + id="stop3928-1-9" + style="stop-color:#ff7171;stop-opacity:0" + offset="1" /></linearGradient><linearGradient + x1="137.93805" + y1="118.24712" + x2="183.56607" + y2="110.30299" + id="linearGradient5609-6" + xlink:href="#linearGradient3854-9-1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.17353113,0.0833269,0.22354827,0.46554701,115.25407,-34.956172)" /><linearGradient + id="linearGradient3854-9-1"><stop + id="stop3856-6-2" + style="stop-color:#a00000;stop-opacity:1" + offset="0" /><stop + id="stop3860-9-0" + style="stop-color:#c90000;stop-opacity:0" + offset="0.75" /><stop + id="stop3862-3-8" + style="stop-color:#a00000;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5207-5" + xlink:href="#linearGradient3339-4-4" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4-4"><stop + id="stop3341-7-3" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6-0" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3-2" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1-2"><feGaussianBlur + id="feGaussianBlur3387-7-8" + stdDeviation="0.14607691" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3297-4"><feGaussianBlur + stdDeviation="0.26694977" + id="feGaussianBlur3299-77" /></filter><filter + color-interpolation-filters="sRGB" + id="filter3293-5"><feGaussianBlur + stdDeviation="0.355" + id="feGaussianBlur3295-8" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient5698" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><linearGradient + id="linearGradient3197"><stop + id="stop3199" + style="stop-color:#002f32;stop-opacity:1" + offset="0" /><stop + id="stop3201" + style="stop-color:#045b04;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient5695" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + id="linearGradient3205"><stop + id="stop3207" + style="stop-color:#2c8300;stop-opacity:1" + offset="0" /><stop + id="stop3215" + style="stop-color:#3db800;stop-opacity:1" + offset="0.25" /><stop + id="stop3213" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3209" + style="stop-color:#69cf35;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5692" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + id="linearGradient3219"><stop + id="stop3221" + style="stop-color:#0e7309;stop-opacity:1" + offset="0" /><stop + id="stop3223" + style="stop-color:#70d13e;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient5689" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><linearGradient + id="linearGradient7410"><stop + id="stop7412" + style="stop-color:#0e7309;stop-opacity:1" + offset="0" /><stop + id="stop7414" + style="stop-color:#70d13e;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient5683" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><linearGradient + id="linearGradient3261"><stop + id="stop3263" + style="stop-color:#ffffff;stop-opacity:0" + offset="0" /><stop + id="stop3269" + style="stop-color:#ffffff;stop-opacity:0" + offset="0.5" /><stop + id="stop3265" + style="stop-color:#ffffff;stop-opacity:1" + offset="1" /></linearGradient><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient5677" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + id="linearGradient3327"><stop + id="stop3329" + style="stop-color:#ffffff;stop-opacity:1" + offset="0" /><stop + id="stop3335" + style="stop-color:#fdd99a;stop-opacity:1" + offset="0.5" /><stop + id="stop3331" + style="stop-color:#c39539;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient5679" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + id="linearGradient3319"><stop + id="stop3321" + style="stop-color:#7d491f;stop-opacity:1" + offset="0" /><stop + id="stop44679" + style="stop-color:#87570f;stop-opacity:1" + offset="0.5" /><stop + id="stop3323" + style="stop-color:#926600;stop-opacity:1" + offset="1" /></linearGradient><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient5710" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + id="linearGradient3339-4-5"><stop + id="stop3341-7-9" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="0" /><stop + id="stop3347-6-7" + style="stop-color:#ffffff;stop-opacity:1" + offset="0.5" /><stop + id="stop3343-3-5" + style="stop-color:#e8e8e8;stop-opacity:1" + offset="1" /></linearGradient><filter + color-interpolation-filters="sRGB" + id="filter3385-1-3"><feGaussianBlur + id="feGaussianBlur3387-7-8-5" + stdDeviation="0.14607691" /></filter><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7597" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7599" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7601" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7603" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7605" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7607" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7609" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7611" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7647" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7649" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7651" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7653" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7655" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7657" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7659" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7661" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /><linearGradient + x1="83.28125" + y1="123.09795" + x2="83.28125" + y2="66.310989" + id="linearGradient7697" + xlink:href="#linearGradient3197" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-200.71307,-35.857716)" /><radialGradient + cx="491.52231" + cy="670.92523" + r="36.426601" + fx="491.52231" + fy="670.92523" + id="radialGradient7699" + xlink:href="#linearGradient3205" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.0237831,-1.9580539,0,1157.0884,-985.28607)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7701" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-648.26169,-672.7913)" /><linearGradient + x1="517.02167" + y1="705.48438" + x2="517.02167" + y2="745.30084" + id="linearGradient7703" + xlink:href="#linearGradient3219" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1,0,0,1,335.18449,-672.7913)" /><radialGradient + cx="479.68311" + cy="709.6579" + r="5.0058851" + fx="479.68311" + fy="709.6579" + id="radialGradient7705" + xlink:href="#linearGradient3261" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2339764,-0.1516032,0.1907967,1.5529925,-895.77655,-992.94328)" /><radialGradient + cx="53.60223" + cy="59.728882" + r="17.834057" + fx="53.60223" + fy="59.728882" + id="radialGradient7707" + xlink:href="#linearGradient3327" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0,2.4772178,-2.4522929,0,-18.348606,-132.71229)" /><linearGradient + x1="41.945538" + y1="46.665127" + x2="41.945538" + y2="82.333244" + id="linearGradient7709" + xlink:href="#linearGradient3319" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4960409,0,0,1.4960409,-245.97131,-83.457056)" /><linearGradient + x1="28.429483" + y1="61.798298" + x2="58.95916" + y2="61.798298" + id="linearGradient7711" + xlink:href="#linearGradient3339-4-5" + gradientUnits="userSpaceOnUse" /></defs><g + transform="matrix(1.25,0,0,-1.25,0,114.30188)" + id="g10"><g + id="g14"><g + id="g16" /><g + mask="url(#mask22)" + id="g30"><g + id="g32" /><g + id="g99"><g + clip-path="url(#clipPath34)" + id="g101"><g + id="g103"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path105" + style="fill:url(#pattern62);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g107"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g109"><path + d="m 14.551,35.969 c 0,0 1.234,4.996 -3.903,5.043 -2.46,0.023 -1.957,4.086 -1.957,4.086 l 31.227,-0.036 c 0,0 0.422,-3.941 -2.047,-3.988 -5.051,-0.094 -3.859,-5.168 -3.859,-5.168 l -19.461,0.063 z" + id="path117" + style="fill:url(#linearGradient111);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g119"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g121"><path + d="m 4.949,3.52 38.598,0 c 2.047,0 3.543,1.445 3.543,3.671 l 0.012,26.528 c 0,1.711 -0.536,2.242 -2.063,2.242 L 3.574,35.941 C 2.383,35.91 1.531,35.441 1.516,33.895 L 1.531,7 c 0,-1.793 1.559,-3.48 3.418,-3.48 z" + id="path129" + style="fill:url(#linearGradient123);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g><g + id="g131"><path + d="m 5.574,83.848 37.453,0 0,-23.277 -37.453,0 0,23.277 z" + id="path139" + style="fill:url(#radialGradient133);fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g141"><path + d="m 5.574,7.594 37.453,0 0,23.277 -37.453,0 0,-23.277 z" + id="path143" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g145"><path + d="m 4.934,4.398 c -1.325,0 -2.532,1.309 -2.532,2.594 l 0,26.918 c 0.008,0.613 0.149,0.801 0.286,0.918 0.132,0.113 0.425,0.203 0.886,0.223 l 0.031,0 41.442,0.031 c 0.66,0 0.867,-0.102 0.949,-0.191 0.082,-0.086 0.219,-0.407 0.219,-1.168 l 0,-26.543 c 0,-1.828 -1.024,-2.782 -2.656,-2.782 l -38.625,0 z" + id="path147" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g149"><g + id="g151" /><g + mask="url(#mask157)" + id="g165"><g + id="g167" /><g + id="g234"><g + clip-path="url(#clipPath169)" + id="g236"><g + id="g238"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path240" + style="fill:url(#pattern197);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g242"><path + d="m 10.113,42.004 c 6.789,0.004 28.141,0 28.141,0" + id="path244" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" /></g><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g246"><path + d="m 9.766,43.027 c 6.789,0 29.074,0 29.074,0" + id="path248" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g + id="g250"><g + id="g252" /><g + mask="url(#mask258)" + id="g266"><g + id="g268" /><g + id="g335"><g + clip-path="url(#clipPath270)" + id="g337"><g + id="g339"><path + d="m 0,0 91.50972,0 0,91.441505 L 0,91.441505 0,0 z" + id="path341" + style="fill:url(#pattern298);fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></g><g + id="g765" + transform="matrix(1.3320395,0,0,1.3320395,-17.704015,-12.588118)"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g767"><path + d="m 61.609,73.57 c 0,0 0.743,3.024 -2.363,3.055 -1.488,0.012 -1.184,2.469 -1.184,2.469 l 18.899,-0.016 c 0,0 0.258,-2.387 -1.238,-2.418 -3.059,-0.055 -2.336,-3.129 -2.336,-3.129 L 61.609,73.57 z" + id="path775" + style="fill:url(#linearGradient769);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /></g></g><g + id="g777" + transform="matrix(1.3320395,0,0,1.3320395,-17.704015,-12.588118)"><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g779"><path + d="m 55.797,53.93 23.359,0 c 1.242,0 2.145,0.875 2.145,2.222 l 0.008,16.055 c 0,1.039 -0.325,1.359 -1.247,1.359 L 54.965,73.555 c -0.723,-0.02 -1.238,-0.305 -1.246,-1.239 l 0.008,-16.277 c 0,-1.09 0.945,-2.109 2.07,-2.109 z" + id="path787" + style="fill:url(#linearGradient781);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /></g></g><g + id="g789" + transform="matrix(1.3320395,0,0,1.3320395,-17.704015,-12.588118)"><path + d="m 56.172,35.047 22.672,0 0,-14.094 -22.672,0 0,14.094 z" + id="path797" + style="fill:url(#radialGradient791);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /></g><g + transform="matrix(1.3320395,0,0,-1.3320395,-17.704015,109.21558)" + id="g799"><path + d="m 56.172,56.395 22.672,0 0,14.094 -22.672,0 0,-14.094 z" + id="path801" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /></g><g + transform="matrix(1.3320395,0,0,-1.3320395,-17.704015,109.21558)" + id="g803"><path + d="m 55.785,54.461 c -0.801,0 -1.531,0.793 -1.531,1.57 l 0,16.293 c 0.004,0.371 0.09,0.485 0.172,0.555 0.082,0.07 0.258,0.125 0.539,0.137 l 0.019,0 25.082,0.019 c 0.399,0 0.524,-0.062 0.575,-0.117 0.047,-0.051 0.132,-0.246 0.132,-0.707 l 0,-16.066 c 0,-1.106 -0.617,-1.684 -1.609,-1.684 l -23.379,0 z" + id="path805" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /></g><g + transform="matrix(1.3320395,0,0,-1.3320395,-17.704015,109.21558)" + id="g900"><path + d="m 58.922,77.227 c 4.109,0 17.031,0 17.031,0" + id="path902" + style="fill:none;stroke:#8d8d8f;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.43902402;stroke-dasharray:none" + inkscape:connector-curvature="0" /></g><g + transform="matrix(1.3320395,0,0,-1.3320395,-17.704015,109.21558)" + id="g904"><path + d="m 58.711,77.844 c 4.109,0 17.598,0 17.598,0" + id="path906" + style="fill:none;stroke:#ffffff;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /></g><g + id="g1239" /><g + id="g1255" /><g + transform="matrix(1,0,0,-1,0,91.441505)" + id="g1334"><path + d="m 56.102,52.199 -4.903,-17.898 -3.801,5.597 -6,1.602 14.704,10.699 z" + id="path1336" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><path + d="m 5.9755084,83.487599 0,-17.839038 C 22.718232,66.990115 28.98411,75.666186 42.596557,76.572642 l 0,6.946035 -36.6210486,-0.03108 z" + id="path4073" + style="opacity:0.65;fill:url(#linearGradient4478);fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 57.653403,33.585402 0,-13.952695 c 13.289878,1.049289 18.263545,7.835225 29.0687,8.544203 l 0,5.432799 -29.0687,-0.02431 z" + id="path4484" + style="opacity:0.65;fill:url(#linearGradient4472);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><g + transform="matrix(0.2730524,0,0,-0.2730524,1.850926,90.906749)" + id="g5712"><path + d="m 83.554544,24.461435 c -14.71669,0 -26.69498,11.97829 -26.69498,26.69498 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.694966,-11.97829 26.694966,-26.69498 0,-14.71669 -11.978286,-26.69498 -26.694966,-26.69498 z" + id="path44010" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-9)" + inkscape:connector-curvature="0" /><path + d="m 83.471334,61.729865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.750005 l 0,6.125 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125 c 0,-21.402545 -17.55305,-38.750005 -39.187496,-38.750005 z" + id="path44012" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-2)" + inkscape:connector-curvature="0" /><path + d="m 82.721334,60.479865 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125005 c 0,6.05287 6.27536,18.75004 28.90625,18.75004 l 20.53125,0 c 22.630376,0 28.937496,-12.07968 28.937496,-18.75004 l 0,-6.125005 c 0,-21.40254 -17.55305,-38.75 -39.187496,-38.75 z" + id="path44014" + style="fill:url(#linearGradient5673-0);fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 82.721334,62.640575 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.616555 c 0,5.55039 5.83324,17.19346 26.8697,17.19346 l 19.08475,0 c 21.035986,0 26.898746,-11.07683 26.898746,-17.19346 l 0,-5.616555 c 0,-19.62582 -16.31638,-35.53322 -36.426596,-35.53322 z" + id="path44016" + style="fill:url(#radialGradient5670-6);fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 100.20776,69.951755 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.652675" + id="path44018" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5667-0);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + d="m 65.396354,69.951755 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.652675" + id="path44020" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient5664-4);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + inkscape:connector-curvature="0" /><path + d="m 76.029544,74.153135 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" + id="path44022" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5661-5);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /><path + d="m 82.802063,84.286357 -6.375115,-8.729195 12.750228,0 -6.375113,8.729195 z" + id="path44024" + style="fill:url(#linearGradient5658-1);fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 66.167774,68.733775 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" + id="path44028" + style="fill:url(#radialGradient5655-7);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 89.238444,74.153135 c 2.3027,1.97418 4.96223,3.5307 3.72122,8.28271 5.66073,-1.14662 9.949706,-8.89011 6.36208,-14.40472 l -10.0833,6.12201 z" + id="path44621" + style="fill:#9dcfff;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5652-7);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /><path + d="M 94.866576,3.8320402 125.6365,30.998333 84.545268,42.990242 53.315632,16.353847 94.866576,3.8320402 z" + id="path2368" + style="fill:url(#linearGradient5645-3);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 108.48254,49.905192 a 25.680481,25.680481 0 1 1 -51.360957,0 25.680481,25.680481 0 1 1 51.360957,0 z" + id="path44030" + style="fill:url(#radialGradient5640-1);fill-opacity:1;stroke:url(#linearGradient5642-0);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + inkscape:connector-curvature="0" /><path + d="M 95.339339,2.2381767 126.15042,28.890606 125.62204,31.068045 94.816591,4.063144 95.339339,2.2381767 z" + id="path1526" + style="fill:url(#linearGradient5637-0);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="M 95.339339,2.2381767 53.897375,14.26818 53.368996,16.44562 94.816591,4.063144 95.339339,2.2381767 z" + id="path2296" + style="fill:url(#linearGradient5634-9);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2308" + style="fill:url(#linearGradient5631-1);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2390" + style="fill:url(#linearGradient5628-3);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 106.96919,29.007174 c 0,0 -0.0232,-2.961888 -2.87177,-5.616365 -2.84859,-2.654478 -14.25984,-12.214966 -33.764067,-5.122836 -1.779256,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660761 -4.034895,9.807255 -4.034895,9.807255 0,0 14.650436,1.00974 20.024613,13.294259 12.141748,-9.677716 23.688821,-4.204771 23.688821,-4.204771 l -0.74633,-10.659293 z" + id="path2334" + style="fill:url(#radialGradient5625-6);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 107.19478,29.038759 c 0,0 -0.0232,-2.96189 -2.87177,-5.616365 -2.84859,-2.654477 -14.259844,-12.214967 -33.764071,-5.122837 -1.779252,1.029254 -1.637138,0.961013 -2.296372,2.501751 -1.170716,2.660762 -4.034895,9.807253 -4.034895,9.807253 0,0 14.650436,1.009743 20.024613,13.294259 12.141744,-9.677712 23.688825,-4.204767 23.688825,-4.204767 l -0.74633,-10.659294 z" + id="path2378" + style="fill:url(#linearGradient5622-2);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 64.162631,30.18291 c 0.149332,0.01059 14.629755,1.063358 19.976289,13.284672 11.922076,-9.502622 23.13746,-4.443379 23.5442,-4.255555 l 0.0324,0.45444 c 0,0 -11.547076,-5.472945 -23.688824,4.204771 C 78.652529,31.586719 64.002093,30.576979 64.002093,30.576979 c 0,0 0.15161,-0.371808 0.160545,-0.394069 z" + id="path2346" + style="fill:#4a4a4a;fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 113.60446,18.082424 -1.90168,-1.445041 c 3.80497,-1.738734 7.43718,0.715259 6.56708,4.719089 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 -0.42667,-1.981163 -0.26766,-3.106818 0.15902,-1.125658 1.60584,-1.208306 1.60584,-1.208306 -0.003,0.176234 0.87053,-5.232949 1.07604,-6.640612 0.20551,-1.407664 -1.17557,-3.094485 -2.97083,-2.199306 z" + id="path2312" + style="fill:url(#linearGradient5618-0);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 115.91213,31.697338 c -0.0283,0.09625 -0.0898,0.176977 -0.0753,0.298474 0.004,0.05087 0.0627,0.104062 0.0857,0.155615 -0.22808,0.653732 -0.85238,4.783698 1.5573,9.275224 2.58485,5.743692 6.17379,11.446673 6.67497,12.239195 l -0.1105,0.02029 0.0473,0.07568 -0.0838,0.0075 c -1.74796,-2.671528 -5.72681,-9.566492 -7.26492,-13.103586 -1.77943,-4.092008 -1.17869,-7.872147 -1.17869,-7.872147 0,0 0.0503,-0.585045 0.0905,-0.972506 l 0.25759,-0.123687 z m -0.53294,0.255905 c -0.0271,0.148082 -0.031,0.106964 -0.0618,0.281061 -0.77301,5.472219 0.0637,7.784838 0.11098,7.947636 1.94994,4.370678 4.95692,10.04966 7.46633,15.116404 l -0.0945,0.121887 -0.0483,-0.0096 c -0.5523,-1.068673 -6.26702,-12.131795 -7.3696,-14.550761 -1.1561,-2.536393 -0.37181,-8.172154 -0.37181,-8.172154 0,0 0.0816,-0.42384 0.12,-0.615067 l 0.2487,-0.119421 z m -0.39081,0.187665 c -0.0306,0.130484 -0.0222,0.09744 -0.0568,0.245885 -0.98219,4.521543 -1.12277,6.100908 -0.27012,8.906683 l 6.93973,14.975782 -0.16129,0.164884 c -0.37775,-0.7712 -5.57624,-11.39103 -6.96106,-15.020189 -1.43567,-3.762422 0.19657,-8.991591 0.19657,-8.991591 l 0.0199,-0.140706 0.29311,-0.140748 z m 0.99844,0.121722 c 0.0529,0.08014 0.0814,0.164318 0.16349,0.249406 -0.0109,0.10155 -0.41901,4.037563 1.62811,7.601687 3.30572,6.554234 5.62206,9.753525 6.88943,11.229006 l -0.17979,-0.05576 0.29245,0.17655 c 0.31865,0.362827 0.53553,0.579229 0.70221,0.733969 l -0.10906,0.205391 c -3.0155,-2.788048 -7.67376,-11.678343 -8.65681,-13.976383 -0.93689,-2.190161 -0.78502,-5.120942 -0.73003,-6.163868 z m 0.17663,0.254022 c 0.0928,0.0955 0.20817,0.19957 0.32125,0.30481 -0.0584,0.327528 -0.008,2.619958 0.65763,4.351427 3.59805,8.221928 7.67344,12.549433 9.17238,13.980214 l -0.0949,0.143916 c -5.65706,-5.243362 -8.61552,-12.638435 -9.23491,-13.928329 -0.62085,-1.292946 -0.81735,-4.779678 -0.8215,-4.852038 z m 0.42111,0.398955 c 0.0105,0.0099 0.0153,0.02121 0.026,0.03126 0.54782,2.496948 1.35363,3.685882 1.84436,4.273434 0.003,0.0777 0.0112,0.16213 0.0562,0.344646 -0.22166,-0.32497 -0.32388,-0.389714 -0.33083,-0.256486 -1.15972,-2.095324 -1.45557,-3.836954 -1.59566,-4.392858 z" + id="path3870" + style="fill:url(#linearGradient5615-9);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 115.85352,31.663647 c -0.0283,0.09625 -0.0898,0.176979 -0.0753,0.298476 0.0136,0.184351 0.17979,0.373322 0.38738,0.579103 0.0136,0.06266 0.023,0.09735 0.037,0.168058 0.54619,2.757078 1.41267,3.989248 1.9272,4.605283 0.003,0.09157 -0.0166,0.121374 0.064,0.406472 0.19472,0.41613 0.33888,0.683193 0.52495,1.070479 -0.13062,-0.153536 -0.32065,-0.428383 -0.67134,-1.011121 -1.52995,-2.542366 -1.77339,-5.051088 -1.89601,-5.177698 -0.0955,-0.263292 -0.0761,2.732998 0.66584,4.664456 3.66253,8.369271 7.8511,12.742461 9.28077,14.092121 l -0.0949,0.143913 c -5.73254,-5.249092 -8.71969,-12.741574 -9.34329,-14.040234 -0.62731,-1.30638 -0.82968,-4.891829 -0.82968,-4.891832 0,0 -0.45066,4.026286 1.62315,7.636865 4.45297,8.828902 7.13324,11.594718 7.83436,12.218056 l -0.11332,0.196508 C 122.164,49.96029 117.3874,40.848354 116.39171,38.520764 c -1.00935,-2.35954 -0.76537,-5.787484 -0.7283,-6.547252 -0.12263,-0.126609 -1.15961,4.606322 1.49125,9.547401 2.58485,5.743694 6.1738,11.446675 6.67498,12.239197 l -0.1105,0.02029 0.27578,0.392223 -0.0764,0.09133 c -1.6443,-2.454711 -5.91251,-9.85128 -7.50091,-13.503989 -1.77942,-4.092007 -1.17868,-7.872149 -1.17869,-7.872149 0,0 0.0503,-0.585043 0.0905,-0.972507 l 0.52406,-0.251641 z m -0.7994,0.383859 c -0.0271,0.148081 -0.031,0.106966 -0.0618,0.281063 -0.77301,5.472217 0.0637,7.784832 0.11099,7.947633 1.96639,4.407561 5.0083,10.150784 7.5303,15.249641 l -0.20679,-0.02093 c -0.5523,-1.068673 -6.26703,-12.131795 -7.3696,-14.550762 -1.15611,-2.53639 -0.37182,-8.172152 -0.37182,-8.172152 0,0 0.0816,-0.423842 0.12001,-0.615066 l 0.2487,-0.119424 z m -0.39082,0.187664 c -0.0306,0.130488 -0.0222,0.09744 -0.0568,0.245888 -0.98219,4.521544 -1.12277,6.100905 -0.27013,8.906678 l 6.98665,15.073486 -0.15702,0.17377 c -0.29822,-0.608735 -5.61583,-11.467249 -7.01224,-15.126773 -1.43567,-3.762428 0.19656,-8.991591 0.19656,-8.991591 l 0.0199,-0.14071 0.29312,-0.140748 z" + id="path3920" + style="fill:url(#linearGradient5612-8);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 113.60446,18.082424 -1.27483,-0.959065 c 3.80497,-1.738734 5.70753,0.846273 5.94023,4.233113 l -1.22689,5.969541 c 0.0432,0.587925 0.46457,1.781249 0.0473,2.502842 -0.10735,1.184875 -1.3604,1.258502 -1.25176,2.164778 0.0432,0.587928 1.47788,1.196989 1.72301,2.387496 1.28414,1.824459 3.37872,5.88301 5.33931,7.295208 1.50561,0.927498 1.91686,1.943279 3.66098,1.18229 0,0 0.6432,-0.265733 0.69931,0.363737 -4.78339,3.695975 -10.00982,-9.009253 -9.00872,-5.467637 6.68202,14.27976 8.21084,11.272157 8.55487,11.806497 0.34402,0.534341 -0.051,0.986356 -0.051,0.986356 l -0.52871,-0.0085 0.31272,0.287043 -0.61385,0.906853 -1.43837,-0.446058 1.1172,0.687721 -0.50866,0.94379 -0.9153,-0.08514 0.59413,0.3268 -0.11363,0.491771 -0.88399,0.162157 0.27578,0.392223 -0.39504,0.452019 -0.6965,-0.539975 0.48614,0.466097 -0.75596,0.975096 -1.02048,-0.122078 0.23885,0.497407 -1.04019,1.111575 -1.12285,-0.335247 c 0,0 -6.11605,-12.190603 -6.8614,-16.29223 -0.74535,-4.101625 0.96815,-7.63512 0.96815,-7.63512 0,0 1.05742,0.01691 0.30676,-1.546372 -1.12002,-0.511482 0.0153,-2.06224 0.17434,-3.187895 0.15901,-1.125658 1.16384,-1.127229 1.16384,-1.127229 0.77459,0.06526 1.26996,-4.856376 1.47547,-6.264039 0.20551,-1.407664 -1.575,-3.471058 -3.37026,-2.575879 z" + id="use3848" + style="fill:url(#linearGradient5609-6);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 114.28311,29.943753 c 0.49479,-0.31028 1.3331,-0.405599 2.65708,0.298067 -0.28917,0.677244 -0.92757,0.954658 -1.04227,1.516989 -0.52987,0.05596 -1.07253,0.09282 -1.54418,0.107535 -0.0359,-0.185534 -0.0611,-0.35482 -0.19267,-0.628878 -0.26879,-0.122748 -0.42825,-0.300007 -0.52061,-0.515126 0.0395,-0.111579 0.19072,-0.495192 0.64265,-0.778587 z" + id="path3946" + style="fill:#7f0000;fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 114.69752,30.761267 c 0.54914,-0.263686 1.20881,-0.03202 1.4725,0.517115 0.20064,0.41784 0.11214,0.890735 -0.18245,1.213425 -0.3225,-0.311108 -0.80766,-0.41008 -1.2351,-0.204831 -0.1342,0.06444 -0.24525,0.145845 -0.33893,0.250191 -0.0889,-0.08724 -0.17614,-0.184704 -0.23313,-0.303405 -0.26369,-0.549131 -0.032,-1.208808 0.51711,-1.472495 z" + id="path3937" + style="fill:#f6ca12;fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><path + d="m 115.34938,30.99509 c 2.45474,1.059132 -2.30147,0.635082 0,0 z" + id="path3942" + style="fill:#f6f1d7;fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /><g + transform="matrix(0.92615143,0,0,0.79615016,38.327829,16.316524)" + id="g3842"><path + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" + id="path3337" + style="fill:url(#linearGradient5207-5);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:connector-curvature="0" /><path + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + id="path3360" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-2)" + inkscape:connector-curvature="0" /><path + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" + id="path3375" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /></g></g><g + id="g7615" + transform="matrix(0.22939444,0,0,-0.22939444,108.39401,32.948366)"><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3297-4)" + id="path7617" + d="m -155.78611,-12.407395 c -14.71669,0 -26.69498,11.97828915 -26.69498,26.694979 0,14.71669 11.97829,26.69498 26.69498,26.69498 14.71668,0 26.69497,-11.97829 26.69497,-26.69498 0,-14.71668985 -11.97829,-26.694979 -26.69497,-26.694979 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0.50196078;stroke:none;filter:url(#filter3293-5)" + id="path7619" + d="m -155.32695,24.861034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7647);fill-opacity:1;stroke:none" + id="path7621" + d="m -156.61932,23.611034 c -21.63445,0 -39.1875,17.34747 -39.1875,38.75 l 0,6.125 c 0,6.05287 6.27536,18.750005 28.90625,18.750005 l 20.53125,0 c 22.63038,0 28.9375,-12.079645 28.9375,-18.750005 l 0,-6.125 c 0,-21.40254 -17.55305,-38.75 -39.1875,-38.75 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7649);fill-opacity:1;stroke:none" + id="path7623" + d="m -156.61932,25.771744 c -20.11022,0 -36.4266,15.9074 -36.4266,35.53322 l 0,5.61655 c 0,5.55039 5.83324,17.193505 26.8697,17.193505 l 19.08475,0 c 21.03599,0 26.89875,-11.076875 26.89875,-17.193505 l 0,-5.61655 c 0,-19.62582 -16.31638,-35.53322 -36.4266,-35.53322 z" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7651);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7625" + d="m -139.13289,33.082924 c 8.46364,9.0621 14.91528,24.09751 16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:url(#linearGradient7653);stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7627" + d="m -173.9443,33.082924 c -8.46364,9.0621 -14.91528,24.09751 -16.80551,38.65267" /><path + inkscape:connector-curvature="0" + style="fill:#c5ffbd;fill-opacity:1;fill-rule:evenodd;stroke:#52aa5d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7629" + d="m -163.31111,37.284304 c -2.3027,1.97418 -4.96223,3.5307 -3.72122,8.28271 -5.66073,-1.14662 -9.94971,-8.89011 -6.36208,-14.40472 l 10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:#ff2600;fill-opacity:1;stroke:#800000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7631" + d="m -156.53859,49.903956 -6.32332,-10.952307 12.64663,-1e-6 -6.32331,10.952308 z" /><path + inkscape:connector-curvature="0" + style="fill:#a0ff74;fill-opacity:1;fill-rule:evenodd;stroke:#5eaa5e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7633" + d="m -150.1765,37.284304 c 2.78286,1.49402 6.04258,3.41066 4.80157,8.16267 4.9405,-2.10693 8.86936,-8.77007 5.28173,-14.28468 l -10.0833,6.12201 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7655);fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7635" + d="m -173.17288,31.864944 9,5.46875 c -0.98816,0.81483 -2.01362,1.64574 -2.75,2.78125 -0.74928,1.1554 -0.98341,2.74156 -0.65625,4.71875 -2.36917,-0.72853 -4.49352,-2.64468 -5.65625,-5.0625 -1.20326,-2.5021 -1.34831,-5.40312 0.0625,-7.90625 z" /><path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient7657);fill-opacity:1;stroke:url(#linearGradient7659);stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="path7637" + d="m -130.85811,13.036361 a 25.68048,25.68048 0 1 1 -51.36096,0 25.68048,25.68048 0 1 1 51.36096,0 z" /><g + id="g7639" + transform="matrix(1,0,0,0.87225898,-199.74982,-24.193125)"><path + inkscape:connector-curvature="0" + style="fill:url(#linearGradient7661);fill-opacity:1;fill-rule:evenodd;stroke:#5e292c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path7641" + d="m 28.929483,55.976391 29.529677,0 c 0,8.765873 -7.38242,11.643817 -14.764839,11.643817 -7.382419,0 -14.764838,-2.987525 -14.764838,-11.643817 z" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3385-1-3)" + id="path7643" + transform="matrix(1.021129,0,0,1.0337941,-0.62331,-2.26843)" + d="m 29.5,56.46875 c 0.14342,3.88198 1.77783,6.48175 4.3125,8.15625 2.65009,1.75076 6.25124,2.5 9.875,2.5 3.62624,0 7.22636,-0.73206 9.875,-2.46875 2.53451,-1.66186 4.20177,-4.253 4.34375,-8.1875 l -28.40625,0 z m 0.65625,0.46875 27.09375,0 c -0.1355,3.57994 -1.70603,5.95665 -4.125,7.46875 -2.527879,1.580173 -5.97657,2.25 -9.4375,2.25 -3.45855,4e-6 -6.90824,-0.68825 -9.4375,-2.28125 -2.41912,-1.523577 -3.95687,-3.90536 -4.09375,-7.4375 z" /><path + inkscape:connector-curvature="0" + style="fill:#5e292c;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path7645" + d="m 28.4375,55.46875 0,0.5 c 0,4.47029 1.95703,7.59292 4.84375,9.5 2.88672,1.90708 6.64759,2.65625 10.40625,2.65625 3.75618,0 7.54933,-0.73125 10.4375,-2.625 2.88817,-1.89375 4.84375,-5.00795 4.84375,-9.53125 l 0,-0.5 -0.5,0 -29.53125,0 -0.5,0 z m 1.0625,1 28.40625,0 c -0.14198,3.9345 -1.80924,6.52564 -4.34375,8.1875 -2.64864,1.73669 -6.24876,2.46875 -9.875,2.46875 -3.62376,0 -7.22491,-0.74924 -9.875,-2.5 C 31.27783,62.9505 29.64342,60.35073 29.5,56.46875 z" /></g></g></g></svg>
\ No newline at end of file diff --git a/icons/view-restore.svg b/icons/view-restore.svg new file mode 100644 index 0000000..000c826 --- /dev/null +++ b/icons/view-restore.svg @@ -0,0 +1,422 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.0" + x="0.0000000" + y="0.0000000" + width="48.000000" + height="48.000000" + id="svg11300" + sodipodi:version="0.32" + inkscape:version="0.45" + sodipodi:docname="view-restore.svg" + sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <metadata + id="metadata66"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Restore View</dc:title> + <dc:contributor> + <cc:Agent> + <dc:title /> + </cc:Agent> + </dc:contributor> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:source>http://jimmac.musichall.cz</dc:source> + <dc:creator> + <cc:Agent> + <dc:title>Jakub Steiner</dc:title> + </cc:Agent> + </dc:creator> + <dc:subject> + <rdf:Bag> + <rdf:li>window</rdf:li> + <rdf:li>fullscreen</rdf:li> + <rdf:li>view. restore</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="889" + inkscape:window-width="924" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="0.31764706" + bordercolor="#666" + pagecolor="#ffffff" + id="base" + inkscape:zoom="8" + inkscape:cx="21.684252" + inkscape:cy="19.196453" + inkscape:window-x="2237" + inkscape:window-y="144" + inkscape:current-layer="svg11300" + showgrid="true" + inkscape:showpageshadow="false" /> + <defs + id="defs3"> + <linearGradient + inkscape:collect="always" + id="linearGradient2905"> + <stop + style="stop-color:#729fcf;stop-opacity:1;" + offset="0" + id="stop2907" /> + <stop + style="stop-color:#729fcf;stop-opacity:0;" + offset="1" + id="stop2909" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient2897"> + <stop + style="stop-color:#204a87;stop-opacity:1;" + offset="0" + id="stop2899" /> + <stop + style="stop-color:#204a87;stop-opacity:0;" + offset="1" + id="stop2901" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient2889"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop2891" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop2893" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5031" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + <linearGradient + inkscape:collect="always" + id="linearGradient5060"> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0" + id="stop5062" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5064" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient5029" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + <linearGradient + id="linearGradient5048"> + <stop + style="stop-color:black;stop-opacity:0;" + offset="0" + id="stop5050" /> + <stop + id="stop5056" + offset="0.5" + style="stop-color:black;stop-opacity:1;" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop5052" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5048" + id="linearGradient5027" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" + x1="302.85715" + y1="366.64789" + x2="302.85715" + y2="609.50507" /> + <linearGradient + id="linearGradient4816"> + <stop + style="stop-color:#204a87;stop-opacity:1.0000000" + offset="0.0000000" + id="stop4818" /> + <stop + style="stop-color:#204a87;stop-opacity:0.0000000" + offset="1.0000000" + id="stop4820" /> + </linearGradient> + <linearGradient + id="linearGradient3832"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000" + offset="0.0000000" + id="stop3834" /> + <stop + style="stop-color:#e0e0e0;stop-opacity:1.0000000" + offset="1.0000000" + id="stop3836" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4816" + id="linearGradient2264" + gradientUnits="userSpaceOnUse" + x1="13.050564" + y1="11.353518" + x2="13.050564" + y2="5.6173568" + gradientTransform="matrix(1.116479,0,0,1.28466,-1.813167,16.33649)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3832" + id="linearGradient2267" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.181102,0,0,1.133215,-2.996059,16.44342)" + x1="17.880680" + y1="11.072588" + x2="17.880680" + y2="21.767578" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5048" + id="linearGradient1983" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" + x1="302.85715" + y1="366.64789" + x2="302.85715" + y2="609.50507" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient1985" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient5060" + id="radialGradient1987" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3832" + id="linearGradient1989" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.181102,0,0,1.133215,7.003941,8.44342)" + x1="17.880680" + y1="11.072588" + x2="17.880680" + y2="21.767578" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4816" + id="linearGradient1991" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.116479,0,0,1.28466,8.186833,8.33649)" + x1="13.050564" + y1="11.353518" + x2="13.050564" + y2="5.6173568" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2889" + id="linearGradient2895" + x1="24.75" + y1="13.984375" + x2="41.96875" + y2="13.984375" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2897" + id="linearGradient2903" + x1="35.100983" + y1="12.375624" + x2="43.349266" + y2="4.4381237" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2905" + id="linearGradient2911" + x1="35.100983" + y1="12.375624" + x2="43.349266" + y2="4.4381237" + gradientUnits="userSpaceOnUse" /> + </defs> + <g + id="g1993" + style="opacity:0.6"> + <g + style="opacity:0.58730164;display:inline" + id="g1969" + transform="matrix(1.32174e-2,0,0,1.145603e-2,35.17455,34.53806)"> + <rect + y="-150.69685" + x="-1559.2523" + height="478.35718" + width="1339.6335" + id="rect1971" + style="opacity:0.40206185;color:black;fill:url(#linearGradient1983);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + sodipodi:nodetypes="cccc" + id="path1973" + d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z " + style="opacity:0.40206185;color:black;fill:url(#radialGradient1985);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + style="opacity:0.40206185;color:black;fill:url(#radialGradient1987);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z " + id="path1975" + sodipodi:nodetypes="cccc" /> + </g> + <rect + width="18.999998" + height="18.000006" + rx="0.46699828" + ry="0.48554277" + x="13.500001" + y="17.5" + style="color:black;fill:url(#linearGradient1989);fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8d;stroke-width:1.00000119;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect1977" /> + <rect + width="16" + height="3.2133625" + rx="0.084674627" + ry="0.10203383" + x="15" + y="19" + style="color:black;fill:url(#linearGradient1991);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect1979" /> + <rect + width="16.999989" + height="15.99999" + rx="0.15984313" + ry="0.14619765" + x="14.500002" + y="18.499994" + style="color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1.00000167;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.47878789;visibility:visible;display:inline;overflow:visible" + id="rect1981" /> + </g> + <g + style="opacity:0.58730164;display:inline" + id="g5022" + transform="matrix(1.32174e-2,0,0,1.145603e-2,25.17455,42.53806)"> + <rect + y="-150.69685" + x="-1559.2523" + height="478.35718" + width="1339.6335" + id="rect4173" + style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + sodipodi:nodetypes="cccc" + id="path5058" + d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z " + style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <path + style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z " + id="path5018" + sodipodi:nodetypes="cccc" /> + </g> + <rect + width="18.999998" + height="18.000006" + rx="0.46699828" + ry="0.48554277" + x="3.5000007" + y="25.5" + style="color:black;fill:url(#linearGradient2267);fill-opacity:1;fill-rule:evenodd;stroke:#8d8d8d;stroke-width:1.00000119;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect3818" /> + <rect + width="16" + height="3.2133625" + rx="0.084674627" + ry="0.10203383" + x="5" + y="27" + style="color:black;fill:url(#linearGradient2264);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect3820" /> + <rect + width="16.999989" + height="15.99999" + rx="0.15984313" + ry="0.14619765" + x="4.5000014" + y="26.499994" + style="color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1.00000167;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.47878789;visibility:visible;display:inline;overflow:visible" + id="rect4962" /> + <path + id="path2890" + d="M 35.983085,20.557267 L 32.986379,17.741128 L 47.536767,1.0012484 L 29.463656,14.208861 L 26.28779,11.024392 L 24.100981,22.5 L 35.983085,20.557267 z " + style="opacity:1;color:black;fill:url(#linearGradient2911);fill-opacity:1.0;fill-rule:evenodd;stroke:url(#linearGradient2903);stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + sodipodi:nodetypes="ccccccc" /> + <path + sodipodi:type="inkscape:offset" + inkscape:radius="-0.92676479" + inkscape:original="M 47.53125 1 L 29.46875 14.21875 L 26.28125 11.03125 L 24.09375 22.5 L 35.96875 20.5625 L 33 17.75 L 47.53125 1 z " + xlink:href="#path2890" + style="opacity:0.40703518;color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2895);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path2887" + inkscape:href="#path2890" + d="M 41.46875,6.59375 L 30.03125,14.96875 C 29.659036,15.247768 29.137662,15.207663 28.8125,14.875 L 26.875,12.9375 L 25.25,21.375 L 33.96875,19.96875 L 32.375,18.4375 C 32.014256,18.09614 31.986693,17.5311 32.3125,17.15625 L 41.46875,6.59375 z " /> +</svg> diff --git a/pvsclient.qrc b/pvsclient.qrc new file mode 100644 index 0000000..2979d52 --- /dev/null +++ b/pvsclient.qrc @@ -0,0 +1,43 @@ +<RCC> + <qresource prefix="/"> + <file alias="darrow16.svg">icons/darrow16.svg</file> + <file alias="ok16.svg">icons/ok16.svg</file> + + <file alias="cam32.svg">icons/cam32.svg</file> + <file alias="cam_on32.svg">icons/cam_on32.svg</file> + <file alias="cam_off32.svg">icons/cam_off32.svg</file> + <file alias="chat_msg16.svg">icons/chat_msg16.svg</file> + <file alias="AUTHORS">AUTHORS</file> + <file alias="TRANSLATION">TRANSLATION</file> + </qresource> + <qresource prefix="/" lang="de_DE"> + <file alias="pvsclient.qm">build/pvsclient_de_DE.qm</file> + </qresource> + <qresource prefix="/" lang="de"> + <file alias="pvsclient.qm">build/pvsclient_de_DE.qm</file> + </qresource> + <qresource prefix="/" lang="fr_FR"> + <file alias="pvsclient.qm">build/pvsclient_fr_FR.qm</file> + </qresource> + <qresource prefix="/" lang="fr"> + <file alias="pvsclient.qm">build/pvsclient_fr_FR.qm</file> + </qresource> + <qresource prefix="/" lang="es_MX"> + <file alias="pvsclient.qm">build/pvsclient_es_MX.qm</file> + </qresource> + <qresource prefix="/" lang="es"> + <file alias="pvsclient.qm">build/pvsclient_es_MX.qm</file> + </qresource> + <qresource prefix="/" lang="ar_JO"> + <file alias="pvsclient.qm">build/pvsclient_ar_JO.qm</file> + </qresource> + <qresource prefix="/" lang="ar"> + <file alias="pvsclient.qm">build/pvsclient_ar_JO.qm</file> + </qresource> + <qresource prefix="/" lang="pl_PL"> + <file alias="pvsclient.qm">build/pvsclient_pl_PL.qm</file> + </qresource> + <qresource prefix="/" lang="pl"> + <file alias="pvsclient.qm">build/pvsclient_pl_PL.qm</file> + </qresource> +</RCC> diff --git a/pvsmgr.qrc b/pvsmgr.qrc new file mode 100644 index 0000000..24b95c3 --- /dev/null +++ b/pvsmgr.qrc @@ -0,0 +1,47 @@ +<RCC> + <qresource prefix="/"> + <file alias="exit">icons/exit.svg</file> + <file alias="terminal">icons/terminal.svg</file> + <file alias="photo">icons/photo.svg</file> + <file alias="lock">icons/lock.svg</file> + <file alias="dozent">icons/dozent.svg</file> + <file alias="eye">icons/eye.svg</file> + <file alias="cam32">icons/cam32.svg</file> + <file alias="student2all">icons/student2all.svg</file> + <file alias="tutor2all">icons/tutor2all.svg</file> + <file alias="student2tutor">icons/student2tutor.svg</file> + <file alias="tutor2student">icons/tutor2student.svg</file> + <file alias="AUTHORS">AUTHORS</file> + <file alias="TRANSLATION">TRANSLATION</file> + </qresource> + <qresource prefix="/" lang="de_DE"> + <file alias="pvsmgr.qm">build/pvsmgr_de_DE.qm</file> + </qresource> + <qresource prefix="/" lang="de"> + <file alias="pvsmgr.qm">build/pvsmgr_de_DE.qm</file> + </qresource> + <qresource prefix="/" lang="fr_FR"> + <file alias="pvsmgr.qm">build/pvsmgr_fr_FR.qm</file> + </qresource> + <qresource prefix="/" lang="fr"> + <file alias="pvsmgr.qm">build/pvsmgr_fr_FR.qm</file> + </qresource> + <qresource prefix="/" lang="es_MX"> + <file alias="pvsmgr.qm">build/pvsmgr_es_MX.qm</file> + </qresource> + <qresource prefix="/" lang="es"> + <file alias="pvsmgr.qm">build/pvsmgr_es_MX.qm</file> + </qresource> + <qresource prefix="/" lang="ar_JO"> + <file alias="pvsmgr.qm">build/pvsmgr_ar_JO.qm</file> + </qresource> + <qresource prefix="/" lang="ar"> + <file alias="pvsmgr.qm">build/pvsmgr_ar_JO.qm</file> + </qresource> + <qresource prefix="/" lang="pl_PL"> + <file alias="pvsmgr.qm">build/pvsmgr_pl_PL.qm</file> + </qresource> + <qresource prefix="/" lang="pl"> + <file alias="pvsmgr.qm">build/pvsmgr_pl_PL.qm</file> + </qresource> +</RCC> diff --git a/src/client/connectwindow/connectwindow.cpp b/src/client/connectwindow/connectwindow.cpp new file mode 100644 index 0000000..bc4e9b2 --- /dev/null +++ b/src/client/connectwindow/connectwindow.cpp @@ -0,0 +1,284 @@ +/* + * connectwindow.cpp + * + * Created on: 28.01.2013 + * Author: sr + */ + +#include "connectwindow.h" +#include "../../shared/settings.h" +#include "../../shared/network.h" +#include "../../shared/util.h" + +#include "../net/serverconnection.h" + +#include <QNetworkInterface> + +#define UDPBUFSIZ 9000 +#define SALT_LEN 18 + +ConnectWindow::ConnectWindow(QWidget *parent) : + QDialog(parent), _connected(false), _timerDiscover(0), _timerHide(0), _connection(NULL), _state(Idle), + _hashErrorCount(0), _hashSslErrorCount(0), _certErrorCount(0), _ipErrorCount(0), _discoveryInterval(800) +{ + setupUi(this); + // + connect(cmdOK, SIGNAL(clicked()), this, SLOT(onOkClick())); + connect(cmdCancel, SIGNAL(clicked()), this, SLOT(onCancelClick())); + int tries = 10; + while (tries-- != 0) + { + const quint16 port = (quint16)(qrand() % 10000) + 10000; + if (_discoverySocket.bind(QHostAddress::Any, port)) + break; + if (tries == 0) + qFatal("Could not bind to any UDP port for server discovery."); + } + connect(&_discoverySocket, SIGNAL(readyRead()), this, SLOT(onUdpReadyRead())); + this->setState(Idle); +} + +ConnectWindow::~ConnectWindow() +{ + +} + +void ConnectWindow::setConnected(const bool connected) +{ + _connected = connected; + this->updateState(); + if (_state == Scanning) + { + killTimer(_timerDiscover); + _discoveryInterval = 1000; + _timerDiscover = startTimer(_discoveryInterval); + } +} + +void ConnectWindow::setState(const ConnectionState state) +{ + if (_state != state) + { + _state = state; + this->updateState(); + } +} + +void ConnectWindow::updateState() +{ + txtName->setEnabled(_state == Idle && !_connected); + + if (_connected) + { + cmdOK->setEnabled(true); + cmdOK->setText(tr("&Disconnect")); + lblStatus->setText(tr("Connected.")); + txtName->setEnabled(false); + return; + } + + if (_state != Idle) + cmdOK->setText(tr("&Stop")); + else + cmdOK->setText(tr("&Connect")); + + switch (_state) + { + case Idle: + lblStatus->setText(tr("Ready to connect; please enter session name.")); + break; + case Scanning: + lblStatus->setText(tr("Scanning for session %1.").arg(txtName->text())); + _timerDiscover = startTimer(_discoveryInterval); + break; + case Connecting: + lblStatus->setText(tr("Found session, connecting...")); + break; + case AwaitingChallenge: + lblStatus->setText(tr("Waiting for server challenge...")); + break; + case AwaitingChallengeResponse: + lblStatus->setText(tr("Replied to challenge, sent own...")); + break; + case LoggingIn: + lblStatus->setText(tr("Logging in...")); + break; + case Connected: + lblStatus->setText(tr("Connection established!")); + break; + case InvalidIpList: + case InvalidHash: + case InvalidCert: + case InvalidSslHash: + lblError->setText(tr("Invalid hash: %1; invalid cert: %2; invalid iplist: %3; invalid sslhash: %4") + .arg(_hashErrorCount).arg(_certErrorCount).arg(_ipErrorCount).arg(_hashSslErrorCount)); + break; + } +} + +/** + * Overrides + */ + +void ConnectWindow::timerEvent(QTimerEvent* event) +{ + if (event->timerId() == _timerDiscover) + { + killTimer(_timerDiscover); + if (_connected || _state != Scanning) // Not scanning, bail out + return; + if (_discoveryInterval < 30000) + _discoveryInterval += 100; + _timerDiscover = startTimer(_discoveryInterval); + // Don't send packet if we're trying to connect + if (_connection != NULL) + return; + // Send discovery + _packet.reset(); + QByteArray iplist(Network::interfaceAddressesToString().toUtf8()); + QByteArray salt1(SALT_LEN, 0); + if (_salt2.size() < SALT_LEN) + _salt2.resize(SALT_LEN); + for (int i = 0; i < SALT_LEN; ++i) + { + salt1[i] = qrand() & 0xff; + _salt2[i] = qrand() & 0xff; + } + _packet.reset(); + _packet.setField(_HASH, genSha1(&_nameBytes, &salt1, &iplist)); + _packet.setField(_SALT1, salt1); + _packet.setField(_SALT2, _salt2); + _packet.setField(_IPLIST, iplist); + foreach (QNetworkInterface interface, QNetworkInterface::allInterfaces()) + { + foreach (QNetworkAddressEntry entry, interface.addressEntries()) + { + if (!entry.broadcast().isNull() && entry.ip() != QHostAddress::LocalHost && entry.ip() != QHostAddress::LocalHostIPv6) + { + qDebug() << "Broadcasting to " << entry.broadcast().toString(); + if (!_packet.writeMessage(&_discoverySocket, entry.broadcast(), SERVICE_DISCOVERY_PORT)) + qDebug("FAILED"); + } + } + } + qDebug("Broadcasting to 255.255.255.255"); + if (!_packet.writeMessage(&_discoverySocket, QHostAddress::Broadcast, SERVICE_DISCOVERY_PORT)) + qDebug("FAILED"); + // End send discovery + } + else if(event->timerId() == _timerHide) + { + killTimer(_timerHide); + _timerHide = 0; + this->hide(); + } + else + // Unknown/Old timer id, kill it + killTimer(event->timerId()); +} + +void ConnectWindow::closeEvent(QCloseEvent *e) +{ + e->ignore(); + this->hide(); +} + +/** + * Slots + */ + +void ConnectWindow::onOkClick() +{ + if (_timerHide) + killTimer(_timerHide); + _timerHide = 0; + if (_timerDiscover) + killTimer(_timerDiscover); + if (_connected || _state != Idle) + { + // Stop or disconnect + _timerDiscover = 0; + emit disconnect(); + this->setState(Idle); + } + else + { + // Connect (scan for session) + _discoveryInterval = 800; + _nameBytes = txtName->text().toUtf8(); + _timerDiscover = startTimer(_discoveryInterval); + _hashErrorCount = _hashSslErrorCount = _certErrorCount = _ipErrorCount = 0; + this->setState(Scanning); + } +} + +void ConnectWindow::onCancelClick() +{ + this->hide(); +} + +void ConnectWindow::onUdpReadyRead() +{ + char data[UDPBUFSIZ]; + QHostAddress addr; + quint16 port; + while (_discoverySocket.hasPendingDatagrams()) + { + const qint64 size = _discoverySocket.readDatagram(data, UDPBUFSIZ, &addr, &port); + if (size <= 0 || _connection != NULL) + continue; + + _packet.reset(); + if (!_packet.readMessage(data, (quint32)size)) + continue; + // Valid packet, process it: + const QByteArray hash(_packet.getFieldBytes(_HASH)); + const QByteArray iplist(_packet.getFieldBytes(_IPLIST)); + const QByteArray port(_packet.getFieldBytes(_PORT)); + const QByteArray cert(_packet.getFieldBytes(_CERT)); + // Check if the source IP of the packet matches any of the addresses given in the IP list + if (!Network::isAddressInList(QString::fromUtf8(iplist), addr.toString())) + { + ++_ipErrorCount; + this->setState(InvalidIpList); + this->setState(Scanning); + continue; + } + // If so, check if the submitted hash seems valid + if (genSha1(&_nameBytes, &_salt2, &iplist, &port, &cert) != hash) + { + // did not match local session name, or other data was spoofed + ++_hashErrorCount; + this->setState(InvalidHash); + this->setState(Scanning); + continue; + } + // Otherwise it's a valid reply, try to connect + _connection = new ServerConnection(addr.toString(), (quint16)QString::fromUtf8(port).toInt(), _nameBytes, cert); + connect(_connection, SIGNAL(stateChange(ConnectWindow::ConnectionState)), this, SLOT(onConnectionStateChange(ConnectWindow::ConnectionState))); + connect(_connection, SIGNAL(destroyed(QObject*)), this, SLOT(onConnectionClosed(QObject*))); + } +} + +void ConnectWindow::onConnectionStateChange(ConnectWindow::ConnectionState state) +{ + bool reset = (_state == Scanning); + if (state == InvalidSslHash) + ++_hashSslErrorCount; + this->setState(state); + if (reset) + _state = Scanning; + if (state == Connected) + { + QObject::disconnect(_connection, SIGNAL(stateChange(ConnectWindow::ConnectionState)), this, SLOT(onConnectionStateChange(ConnectWindow::ConnectionState))); + QObject::disconnect(_connection, SIGNAL(destroyed(QObject*)), this, SLOT(onConnectionClosed(QObject*))); + emit connected(_connection); + _connection = NULL; + _timerHide = startTimer(2000); + } +} + +void ConnectWindow::onConnectionClosed(QObject* connection) +{ + _connection = NULL; +} diff --git a/src/client/connectwindow/connectwindow.h b/src/client/connectwindow/connectwindow.h new file mode 100644 index 0000000..d8f9ab9 --- /dev/null +++ b/src/client/connectwindow/connectwindow.h @@ -0,0 +1,95 @@ +/* + # Copyright (c) 2013 - OpenSLX Project, Computer Center University of + # Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + # --------------------------------------------------------------------- + # - Allow user to connect/disconnect to/from server + */ + +#ifndef PVSCONNECTWINDOW_H_ +#define PVSCONNECTWINDOW_H_ + +#include <QtGui> +#include <QUdpSocket> +#include <QSslSocket> +#include "ui_connect.h" + +#include "../../shared/networkmessage.h" + +class ServerConnection; + +class ConnectWindow : public QDialog, private Ui_Dialog +{ +Q_OBJECT + +public: + enum ConnectionState + { + Idle, + Scanning, + Connecting, + AwaitingChallenge, + AwaitingChallengeResponse, + LoggingIn, + InvalidIpList, + InvalidHash, // Hash of UDP reply invalid + InvalidSslHash, // Hash of challenge inside SSL connection invalid + InvalidCert, + Connected + }; + +private: + bool _connected; + int _timerDiscover, _timerHide; + ServerConnection *_connection; + ConnectionState _state; + int _hashErrorCount, _hashSslErrorCount, _certErrorCount, _ipErrorCount; + int _discoveryInterval; + + QByteArray _nameBytes; + QByteArray _salt2; + QUdpSocket _discoverySocket; + NetworkMessage _packet; + + void setState(const ConnectionState state); + void updateState(); + +public: + ConnectWindow(QWidget *parent = NULL); + virtual ~ConnectWindow(); + + void setConnected(const bool connected); + +protected: + /* + void enterEvent(QEvent *e); + void leaveEvent(QEvent *e); + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + */ + void timerEvent(QTimerEvent* event); + void closeEvent(QCloseEvent *e); + +protected slots: + void onOkClick(); + void onCancelClick(); + void onUdpReadyRead(); + void onConnectionStateChange(ConnectWindow::ConnectionState state); + void onConnectionClosed(QObject* connection); + //void onSsl + +signals: + void disconnect(); + void connected(ServerConnection* connection); + +}; + +#endif diff --git a/src/client/main.cpp b/src/client/main.cpp new file mode 100644 index 0000000..cea9ae8 --- /dev/null +++ b/src/client/main.cpp @@ -0,0 +1,41 @@ +#include "toolbar/toolbar.h" +#include "util/util.h" + +int main(int argc, char** argv) +{ + QApplication app(argc, argv); + app.setOrganizationName("openslx"); + app.setOrganizationDomain("openslx.org"); + app.setApplicationName("pvsclient"); + + qsrand((uint)QDateTime::currentMSecsSinceEpoch()); + + // Make sure settings directory exists + do { + USER_SETTINGS(settings); + QFileInfo fi(settings.fileName()); + QDir path(fi.path()); + qDebug() << "Settings directory is " << fi.path(); + if (!path.exists()) + path.mkpath(path.absolutePath()); + // Now check if settings file exists. If not, copy system default (if available) + if (!fi.exists()) + { + SYSTEM_SETTINGS(sys); + QFileInfo sysfi(sys.fileName()); + if (sysfi.exists()) + { + if (!QFile::copy(sys.fileName(), settings.fileName())) + qDebug() << "Copying default settings from " << sys.fileName() << " to " << settings.fileName() << " failed."; + } + } + } while (0); + + // use system locale as language to translate gui + QTranslator translator; + translator.load(":pvsclient"); + app.installTranslator(&translator); + + Toolbar pvsclient; + return app.exec(); +} diff --git a/src/client/net/serverconnection.cpp b/src/client/net/serverconnection.cpp new file mode 100644 index 0000000..849f43b --- /dev/null +++ b/src/client/net/serverconnection.cpp @@ -0,0 +1,348 @@ +#include "serverconnection.h" +#include <QtCore> +#include <QPixmap> +#include <QApplication> +#include <QDesktopWidget> +#include <QHostInfo> +#include <unistd.h> +#include <cstdlib> +//#define verbose +#include "../vnc/vncserver.h" + +#include "../../shared/util.h" +#include "../util/platform/blankscreen.h" + +#define CHALLENGE_LEN 20 + +ServerConnection::ServerConnection(const QString& host, const quint16 port, const QByteArray& sessionName, const QByteArray& certHash) : + QObject(NULL), _jpegQuality(80), _authed(0), _sessionName(sessionName), _certHash(certHash) +{ + _socket = new QSslSocket(); + _blank = new BlankScreen(); + connect(_socket, SIGNAL(encrypted()), this, SLOT(sock_connected())); + connect(_socket, SIGNAL(readyRead()), this, SLOT(sock_dataArrival())); + connect(_socket, SIGNAL(disconnected()), this, SLOT(sock_closed())); + connect(_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(sock_error(QAbstractSocket::SocketError))); + connect(_socket, + SIGNAL(sslErrors(const QList<QSslError> &)), + this, + SLOT(sslErrors(const QList<QSslError> &)) + ); + qDebug("Connecting to %s on port %d", host.toUtf8().data(), (int)port); + _socket->connectToHostEncrypted(host, port); + _timerId = startTimer(4000); + // Connect the vnc start/stop signal to this class, so we can tell the server about successful vnc server startup + connect(VncServer::instance(), SIGNAL(started(int, QString&, QString&)), this, SLOT(onVncServerStartStop(int, QString&, QString&))); +} + +ServerConnection::~ServerConnection() +{ + this->disconnectFromServer(); + _blank->deleteLater(); + _blank = NULL; +} + +void ServerConnection::sendMessage(NetworkMessage& message) +{ + if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState) + return; + message.writeMessage(_socket); + if (!message.writeComplete()) + { + qCritical() << "SendMessage to server failed!"; + } +} + + +void ServerConnection::disconnectFromServer() +{ + if (_socket == NULL) + return; + qDebug("Closing connection to server"); + VncServer::instance()->stop(); + emit closeVnc(); + _socket->blockSignals(true); + _socket->abort(); + _socket->deleteLater(); + _socket = NULL; + this->deleteLater(); +} + +void ServerConnection::handleMsg() +{ + const QString &id = _fromServer.getFieldString(_ID); + + if (_authed == 0) + { + if (id == _CHALLENGE) + { + // Initial challenge request by server + emit stateChange(ConnectWindow::AwaitingChallengeResponse); + _myChallenge.resize(CHALLENGE_LEN); + for (int i = 0; i < CHALLENGE_LEN; ++i) + _myChallenge[i] = qrand() & 0xff; + QByteArray serverChallenge(_fromServer.getFieldBytes(_CHALLENGE)); + _toServer.reset(); + _toServer.setField(_ID, _CHALLENGE); + _toServer.setField(_HASH, genSha1(&_sessionName, &serverChallenge)); + _toServer.setField(_CHALLENGE, _myChallenge); + _toServer.writeMessage(_socket); + qDebug("Received challenge, replying, sending own challenge step <- 1"); + _authed = 1; + } + return; + } + + if (_authed == 1) + { + if (id == _CHALLENGE) + { + qDebug("Received challenge reply"); + if (_timerId != 0) + { + killTimer(_timerId); + _timerId = 0; + } + // Check challenge response + QByteArray serverhash(_fromServer.getFieldBytes(_HASH)); + if (serverhash != genSha1(&_sessionName, &_myChallenge)) + { + qDebug("invalid. STOP."); + emit stateChange(ConnectWindow::InvalidSslHash); + this->disconnectFromServer(); + return; + } + emit stateChange(ConnectWindow::LoggingIn); + char *user = getlogin(); + if (user == NULL || *user == '\0') + user = getenv("USER"); + if (user == NULL || *user == '\0') + user = getenv("USERNAME"); + if (user == NULL || *user == '\0') + user = (char*)"Hans Affe"; + _toServer.reset(); + _toServer.setField(_ID, _LOGIN); + _toServer.setField("HOST", QHostInfo::localHostName()); + _toServer.setField("NAME", QString(user)); + qDebug("Sending login request!"); + if (_toServer.writeMessage(_socket)) + { + _authed = 2; + qDebug("valid, step <- 2"); + } + else + { + this->disconnectFromServer(); + } + } + return; + } + + if (_authed == 2) + { + if (id == _LOGIN) + { + qDebug("login accepted, step <- 3"); + _authed = 3; + emit stateChange(ConnectWindow::Connected); + } + return; + } + + // message THUMB - server requests screenshot as thumbnail + if (id == _THUMB) + { + int x = _fromServer.getFieldString(_X).toInt(); + int y = _fromServer.getFieldString(_Y).toInt(); + if (x < 32) + x = 32; + else if (x > 400) + x = 400; + if (y < 18) + y = 18; + else if (y > 300) + y = 300; + QPixmap desktop(QPixmap::grabWindow(QApplication::desktop()->winId()).scaled( + x, y, + Qt::KeepAspectRatio, + Qt::SmoothTransformation)); + QByteArray bytes; + QBuffer jpgBuffer(&bytes); + jpgBuffer.open(QIODevice::WriteOnly); + qDebug("JPEG quality is %d", _jpegQuality); + if (desktop.save(&jpgBuffer, "JPG", _jpegQuality)) // writes pixmap into bytes in JPG format + { + // Try to adjust quality so we stay between 3 and 4.5 KB + if (_jpegQuality < 90 && bytes.size() < 3000) + _jpegQuality += 7; + else if (_jpegQuality > 40 && bytes.size() > 4500) + _jpegQuality -= 7; + } + else + { // FALLBACK + bytes.clear(); + QBuffer pngBuffer(&bytes); + pngBuffer.open(QIODevice::WriteOnly); + if (!desktop.save(&pngBuffer, "PNG")) // writes pixmap into bytes in PNG format + { + qDebug("Could not convert screenshot to PNG nor JPG"); + return; // Failed :-( + } + } + _toServer.reset(); + _toServer.setField(_ID, _THUMB); + _toServer.setField(_IMG, bytes); + sendMessage(_toServer); + } // message VNCSERVER - start local vncserver + else if (id == _VNCSERVER) + { + const bool enable = (_fromServer.getFieldString("ENABLE").toInt() != 0); + if (enable) + { + emit closeVnc(); // In case we are watching some other client, stop doing so + VncServer::instance()->start(); + } + else + { + VncServer::instance()->stop(); + } + } + else if (id == _VNCCLIENT) + { + const QString host(_fromServer.getFieldString("HOST")); + const int port = _fromServer.getFieldString("PORT").toInt(); + if (host.isEmpty() || port <= 0) + { + emit closeVnc(); + } + else + { + emit openVnc(host, port, _fromServer.getFieldString("ROPASS"), true, true, _fromServer.getFieldString("CAPTION"), _fromServer.getFieldString("CLIENTID").toInt()); + } + } + else if (id == _LOCK) + { + const bool enable = (_fromServer.getFieldString("ENABLE").toInt() != 0); + if (enable) + _blank->lock(_fromServer.getFieldString("MESSAGE")); + else + _blank->unlock(); + } +} + +/** + * Override + */ + +void ServerConnection::timerEvent(QTimerEvent *event) +{ + if (_timerId == 0) + return; + killTimer(_timerId); + _timerId = 0; + this->disconnectFromServer(); +} + +/** + * Slots + */ + +void ServerConnection::onVncServerStartStop(int port, QString& ropass, QString& rwpass) +{ + _toServer.reset(); + _toServer.setField(_ID, _VNCSERVER); + if (port <= 0) + { + _toServer.setField("PORT", QByteArray("0")); + } + else + { + _toServer.setField("PORT", QString::number(port)); + _toServer.setField("ROPASS", ropass); + _toServer.setField("RWPASS", rwpass); + } + sendMessage(_toServer); +} + +void ServerConnection::onVncViewerStartStop(const bool started, const int clientId) +{ + _toServer.reset(); + _toServer.setField(_ID, _VNCCLIENT); + if (started) + _toServer.setField("ENABLED", QByteArray("1")); + else + _toServer.setField("ENABLED", QByteArray("0")); + _toServer.setField("CLIENTID", QString::number(clientId)); + sendMessage(_toServer); +} + +void ServerConnection::sslErrors(const QList<QSslError> & errors) +{ + for (QList<QSslError>::const_iterator it = errors.begin(); it != errors.end(); it++) + { + QSslError err = *it; + qDebug("Connect SSL: %s", qPrintable(err.errorString())); + if (err.error() == QSslError::HostNameMismatch) + continue; // We don't pay attention to hostnames for validation + if (err.error() == QSslError::SelfSignedCertificate) + continue; // Also, this will always be the case; we check the fingerprint later + if (err.error() == QSslError::CertificateNotYetValid || err.error() == QSslError::CertificateExpired) + continue; + // Some other SSL error - do not ignore + return; + } + _socket->ignoreSslErrors(); +} + +void ServerConnection::sock_dataArrival() +{ + if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState) + { + qDebug("dataArrival called in bad state"); + return; + } + + while (_socket->bytesAvailable()) + { + bool retval; + retval = _fromServer.readMessage(_socket); // let the message read data from socket + if (!retval) // error parsing msg, disconnect client! + { + this->disconnectFromServer(); + return; + } + if (_fromServer.readComplete()) // message is complete + { + this->handleMsg(); + if (_socket == NULL) + return; + _fromServer.reset(); + } + } +} + +void ServerConnection::sock_closed() +{ + // should this be unreliable in some way i suggest using the signal "stateChanged()" instead + // and check if the state changed to unconnected. + qDebug("Socket was closed... oh well.."); + this->disconnectFromServer(); +} + +void ServerConnection::sock_error(QAbstractSocket::SocketError errcode) +{ + qDebug("Connection error: %d", (int)errcode); + this->disconnectFromServer(); +} + +void ServerConnection::sock_connected() +{ + QByteArray cert(_socket->peerCertificate().digest(QCryptographicHash::Sha1)); + if (_certHash != cert) + { + emit stateChange(ConnectWindow::InvalidCert); + this->disconnectFromServer(); + return; + } + emit stateChange(ConnectWindow::AwaitingChallenge); +} diff --git a/src/client/net/serverconnection.h b/src/client/net/serverconnection.h new file mode 100644 index 0000000..afb8204 --- /dev/null +++ b/src/client/net/serverconnection.h @@ -0,0 +1,62 @@ +#ifndef _PVSSERVERCONNECTION_H_ +#define _PVSSERVERCONNECTION_H_ + +#include <QSslSocket> +#include "../../shared/networkmessage.h" +#include "../connectwindow/connectwindow.h" + +class BlankScreen; + +class ServerConnection : public QObject +{ +Q_OBJECT + +private: + QSslSocket *_socket; + BlankScreen *_blank; + int _timerId; + int _jpegQuality; + int _authed; + + NetworkMessage _fromServer, _toServer; + QByteArray _expectedFingerprint; + QString _passwd; + QByteArray _myChallenge; + QByteArray _sessionName; + QByteArray _certHash; + + void handleMsg(); + +public: + ServerConnection(const QString& host, const quint16 port, const QByteArray& sessionName, const QByteArray& certHash); + void disconnectFromServer(); + ~ServerConnection(); + const inline bool isConnected() const + { + return _socket != NULL && _socket->state() == QAbstractSocket::ConnectedState; + } + + void sendMessage(NetworkMessage& message); + +protected: + void timerEvent(QTimerEvent *event); + +private slots: + void sslErrors(const QList<QSslError> & errors); // triggered for errors that occur during SSL negotiation + void sock_dataArrival(); // triggered if data is available for reading + void sock_closed(); // triggered if the socket is closed + void sock_error(QAbstractSocket::SocketError errcode); // triggered if an error occurs on the socket + void sock_connected(); // triggered if the connection is established and ready to use + + void onVncServerStartStop(int port, QString& ropass, QString& rwpass); // triggered if the local vnc server was started + + void onVncViewerStartStop(const bool started, const int clientId); + +signals: + void openVnc(const QString& host, int port, const QString& passwd, bool ro, bool fullscreen, const QString& caption, const int clientId); + void closeVnc(); + void stateChange(ConnectWindow::ConnectionState state); + +}; + +#endif diff --git a/src/client/toolbar/toolbar.cpp b/src/client/toolbar/toolbar.cpp new file mode 100644 index 0000000..416a68f --- /dev/null +++ b/src/client/toolbar/toolbar.cpp @@ -0,0 +1,200 @@ +/* + * toolbar.cpp + * + * Created on: 21.01.2013 + * Author: sr + */ + +#include "toolbar.h" +#include "../../shared/settings.h" +#include "../net/serverconnection.h" +#include "../vnc/vncwindow.h" +#include "../vnc/vncserver.h" + +Toolbar::Toolbar(QWidget *parent) : + QWidget(parent), _location(POSITION_TOP_CENTER), _hideTimer(0), _connection(NULL) +{ + setupUi(this); + setWindowFlags(Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint); + setAttribute(Qt::WA_AlwaysShowToolTips); + setAttribute(Qt::WA_QuitOnClose); + setVisible(true); + // VNC Window + _vnc = new VncWindow(NULL); + // Connect window + _connectWindow = new ConnectWindow(NULL); + connect(_connectWindow, SIGNAL(disconnect()), this, SLOT(onDoDisconnect())); + connect(_connectWindow, SIGNAL(connected(ServerConnection*)), this, SLOT(onConnected(ServerConnection*))); + // + setupMenu(); + setLocation(); + hideBar(); +} + +void Toolbar::setupMenu() +{ + _menu = new QMenu(this); + // setup actions + _acnDisconnect = new QAction(tr("&Connect"), this); + //_acnDisconnect->setEnabled(false); + _acnQuit = new QAction(tr("&Quit"), this); + + // setup menu + _menu->addAction(_acnDisconnect); + _menu->addSeparator(); + _menu->addAction(_acnQuit); + + cmdMenu->setMenu(_menu); + + connect(_acnQuit, SIGNAL(triggered()), this, SLOT(onQuit())); + connect(_acnDisconnect, SIGNAL(triggered()), _connectWindow, SLOT(show())); +} + +Toolbar::~Toolbar() +{ + VncServer::instance()->stop(); + _vnc->deleteLater(); + _connectWindow->deleteLater(); +} + +//###########\\/\/ + +void Toolbar::setLocation() +{ + const QDesktopWidget desktop; + const QRect primaryScreen = desktop.screenGeometry(); + switch (_location) + { + case POSITION_TOP_LEFT: + move(primaryScreen.left(), primaryScreen.top()); + break; + case POSITION_TOP_CENTER: + move((primaryScreen.width() - this->width()) / 2 + primaryScreen.left(), primaryScreen.top()); + break; + case POSITION_TOP_RIGHT: + move(primaryScreen.right() - width(), primaryScreen.top()); + break; + case POSITION_BOTTOM_LEFT: + move(primaryScreen.left(), primaryScreen.bottom() - height()); + break; + case POSITION_BOTTOM_CENTER: + move((primaryScreen.width() - this->width()) / 2 + primaryScreen.left(), primaryScreen.bottom() - height()); + break; + case POSITION_BOTTOM_RIGHT: + move(primaryScreen.right() - width(), primaryScreen.bottom() - height()); + break; + default: + break; + } +} + +void Toolbar::setBarVisible(bool shown) +{ + const QDesktopWidget desktop; + const QRect primaryScreen = desktop.screenGeometry(); + if (!shown) + { + if (_location <= POSITION_TOP_RIGHT) + move(x(), primaryScreen.top() + 2 - height()); + else + move(x(), primaryScreen.bottom() - 2); + } + else + { + if (_location <= POSITION_TOP_RIGHT) + move(x(), primaryScreen.top()); + else + move(x(), primaryScreen.bottom() - height()); + } +} + +bool Toolbar::hideBar() +{ + if (_menu->isVisible()) // Don't hide window if any menu is open + return false; + setBarVisible(false); + return true; +} + +/** + * Override + */ + +void Toolbar::leaveEvent(QEvent* e) +{ + if (_hideTimer == 0) + _hideTimer = startTimer(100); + _hideDelay = 6; + QWidget::leaveEvent(e); +} + +void Toolbar::enterEvent(QEvent* e) +{ + if (_hideTimer != 0) + { + killTimer(_hideTimer); + _hideTimer = 0; + } + setBarVisible(true); + QWidget::enterEvent(e); +} + +void Toolbar::timerEvent(QTimerEvent* event) +{ + if (event->timerId() == _hideTimer) + { + if (--_hideDelay <= 0) + { + if (hideBar()) + { + killTimer(_hideTimer); + _hideTimer = 0; + } + } + } +} + +/** + * Slots + */ + +void Toolbar::onDisconnected(QObject* connection) +{ + if (connection != _connection) + qDebug("onDisconnect pointer mismatch!"); + _connectWindow->setConnected(false); + _connection = NULL; + lblStatus->setStyleSheet("color:red"); + lblStatus->setText(tr("Offline")); +} + +void Toolbar::onConnected(ServerConnection* connection) +{ + lblStatus->setStyleSheet("color:green"); + lblStatus->setText(tr("Online")); + // + if (_connection != NULL) + { + disconnect(_connection, SIGNAL(destroyed(QObject*)), this, SLOT(onDisconnected(QObject*))); + _connection->blockSignals(true); + _connection->disconnectFromServer(); + } + _connection = connection; + connect(_connection, SIGNAL(destroyed(QObject*)), this, SLOT(onDisconnected(QObject*))); + connect(_connection, SIGNAL(openVnc(const QString&, int, const QString&, bool, bool, const QString&, const int)), + _vnc, SLOT(open(const QString&, int, const QString&, bool, bool, const QString&, const int))); + connect(_connection, SIGNAL(closeVnc()), _vnc, SLOT(close())); + connect(_vnc, SIGNAL(running(const bool, const int)), _connection, SLOT(onVncViewerStartStop(const bool, const int))); + _connectWindow->setConnected(true); +} + +void Toolbar::onDoDisconnect() +{ + if (_connection != NULL) + _connection->disconnectFromServer(); +} + +void Toolbar::onQuit() +{ + QApplication::exit(0); +} diff --git a/src/client/toolbar/toolbar.h b/src/client/toolbar/toolbar.h new file mode 100644 index 0000000..0ce4d2b --- /dev/null +++ b/src/client/toolbar/toolbar.h @@ -0,0 +1,78 @@ +/* + # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of + # Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + */ + +#ifndef PVSCLIENTGUI_H_ +#define PVSCLIENTGUI_H_ + +#include <QtGui> +#include "ui_toolbar.h" + +class ServerConnection; +class VncWindow; +class ConnectWindow; +class BlankScreen; + +class Toolbar : public QWidget, private Ui_ToolbarClass +{ +Q_OBJECT + +private: + int _location; + int _hideTimer; + int _hideDelay; + QMenu *_menu; + QAction *_acnDisconnect; + QAction *_acnQuit; + ServerConnection *_connection; + + ConnectWindow *_connectWindow; + VncWindow *_vnc; + + void setLocation(); + bool hideBar(); + void setBarVisible(bool shown); + void setupMenu(); + + void leaveEvent(QEvent* e); + void enterEvent(QEvent* e); + void timerEvent(QTimerEvent* event); + +public: + Toolbar(QWidget *parent = NULL); + virtual ~Toolbar(); + + int const static POSITION_TOP_LEFT = 0; + int const static POSITION_TOP_CENTER = 1; + int const static POSITION_TOP_RIGHT = 2; + int const static POSITION_BOTTOM_LEFT = 3; + int const static POSITION_BOTTOM_CENTER = 4; + int const static POSITION_BOTTOM_RIGHT = 5; + +protected: + /* + void enterEvent(QEvent *e); + void leaveEvent(QEvent *e); + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + */ + +private slots: + void onDisconnected(QObject* connection); + void onConnected(ServerConnection* connection); + void onDoDisconnect(); + void onQuit(); + +}; + +#endif /* PVSCLIENTGUI_H_ */ diff --git a/src/client/util/platform/blankscreen.h b/src/client/util/platform/blankscreen.h new file mode 100755 index 0000000..8ed4c04 --- /dev/null +++ b/src/client/util/platform/blankscreen.h @@ -0,0 +1,25 @@ +#ifndef _BLANKSCREEN_H_ +#define _BLANKSCREEN_H_ + +#include <QString> +#include <QDialog> + +class BlankScreen_Sysdep; + +class BlankScreen : public QDialog +{ + Q_OBJECT +public: + BlankScreen(); + virtual ~BlankScreen(); + void draw(bool force = false); + bool lock(const QString& message); + bool unlock(); + +private: + bool _locked; + QString _message; + BlankScreen_Sysdep* _sysdep; +}; + +#endif diff --git a/src/client/util/platform/blankscreen_Win32.cpp b/src/client/util/platform/blankscreen_Win32.cpp new file mode 100755 index 0000000..2bba1cf --- /dev/null +++ b/src/client/util/platform/blankscreen_Win32.cpp @@ -0,0 +1,41 @@ +
+#include "blankscreen.h"
+#include <qwidget.h>
+
+struct BlankScreen_Sysdep {
+
+ bool locked;
+ QWidget* blankwin;
+
+ QString lockMsg;
+ int blackColor, whiteColor;
+ int offX, offY;
+};
+
+BlankScreen::BlankScreen()
+{
+ _sysdep = new BlankScreen_Sysdep;
+ _sysdep->blankwin = new QWidget(0, Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
+ _sysdep->blankwin->setWindowState(Qt::WindowFullScreen);
+ _sysdep->blankwin->show();
+}
+
+BlankScreen::~BlankScreen()
+{
+ delete _sysdep;
+}
+
+void BlankScreen::draw(bool force)
+{
+
+}
+
+bool BlankScreen::lock(const QString& message)
+{
+ return true;
+}
+
+bool BlankScreen::unlock()
+{
+ return true;
+}
diff --git a/src/client/util/platform/blankscreen_X11.cpp b/src/client/util/platform/blankscreen_X11.cpp new file mode 100755 index 0000000..69b6d8c --- /dev/null +++ b/src/client/util/platform/blankscreen_X11.cpp @@ -0,0 +1,75 @@ +#include "blankscreen.h" + +#include <QApplication> +#include <QDesktopWidget> + +#include <X11/Xlib.h> +#include <X11/cursorfont.h> + +#include <cassert> +#include <cstring> + +struct BlankScreen_Sysdep +{ + Display *dpy; +}; + +BlankScreen::BlankScreen() : QDialog(NULL) +{ + _sysdep = new BlankScreen_Sysdep; + _sysdep->dpy = XOpenDisplay(NULL); + if (_sysdep->dpy == NULL) + return; + assert(_sysdep->dpy); + + setWindowFlags(Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint); + setStyleSheet("background-color:#000"); + + _locked = false; +} + +BlankScreen::~BlankScreen() +{ + unlock(); + delete _sysdep; +} + +bool BlankScreen::lock(const QString& message) +{ + if (_locked) + return true; + if (_sysdep->dpy == NULL) + return false; + + _message = message; + + this->setGeometry(QApplication::desktop()->geometry()); + this->showFullScreen(); + this->activateWindow(); + this->raise(); + + // grabbing of keyboard and mouse + XGrabKeyboard(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, GrabModeAsync, GrabModeAsync, CurrentTime); + XGrabPointer(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, 0, GrabModeAsync, GrabModeAsync, None, 0, CurrentTime); + + _locked = true; + return true; +} + +bool BlankScreen::unlock() +{ + this->hide(); + if (!_locked) + return true; + if (_sysdep->dpy == NULL) + return false; + + // ungrabbing of keyboard and mouse + XUngrabPointer(_sysdep->dpy, CurrentTime); + XUngrabKeyboard(_sysdep->dpy, CurrentTime); + + XFlush(_sysdep->dpy); + + _locked = false; + return true; +} diff --git a/src/client/util/util.cpp b/src/client/util/util.cpp new file mode 100644 index 0000000..9dcbebb --- /dev/null +++ b/src/client/util/util.cpp @@ -0,0 +1,25 @@ +/* + * Util.cpp + * + * Created on: 18.01.2013 + * Author: sr + */ + +#include "util.h" +#include <QSettings> + +namespace Util +{ +//# +//# +QDir settingsDir() +{ + USER_SETTINGS(settings); + QFileInfo fi(settings.fileName()); + QDir path(fi.path()); + return path; +} +//# +//# +} + diff --git a/src/client/util/util.h b/src/client/util/util.h new file mode 100644 index 0000000..82248c0 --- /dev/null +++ b/src/client/util/util.h @@ -0,0 +1,23 @@ +#ifndef UTIL_H_ +#define UTIL_H_ + +// Helper for getting a settings object in various places, so if you ever change the organization, location, +// file format or anything, you won't have to edit in 100 places. +// Use like this: +// USER_SETTINGS(settings) +// settings.value("somekey") +#define USER_SETTINGS(name) QSettings name (QSettings::IniFormat, QSettings::UserScope, "openslx", "pvs2client") +#define SYSTEM_SETTINGS(name) QSettings name (QSettings::IniFormat, QSettings::SystemScope, "openslx", "pvs2client") + +#include <QDir> + +namespace Util +{ +//# +//# +QDir settingsDir(); +//# +//# +} + +#endif /* UTIL_H_ */ diff --git a/src/client/vnc/vncserver.cpp b/src/client/vnc/vncserver.cpp new file mode 100644 index 0000000..2b49b8e --- /dev/null +++ b/src/client/vnc/vncserver.cpp @@ -0,0 +1,191 @@ +/* + * vncserver.cpp + * + * Created on: 24.01.2013 + * Author: sr + */ + +#include <QProcess> +#include "vncserver.h" +#include "../util/util.h" + +/******************************************* + * STATIC + *******************************************/ + +VncServer* VncServer::me = NULL; + +VncServer* VncServer::instance() +{ + if (me == NULL) + me = new VncServer(); + return me; +} + +// +static QString makePassword(int len = 10) +{ + char pass[len]; + for (int i = 0; i < len; ++i) + pass[i] = 43 + qrand() % 80; + return QString::fromUtf8(pass, len); +} + +// Ugly hack to get an el-cheapo platform independent sleep +struct Sleeper : public QThread +{ +static void msleep(unsigned long msecs) { QThread::msleep(msecs); } +}; + +/******************************************* + * INSTANCE + *******************************************/ + +VncServer::VncServer() : + _process(NULL), _port(0), _timerId(0) +{ + // TODO Auto-generated constructor stub +} + +VncServer::~VncServer() +{ + // TODO Auto-generated destructor stub +} + +void VncServer::start() +{ + // Keep things clean + if (_process != NULL) + { + disconnect(_process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(onError(QProcess::ProcessError))); + disconnect(_process, SIGNAL(finished(int)), this, SLOT(onFinished(int))); + } + this->stop(); + // Generate passwords + _rwpass = makePassword(); + _ropass = makePassword(); + // Create new password file + QDir path = Util::settingsDir(); + QString pwfile(path.absoluteFilePath("vncpass")); + QFile pwhandle(pwfile); + if (pwhandle.exists()) + pwhandle.remove(); + if (!pwhandle.open(QIODevice::WriteOnly)) + { + qDebug() << "Could not open " << pwfile << " for writing"; + emit started(0, _ropass, _rwpass); + return; + } + pwhandle.setPermissions(QFile::ReadOwner | QFile::WriteOwner); + pwhandle.write(_rwpass.toUtf8().constData()); + pwhandle.write("\n"); + pwhandle.write(_ropass.toUtf8().constData()); + pwhandle.write("\n"); + pwhandle.close(); + // Create new process + _process = new QProcess(this); + connect(_process, SIGNAL(readyReadStandardOutput()), this, SLOT(onStdOut())); + connect(_process, SIGNAL(readyReadStandardError()), this, SLOT(onStdErr())); + connect(_process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(onError(QProcess::ProcessError))); + connect(_process, SIGNAL(finished(int)), this, SLOT(onFinished(int))); + _timerId = startTimer(4000); + QStringList args; + args << "-forever"; + args << "-display" << ":0"; + args << "-passwdfile" << (QString("rm:" + pwfile)); + args << "-shared"; + args << "-autoport" << QString::number(54112); + qDebug() << "Arguments are: " << args; + _process->start("x11vnc", + args, + QIODevice::ReadOnly); +} + +void VncServer::stop() +{ + if (_timerId != 0) + { + killTimer(_timerId); + _timerId = 0; + } + if (_process == NULL) + return; + qDebug("Stopping old VNC server."); + disconnect(_process, SIGNAL(readyReadStandardOutput()), this, SLOT(onStdOut())); + disconnect(_process, SIGNAL(readyReadStandardError()), this, SLOT(onStdErr())); + QProcess *process = _process; + _process = NULL; + _port = 0; + process->terminate(); + for (int i = 0; i < 10 && process->state() != QProcess::NotRunning; ++i) + Sleeper::msleep(10); + if (process->state() == QProcess::Running) + process->kill(); + for (int i = 0; i < 10 && process->state() != QProcess::NotRunning; ++i) + Sleeper::msleep(10); + process->deleteLater(); +} + +/** + * Overrides + */ + +void VncServer::timerEvent(QTimerEvent *event) +{ + // Error timeout (3s), tell server that vnc setup failed + this->stop(); + emit started(0, _ropass, _rwpass); +} + +/** + * Slots + */ + +void VncServer::onStdOut() +{ + if (_process == NULL) + { + qDebug("VncServer::onStdOut() called in bad state."); + return; + } + QByteArray data(_process->readAllStandardOutput()); + qDebug() << "x11vnc: " << data; + if (_port <= 0) + { + const int pos = data.indexOf("PORT=", 0); + if (pos != -1) + { + _port = atoi(data.constData() + pos + 5); + qDebug() << "Got VNC port " << _port << ", ro " << _ropass << ", rw " << _rwpass; + emit started(_port, _ropass, _rwpass); + // Kill error timer, but only if port seemed valid + if (_timerId != 0 && _port > 0) + { + killTimer(_timerId); + _timerId = 0; + } + } + } +} + +void VncServer::onStdErr() +{ + if (_process == NULL) + { + qDebug("VncServer::onStdErr() called in bad state."); + return; + } + QByteArray data(_process->readAllStandardError()); +} + +void VncServer::onError(QProcess::ProcessError error) +{ + this->stop(); + emit started(0, _ropass, _rwpass); +} + +void VncServer::onFinished(int exitCode) +{ + this->stop(); + emit started(0, _ropass, _rwpass); +} diff --git a/src/client/vnc/vncserver.h b/src/client/vnc/vncserver.h new file mode 100644 index 0000000..2aae49c --- /dev/null +++ b/src/client/vnc/vncserver.h @@ -0,0 +1,52 @@ +/* + * vncserver.h + * + * Created on: 24.01.2013 + * Author: sr + */ + +#ifndef VNCSERVER_H_ +#define VNCSERVER_H_ + +#include <QtCore> + +class VncServer; + +class VncServer : public QObject +{ + Q_OBJECT + +private: + QProcess *_process; + QString _ropass; + QString _rwpass; + int _port; + int _timerId; + + VncServer(); + virtual ~VncServer(); + + static VncServer *me; + +public: + static VncServer *instance(); + + void start(); + void stop(); + +protected: + void timerEvent(QTimerEvent *event); + +signals: + // Emited when started succesfully, or if startup failed. port will be <= 0 if it failed. + void started(int port, QString& ropass, QString& rwpass); + +private slots: + void onStdOut(); + void onStdErr(); + void onFinished(int exitCode); + void onError(QProcess::ProcessError error); + +}; + +#endif /* VNCSERVER_H_ */ diff --git a/src/client/vnc/vncthread.cpp b/src/client/vnc/vncthread.cpp new file mode 100644 index 0000000..492f970 --- /dev/null +++ b/src/client/vnc/vncthread.cpp @@ -0,0 +1,314 @@ +/* + # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of + # Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + # ----------------------------------------------------------------------------- + # vncClientThread.cpp + # - Connection to remove vnc server + # - Emits Qt signal on framebuffer updates + # ----------------------------------------------------------------------------- + */ + +#include "vncthread.h" +#include <QPainter> + +#include <netinet/tcp.h> + +// greatest common divisor +static int gcd(int a, int b) +{ + if (b == 0) + return a; + return gcd(b, a % b); +} + +VncThread::VncThread(QString host, int port, QString passwd, int quality) : + QThread(), _frameBuffer(NULL), _painter(NULL), _hasNewLocalSize(false), _run(true) +{ + _srcStepX = _srcStepY = _dstStepX = _dstStepY = 0; + _host = host; + _port = port; + _passwd = passwd; + _quality = quality; + _client = NULL; + _connected = false; + moveToThread(this); +} + +// ALWAYS delete this class from another thread using delete, not deleteLater, or you will deadlock the thread +VncThread::~VncThread() +{ + qDebug("VNC worker destructor called, waiting for thread finishing..."); + _run = false; + while (this->isRunning()) + this->msleep(10); + qDebug("Thread ended."); + if (_frameBuffer) + delete[] _frameBuffer; + if (_client != NULL) + { + if (_client->sock != -1) + ::close(_client->sock); + _client->frameBuffer = NULL; + rfbClientCleanup(_client); + } + if (_painter != NULL) + delete _painter; +} + +// Calc matching pixel borders for both resolutions to prevent artifacts through bilinear scaling +void VncThread::calcScaling() +{ + if (_localSize.isEmpty() || _localSize.width() == 0 || _localSize.height() == 0) + return; + if (_clientSize.isEmpty() || _clientSize.width() == 0 || _clientSize.height() == 0) + return; + const int gcdX = gcd(_localSize.width(), _clientSize.width()); + const int gcdY = gcd(_localSize.height(), _clientSize.height()); + _srcStepX = _clientSize.width() / gcdX; + _srcStepY = _clientSize.height() / gcdY; + _dstStepX = _localSize.width() / gcdX; + _dstStepY = _localSize.height() / gcdY; + qDebug() << "Scaling updated to " << _clientSize << " -> " << _localSize; + emit imageUpdated(0, 0, _localSize.width(), _localSize.height()); +} + +//////////////////////////////////////////////////////////////////////////////// +// Public + +void VncThread::setTargetSize(const QSize size) +{ + if (_localSize == size) + return; + qDebug() << "Setting target size to " << size; + QMutexLocker lock(&_mutex); + _newLocalSize = size; + _hasNewLocalSize = true; +} + +void VncThread::run() +{ + qDebug("[%s] VNC client started.", metaObject()->className()); + qDebug("[%s] Host: '%s' Port: %i Passwd: '%s' Quality: %i", metaObject()->className(), qPrintable(_host), _port, + qPrintable(_passwd), _quality); + + // setup network + _client = rfbGetClient(8, 3, 4); + _client->MallocFrameBuffer = &frameBufferHandler; + _client->canHandleNewFBSize = true; + free(_client->serverHost); // in rfbGetClient, serverHost is assigned strdup(""), so free that first. + _client->serverHost = strdup(_host.toUtf8().constData()); + _client->desktopName = NULL; + _client->serverPort = _port; + _client->GetPassword = &passwdHandler; + _client->GotFrameBufferUpdate = &updateImage; + _client->frameBuffer = NULL; + + // save this instance in vnc-struct for callbacks + rfbClientSetClientData(_client, 0, this); + + // start client + if (!rfbInitClient(_client, NULL, NULL)) + { + _client = NULL; // !!! <- if you don't do this you will get a segfault later when you try to clean up _client, as rfbInitClient already did so + this->stop(); + return; + } + + qDebug("[%s] Connection successful!", metaObject()->className()); + int one = 1; + setsockopt(_client->sock, SOL_TCP, TCP_NODELAY, &one, sizeof(one)); + one = 1; + setsockopt(_client->sock, SOL_TCP, TCP_QUICKACK, &one, sizeof(one)); + + // Main VNC event loop + emit projectionStarted(); + while (_run) + { + _connected = true; + const int i = WaitForMessage(_client, 100 * 1000); // wait 100ms for message. returns -1 on error/disconnect, 0 if nothing happened, 1 if new data arrived + if (i < 0) + break; + if (i > 0 && !HandleRFBServerMessage(_client)) + break; + + if (_hasNewLocalSize) + { + QMutexLocker lock(&_mutex); + _hasNewLocalSize = false; + _localSize = _newLocalSize; + if (_painter != NULL) + delete _painter; + _imgScaled = QImage(_localSize, QImage::Format_RGB32); + _painter = new QPainter(&_imgScaled); + this->calcScaling(); + } + + /* + //work yourself through event queue and fire every event... + while (!_eventQueue.isEmpty()) { + SomeEvent* event = _eventQueue.dequeue(); + event->fire(_client); + delete event; + }*/ + } + + _connected = false; + qDebug("[%s] VNC client stopped.", metaObject()->className()); +} + +const QString VncThread::getDesktopName() const +{ + if (_client == NULL || _client->desktopName == NULL) + return QString(); + return QString(_client->desktopName); +} + +void VncThread::mouseEvent(int x, int y, int buttonMask) +{ + //QMutexLocker lock(&mutex); + if (!_run) + return; + + _eventQueue.enqueue(new PointerEvent(x, y, buttonMask)); +} + +void VncThread::keyEvent(int key, bool pressed) +{ + //QMutexLocker lock(&mutex); + if (!_run) + return; + + _eventQueue.enqueue(new KeyEvent(key, pressed)); +} + +void VncThread::processImageUpdate(const int x, const int y, const int w, const int h) +{ + if (_srcStepX > 1 || _srcStepY > 1) + { + // Scaling is required as vnc server and client are using different resolutions + // Calc section offsets first + const int startX = x / _srcStepX; + const int startY = y / _srcStepY; + const int endX = (x + w - 1) / _srcStepX + 1; + const int endY = (y + h - 1) / _srcStepY + 1; + // Now pixel offsets for source + const int srcX = startX * _srcStepX; + const int srcY = startY * _srcStepY; + const int srcW = endX * _srcStepX - srcX; + const int srcH = endY * _srcStepY - srcY; + // Pixel offsets for destination + const int dstX = startX * _dstStepX; + const int dstY = startY * _dstStepY; + const int dstW = endX * _dstStepX - dstX; + const int dstH = endY * _dstStepY - dstY; + // Rescale + if (_painter != NULL) + { + QImage scaled( + _img.copy(srcX, srcY, srcW, srcH).scaled(dstW, dstH, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + _painter->drawImage(dstX, dstY, scaled, 0, 0, dstW, dstH); + emit imageUpdated(dstX, dstY, dstW, dstH); + } + } + else + { + // Same resolution, nothing to do + emit imageUpdated(x, y, w, h); + } +} + +// *** callback stuff *** + +// the vnc lib is requesting the connection password +char* VncThread::passwdHandler(rfbClient *client) +{ + VncThread* t = (VncThread*)rfbClientGetClientData(client, 0); + return strdup(t->_passwd.toUtf8()); +} + +// the vnc lib is telling us the size and bit depth of the remote screen +rfbBool VncThread::frameBufferHandler(rfbClient *client) +{ + VncThread *t = (VncThread*)rfbClientGetClientData(client, 0); + const int width = client->width, height = client->height, depth = client->format.bitsPerPixel; + const int size = width * height * (depth / 8); + qDebug("[%s] Remote desktop: %ix%ix%i", t->metaObject()->className(), width, height, depth); + + QMutexLocker lock(&(t->_mutex)); + + if (t->_frameBuffer) + delete[] t->_frameBuffer; + + t->_frameBuffer = new uint8_t[size]; + client->frameBuffer = t->_frameBuffer; + memset(client->frameBuffer, '\0', size); + client->format.bitsPerPixel = 32; + client->format.redShift = 16; + client->format.greenShift = 8; + client->format.blueShift = 0; + client->format.redMax = 0xff; + client->format.greenMax = 0xff; + client->format.blueMax = 0xff; + + const int quality = t->_quality; + switch (quality) + { + case VncThread::HIGH: + client->appData.useBGR233 = 0; + client->appData.encodingsString = "copyrect zlib hextile raw"; + client->appData.compressLevel = 4; + client->appData.qualityLevel = 9; + client->appData.scaleSetting = 0; + break; + case VncThread::MEDIUM: + client->appData.useBGR233 = 0; + client->appData.encodingsString = "copyrect tight zrle ultra zlib hextile corre rre raw"; + client->appData.compressLevel = 7; + client->appData.qualityLevel = 8; + client->appData.scaleSetting = 0; + break; + case VncThread::LOW: + default: + client->appData.useBGR233 = 1; + client->appData.encodingsString = "copyrect tight zrle ultra zlib hextile corre rre raw"; + client->appData.compressLevel = 9; + client->appData.qualityLevel = 1; + client->appData.scaleSetting = 0; + break; + } + SetFormatAndEncodings(client); + + t->_clientSize = QSize(width, height); + + t->_img = QImage(client->frameBuffer, client->width, client->height, QImage::Format_RGB32); + + t->calcScaling(); + + return true; +} + +void VncThread::updateImage(rfbClient* client, int x, int y, int w, int h) +{ + VncThread* t = (VncThread*)rfbClientGetClientData(client, 0); + t->processImageUpdate(x, y, w, h); +} + +// *** event stuff *** + +void PointerEvent::fire(rfbClient* cl) +{ + SendPointerEvent(cl, _x, _y, _buttonMask); +} + +void KeyEvent::fire(rfbClient* cl) +{ + SendKeyEvent(cl, _key, _pressed); +} diff --git a/src/client/vnc/vncthread.h b/src/client/vnc/vncthread.h new file mode 100644 index 0000000..b6679b3 --- /dev/null +++ b/src/client/vnc/vncthread.h @@ -0,0 +1,141 @@ +/* + # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of + # Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + */ + +#ifndef VNCCLIENTTHREAD_H_ +#define VNCCLIENTTHREAD_H_ + +#include <QtCore> +#include <QImage> +#include <QThread> + +class QPainter; + +extern "C" +{ +#include <rfb/rfbclient.h> +} + +/** + * - START - + * Event classes. Not my code. Might be useful to implement remote assistance via VNC later. + * Code might come from the KDE VNC client. + */ +class SomeEvent +{ +public: + virtual ~SomeEvent(){} + virtual void fire(rfbClient*) = 0; +}; + +class KeyEvent : public SomeEvent +{ +public: + KeyEvent(int key, int pressed) : + _key(key), _pressed(pressed) + { + } + + void fire(rfbClient*); + +private: + int _key; + int _pressed; +}; + +class PointerEvent : public SomeEvent +{ +public: + PointerEvent(int x, int y, int buttonMask) : + _x(x), _y(y), _buttonMask(buttonMask) + { + } + + void fire(rfbClient*); + +private: + int _x; + int _y; + int _buttonMask; +}; +/** - END - **/ + +/** + * VncThread - communicate with VNC server, scale image if necessary. + * + * As this class is derived from QThread and overrides the run() method, + * it does not have an event-loop. Do NOT try to add any slots to it. + * It will NOT be able to receive signals. Emitting signals is fine though. + */ +class VncThread : public QThread +{ +Q_OBJECT + +private: + rfbClient *_client; + quint8 *_frameBuffer; + + QString _host; + int _port; + QString _passwd; + int _quality; + QQueue<SomeEvent*> _eventQueue; + + QPainter *_painter; + QImage _img; + QImage _imgScaled; + QSize _clientSize; + QSize _localSize; + QMutex _mutex; + + QSize _newLocalSize; + volatile bool _hasNewLocalSize; + + int _srcStepX, _srcStepY, _dstStepX, _dstStepY; + + bool _connected; + volatile bool _run; + + void calcScaling(); + + // Callbacks for rfb lib. make them class members so the callbacks can access private members of the class. + static void updateImage(rfbClient *client, int x, int y, int w, int h); + static char* passwdHandler(rfbClient *client); + static rfbBool frameBufferHandler(rfbClient *client); + +public: + VncThread(QString host, int port, QString passwd, int quality); + // Do NOT delete this class directly. use VncThread::destroy() instead! + ~VncThread(); + + const QImage& getImage() const { if (_srcStepX > 1 || _srcStepY > 1) return _imgScaled; return _img; } + const QSize& getSourceSize() const { return _clientSize; } + const QString getDesktopName() const; + void processImageUpdate(const int x, const int y, const int w, const int h); + void mouseEvent(int x, int y, int buttonMask); + void keyEvent(int key, bool pressed); + const bool isConnected() const { return _connected; } + void stop() { _run = false; } + void setTargetSize(const QSize size); + void run(); + + int const static HIGH = 0; + int const static MEDIUM = 1; + int const static LOW = 2; + +signals: + void imageUpdated(const int x, const int y, const int w, const int h); + void projectionStarted(); + +}; + +#endif /* VNCCLIENTTHREAD_H_ */ diff --git a/src/client/vnc/vncwindow.cpp b/src/client/vnc/vncwindow.cpp new file mode 100644 index 0000000..d4f6d40 --- /dev/null +++ b/src/client/vnc/vncwindow.cpp @@ -0,0 +1,277 @@ +/* + # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of + # Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + # ----------------------------------------------------------------------------- + # clientVNCViewer.cpp + # - connetct to vnc server and show remote screen (window/full) + # ----------------------------------------------------------------------------- + */ + +#include "vncwindow.h" +#include "vncthread.h" + +VncWindow::VncWindow(QWidget *parent) : + QDialog(parent), _vncWorker(NULL), _viewOnly(true), _buttonMask(0), _clientId(0) +{ + // +} + +VncWindow::~VncWindow() +{ + close(); +} + +//////////////////////////////////////////////////////////////////////////////// +// Public + +void VncWindow::open(const QString& host, int port, const QString& passwd, bool ro, bool fullscreen, const QString& caption, const int clientId) +{ + // start thread for vnc-updates + this->onThreadFinished(); + _clientId = clientId; + _vncWorker = new VncThread(host, port, passwd, 1); + connect(_vncWorker, SIGNAL(finished()), this, SLOT(onThreadFinished()), Qt::QueuedConnection); + connect(_vncWorker, SIGNAL(projectionStarted()), this, SLOT(onProjectionStarted()), Qt::QueuedConnection); + _vncWorker->start(QThread::LowPriority); + //_rfbclient = _thread->getRfbClient(); + //installEventFilter(this); + setMouseTracking(true); // get mouse events even when there is no mousebutton pressed + setFocusPolicy(Qt::WheelFocus); //needed?!? + + setWindowTitle(caption); + + setAttribute(Qt::WA_OpaquePaintEvent); + + if (fullscreen) + { + setWindowFlags(Qt::WindowStaysOnTopHint); + showFullScreen(); + activateWindow(); + raise(); + } + else + { + resize(800, 600); + showNormal(); + } + + this->show(); + _vncWorker->setTargetSize(this->size()); + + connect(_vncWorker, SIGNAL(imageUpdated(const int, const int, const int, const int)), this, + SLOT(onUpdateImage(const int, const int, const int, const int)), + Qt::QueuedConnection); +} + +void VncWindow::closeEvent(QCloseEvent *e) +{ + e->ignore(); + qDebug("Closing VNC viewer window."); + this->setVisible(false); + this->onThreadFinished(); + emit running(false, _clientId); +} + +void VncWindow::onUpdateImage(const int x, const int y, const int w, const int h) +{ + this->repaint(x, y, w, h); +} + +/** + * Thread finished, clean up and close window + */ +void VncWindow::onThreadFinished() +{ + if (_vncWorker) + { + disconnect(_vncWorker, SIGNAL(imageUpdated(const int, const int, const int, const int)), this, + SLOT(onUpdateImage(const int, const int, const int, const int))); + disconnect(_vncWorker, SIGNAL(finished()), this, SLOT(onThreadFinished())); + _vncWorker->stop(); + delete _vncWorker; + _vncWorker = NULL; + this->close(); + } +} + +/** + * VNC Thread successfully connected to remote end - projection will start + */ +void VncWindow::onProjectionStarted() +{ + emit running(true, _clientId); +} + +//////////////////////////////////////////////////////////////////////////////// +// Protected + +void VncWindow::paintEvent(QPaintEvent *event) +{ + const QRect &r = event->rect(); + this->draw(r.left(), r.top(), r.width(), r.height()); + event->accept(); +} + +void VncWindow::resizeEvent(QResizeEvent* event) +{ + _vncWorker->setTargetSize(event->size()); +} + +void VncWindow::draw(const int x, const int y, const int w, const int h) +{ + if (_vncWorker == NULL) + return; + QPainter painter(this); + painter.drawImage(x, y, _vncWorker->getImage(), x, y, w, h); + //painter.drawRect(x,y,w,h); // for debugging updated area +} + +//returns true if event was processed +/*bool VncWindow::event(QEvent *event) + { + switch (event->type()) { + case QEvent::KeyPress: + case QEvent::KeyRelease: + + keyEventHandler(static_cast<QKeyEvent*>(event)); + return true; + break; + case QEvent::MouseButtonDblClick: + case QEvent::MouseButtonPress: + case QEvent::MouseButtonRelease: + case QEvent::MouseMove: + mouseEventHandler(static_cast<QMouseEvent*>(event)); + return true; + break; + case QEvent::Wheel: + wheelEventHandler(static_cast<QWheelEvent*>(event)); + return true; + break; + default: + return false; + } + }*/ + +//handles mouseevents +void VncWindow::mouseEventHandler(QMouseEvent *e) +{ + if (e->type() != QEvent::MouseMove) + { + if ((e->type() == QEvent::MouseButtonPress) || (e->type() == QEvent::MouseButtonDblClick)) + { + if (e->button() & Qt::LeftButton) + _buttonMask |= 0x01; + if (e->button() & Qt::MidButton) + _buttonMask |= 0x02; + if (e->button() & Qt::RightButton) + _buttonMask |= 0x04; + } + else if (e->type() == QEvent::MouseButtonRelease) + { + if (e->button() & Qt::LeftButton) + _buttonMask &= 0xfe; + if (e->button() & Qt::MidButton) + _buttonMask &= 0xfd; + if (e->button() & Qt::RightButton) + _buttonMask &= 0xfb; + } + } + _vncWorker->mouseEvent(e->x(), e->y(), _buttonMask); +} + +//handles mousewheel +void VncWindow::wheelEventHandler(QWheelEvent *event) +{ + int eb = 0; + if (event->delta() < 0) + eb |= 0x10; + else + eb |= 0x8; + + const int x = event->x(); + const int y = event->y(); + + _vncWorker->mouseEvent(x, y, eb | _buttonMask); + _vncWorker->mouseEvent(x, y, _buttonMask); +} + +//Handles keypress +void VncWindow::keyEventHandler(QKeyEvent *e) +{ + rfbKeySym k = e->nativeVirtualKey(); + + // do not handle Key_Backtab separately because the Shift-modifier + // is already enabled + if (e->key() == Qt::Key_Backtab) + { + k = XK_Tab; + } + + const bool pressed = (e->type() == QEvent::KeyPress); + + // handle modifiers + if (k == XK_Shift_L || k == XK_Control_L || k == XK_Meta_L || k == XK_Alt_L) + { + if (pressed) + { + _modkeys[k] = true; + } + else if (_modkeys.contains(k)) + { + _modkeys.remove(k); + } + else + { + unpressModifiers(); + } + } + + if (k) + { + _vncWorker->keyEvent(k, pressed); + } +} + +void VncWindow::keyPressEvent(QKeyEvent* event) +{ + if (event->key() == Qt::Key_Escape) + this->close(); +} + +//removes modifier keys which have been pressed +void VncWindow::unpressModifiers() +{ + const QList<unsigned int> keys = _modkeys.keys(); + QList<unsigned int>::const_iterator it = keys.constBegin(); + while (it != keys.end()) + { + _vncWorker->keyEvent(*it, false); + it++; + } + _modkeys.clear(); +} + +//(QT Function) Filters events, if _viewOnly is set, true is returned and the event is ignored +//TODO use this function when implementing viewonly switch +bool VncWindow::eventFilter(QObject *obj, QEvent *event) +{ + if (_viewOnly) + { + if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease + || event->type() == QEvent::MouseButtonDblClick || event->type() == QEvent::MouseButtonPress + || event->type() == QEvent::MouseButtonRelease || event->type() == QEvent::Wheel + || event->type() == QEvent::MouseMove) + return true; + } + + return false; + //return RemoteView::eventFilter(obj, event); +} diff --git a/src/client/vnc/vncwindow.h b/src/client/vnc/vncwindow.h new file mode 100644 index 0000000..3a73a8e --- /dev/null +++ b/src/client/vnc/vncwindow.h @@ -0,0 +1,73 @@ +/* + # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of + # Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + */ + +#ifndef CLIENTVNCVIEWER_H_ +#define CLIENTVNCVIEWER_H_ + +#include <QtGui> +#include <QMouseEvent> + +class VncThread; +class QPainter; + +// Definition of key modifier mask constants +#define KMOD_Alt_R 0x01 +#define KMOD_Alt_L 0x02 +#define KMOD_Meta_L 0x04 +#define KMOD_Control_L 0x08 +#define KMOD_Shift_L 0x10 + +class VncWindow : public QDialog +{ +Q_OBJECT + +public: + VncWindow(QWidget *parent = 0); + virtual ~VncWindow(); + +protected slots: + void onUpdateImage(const int x, const int y, const int w, const int h); + void onThreadFinished(); + void onProjectionStarted(); + + void open(const QString& host, int port, const QString& passwd, bool ro, bool fullscreen, const QString& caption, const int clientId); + +signals: + void running(const bool isRunning, const int clientId); + + +protected: + void draw(const int x, const int y, const int w, const int h); + void paintEvent(QPaintEvent *event); + void resizeEvent(QResizeEvent* event); + void closeEvent(QCloseEvent *e); + //bool event(QEvent *event); + //bool eventFilter(QObject *obj, QEvent *event); + +private: + VncThread *_vncWorker; + bool _viewOnly; + int _buttonMask; + QMap<unsigned int, bool> _modkeys; + int _clientId; + + bool eventFilter(QObject *obj, QEvent *event); + void keyPressEvent(QKeyEvent* event); + void keyEventHandler(QKeyEvent *e); + void unpressModifiers(); + void wheelEventHandler(QWheelEvent *event); + void mouseEventHandler(QMouseEvent *event); + +}; + +#endif /* CLIENTVNCVIEWER_H_ */ diff --git a/src/server/clicklabel/clicklabel.cpp b/src/server/clicklabel/clicklabel.cpp new file mode 100644 index 0000000..2989542 --- /dev/null +++ b/src/server/clicklabel/clicklabel.cpp @@ -0,0 +1,14 @@ +#include "clicklabel.h" + +ClickLabel::ClickLabel(QWidget *parent) : QLabel(parent) +{ + QFont f(this->font()); + f.setPixelSize(20); + this->setFont(f); + this->setMaximumHeight(22); +} + +void ClickLabel::mouseReleaseEvent(QMouseEvent* e) +{ + emit clicked(); +} diff --git a/src/server/clicklabel/clicklabel.h b/src/server/clicklabel/clicklabel.h new file mode 100644 index 0000000..6a05152 --- /dev/null +++ b/src/server/clicklabel/clicklabel.h @@ -0,0 +1,25 @@ +#ifndef _CLICKLABEL_H_ +#define _CLICKLABEL_H_ + +#include <QtGui> +#include <QLabel> + + +class ClickLabel : public QLabel +{ + Q_OBJECT + +public: + ClickLabel(QWidget *parent); + +protected: + void mouseReleaseEvent(QMouseEvent* e); + + +signals: + void clicked(); + +}; + + +#endif diff --git a/src/server/connectionframe/connectionframe.cpp b/src/server/connectionframe/connectionframe.cpp new file mode 100644 index 0000000..1544c76 --- /dev/null +++ b/src/server/connectionframe/connectionframe.cpp @@ -0,0 +1,278 @@ +/* +# Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# src/gui/connectionFrame.cpp +# ----------------------------------------------------------------------------- +*/ + + +#include "connectionframe.h" +#include "../net/client.h" +#include <QPixmap> +#include <QImage> +#include <cassert> + +static QIcon *term = NULL, *cam = NULL, *eye = NULL; + +static QString backgroundStyle("background-color: %1; margin: 1px; border: 1px solid black; border-radius: 6px"); + +ConnectionFrame::ConnectionFrame(QWidget *parent, int width, int height) : + QGroupBox(parent), _client(NULL), _timerId(0), _timerCounter(0), _selected(false), _isTutor(false) +{ + + //defines the ui-stuff + // load icons first + if (term == NULL) + { + term = new QIcon(":terminal"); + cam = new QIcon(":cam32"); + eye = new QIcon(":eye"); + } + + //this->setAttribute(Qt::WA_OpaquePaintEvent); + + _mainLayout = new QBoxLayout(QBoxLayout::TopToBottom, this); + _mainLayout->setSpacing(1); + _mainLayout->setMargin(3); + _mainLayout->setAlignment(Qt::AlignHCenter); + + _iconLayout = new QBoxLayout(QBoxLayout::RightToLeft, NULL); + _iconLayout->setSpacing(1); + _iconLayout->setMargin(3); + + _lblUserName = new QLabel("Test", this); + _lblUserName->setStyleSheet(QString::fromUtf8("background-color: white; color: black;")); + _lblUserName->setAlignment(Qt::AlignHCenter); + //_lblUsername->resize(_lblUsername->width(), _lblUsername->font().pixelSize()); + + _lblHostName = new QLabel("PC", this); + _lblHostName->setStyleSheet(QString::fromUtf8("background-color: white; color: black;")); + _lblHostName->setAlignment(Qt::AlignHCenter); + + _icoCam = addIcon(cam); + _icoEye = addIcon(eye); + + _iconLayout->addWidget(_icoCam); + _iconLayout->addWidget(_icoEye); + _iconLayout->addStretch(); + + //_layout->addWidget(_imgScreen); + _mainLayout->addLayout(_iconLayout); + _mainLayout->addStretch(); + _mainLayout->addWidget(_lblUserName); + _mainLayout->addWidget(_lblHostName); + this->setLayout(_mainLayout); + this->setSize(width, height); + this->updateColor(); +} + +ConnectionFrame::~ConnectionFrame() +{ + // +} + +QLabel* ConnectionFrame::addIcon(const QIcon* icon) +{ + QLabel *label = new QLabel(this); + label->setPixmap(icon->pixmap(24, 24, QIcon::Normal, QIcon::On)); + label->setAttribute(Qt::WA_TranslucentBackground); + label->hide(); + _icons.append(label); + return label; +} + +void ConnectionFrame::setSize(int width, int height) +{ + this->resize(width, height); +} + +void ConnectionFrame::assignClient(Client* client) +{ + assert(_client == NULL); + connect(client, SIGNAL(destroyed(QObject*)), this, SLOT(onClientDisconnected(QObject*))); + connect(client, SIGNAL(thumbUpdated(Client*, const QPixmap&)), this, SLOT(onThumbUpdated(Client*, const QPixmap&))); + connect(client, SIGNAL(vncServerStateChange(Client*)), this, SLOT(onVncServerStateChange(Client*))); + connect(client, SIGNAL(vncClientStateChange(Client*)), this, SLOT(onVncClientStateChange(Client*))); + _client = client; + _computerId = client->computerId(); + _lblHostName->setText(client->ip()); + _lblHostName->setToolTip(client->host()); + _lblUserName->setText(client->name()); + showDefaultThumb(); + if (_timerId == 0) + _timerId = startTimer(1000 + qrand() % 150); + this->updateColor(); +} + +void ConnectionFrame::showDefaultThumb() +{ + const int width = this->width() - 6; + const int height = this->height() - 8 - _lblHostName->height() - _lblUserName->height(); + _remoteScreen = term->pixmap(width, height, QIcon::Normal, QIcon::On); + this->repaint(); + //_imgScreen->setPixmap(_remoteScreen); +} + +void ConnectionFrame::mouseReleaseEvent(QMouseEvent* event) +{ + event->accept(); + if (event->button() == Qt::LeftButton) + { + QApplication::setOverrideCursor(QCursor(Qt::OpenHandCursor)); + if (this->pos() != _previousPosition) { + qDebug("Moved"); + emit frameMoved(this); + } + else + { + qDebug("Clicked"); + emit clicked(this); + } + } +} + +void ConnectionFrame::enterEvent(QEvent* event) +{ + QApplication::setOverrideCursor(QCursor(Qt::OpenHandCursor)); + event->accept(); +} + +void ConnectionFrame::leaveEvent(QEvent* event) +{ + QApplication::setOverrideCursor(QCursor(Qt::ArrowCursor)); + event->accept(); +} + +void ConnectionFrame::mousePressEvent(QMouseEvent *event) +{ + if (event->button() == Qt::RightButton) + { + // Menu... + } + else + { + _clickPoint = event->pos(); + _previousPosition = this->pos(); + QApplication::setOverrideCursor(QCursor(Qt::ClosedHandCursor)); + } + // On click, the window has to be on the top-level. + activateWindow(); + raise(); + update(); + event->accept(); +} + +void ConnectionFrame::mouseMoveEvent(QMouseEvent *event) +{ + QApplication::setOverrideCursor(QCursor(Qt::ClosedHandCursor)); + move(mapToParent(event->pos()-_clickPoint)); + event->accept(); +} + +void ConnectionFrame::mouseDoubleClickEvent(QMouseEvent* event) +{ + emit doubleClicked(this); + event->accept(); +} + +void ConnectionFrame::paintEvent(QPaintEvent *event) +{ + QGroupBox::paintEvent(event); + if (_remoteScreen.isNull()) + return; + QPainter painter(this); + painter.drawPixmap((this->width() - _remoteScreen.width()) / 2, 4, _remoteScreen); + event->accept(); +} + +void ConnectionFrame::timerEvent(QTimerEvent* event) +{ + if (_client == NULL) + return; + ++_timerCounter; + if (_client->isActiveVncServer() && _timerCounter % 5 != 0) + return; + const int width = this->width() - 8; + const int height = this->height() - 9 - _lblHostName->height() - _lblUserName->height(); + _client->requestThumb(width, height); +} + +void ConnectionFrame::setSelection(bool selected) +{ + if (_selected == selected) + return; + _selected = selected; + this->updateColor(); +} + +void ConnectionFrame::updateColor() +{ + if (_client == NULL) + { + // Unconnected Frame + if (_selected) + this->setStyleSheet(backgroundStyle.arg("rgb(140, 140, 170)")); + else + this->setStyleSheet(backgroundStyle.arg("rgb(140, 140, 140)")); + for (QList<QLabel*>::iterator it(_icons.begin()); it != _icons.end(); ++it) + (**it).hide(); + return; + } + _icoCam->setVisible(_client->isActiveVncServer()); + _icoEye->setVisible(_client->isActiveVncClient()); + + // Normal client, no special stuff active + + if (_selected && _isTutor) + this->setStyleSheet(backgroundStyle.arg("rgb(255, 220, 180)")); + else if (_isTutor) + this->setStyleSheet(backgroundStyle.arg("rgb(255, 180, 180)")); + else if (_selected) + this->setStyleSheet(backgroundStyle.arg("rgb(180, 180, 210)")); + else + this->setStyleSheet(backgroundStyle.arg("rgb(180, 180, 180)")); +} + +/** + * Slots + */ + +void ConnectionFrame::onClientDisconnected(QObject* client) +{ + assert(client == _client); + if (_timerId != 0) + { + killTimer(_timerId); + _timerId = 0; + } + _client = NULL; + _lblUserName->setText(QString()); + showDefaultThumb(); + this->updateColor(); +} + +void ConnectionFrame::onThumbUpdated(Client* client, const QPixmap& thumb) +{ + assert(client == _client); + _remoteScreen = thumb; + //_imgScreen->setPixmap(_remoteScreen); + this->repaint(); +} + +void ConnectionFrame::onVncServerStateChange(Client* client) +{ + this->updateColor(); +} + +void ConnectionFrame::onVncClientStateChange(Client* client) +{ + this->updateColor(); +} diff --git a/src/server/connectionframe/connectionframe.h b/src/server/connectionframe/connectionframe.h new file mode 100644 index 0000000..2b78056 --- /dev/null +++ b/src/server/connectionframe/connectionframe.h @@ -0,0 +1,77 @@ +#ifndef _CONNECTIONFRAME_H_ +#define _CONNECTIONFRAME_H_ +#include <QtGui> + +class Client; + +class ConnectionFrame : public QGroupBox +{ + +Q_OBJECT + +private: + + QString _computerId; + + QBoxLayout *_mainLayout; + QBoxLayout *_iconLayout; + QLabel *_lblUserName; + QLabel *_lblHostName; + + QLabel *_icoCam, *_icoEye; + QList<QLabel*> _icons; + + QPixmap _remoteScreen; + + QPoint _clickPoint; + QPoint _previousPosition; + + Client *_client; + + int _timerId, _timerCounter; + bool _selected; + bool _isTutor; + + void showDefaultThumb(); + void updateColor(); + QLabel* addIcon(const QIcon* icon); + +public: + ConnectionFrame(QWidget* parent, int width, int height); + virtual ~ConnectionFrame(); + + const QPixmap& getFramePixmap() const { return _remoteScreen; } + void setSize(int width, int height); + void assignClient(Client *client); + void setSelection(bool selected); + const inline bool selected() const { return _selected; } + + const QString& computerId() const { return _computerId; } + Client* client() const { return _client; } + + inline const bool isTutor() const { return _isTutor; } + inline void setTutor(bool b) { _isTutor = b; } + +protected: + void mouseDoubleClickEvent(QMouseEvent* event); + void mouseReleaseEvent(QMouseEvent* e); + void enterEvent(QEvent* event); + void leaveEvent(QEvent* event); + void mousePressEvent(QMouseEvent* event); + void mouseMoveEvent(QMouseEvent* event); + void paintEvent(QPaintEvent *event); + void timerEvent(QTimerEvent* event); + +signals: + void frameMoved(ConnectionFrame* frame); + void doubleClicked(ConnectionFrame* frame); + void clicked(ConnectionFrame* frame); + +private slots: + void onClientDisconnected(QObject* client); + void onThumbUpdated(Client* client, const QPixmap& thumb); + void onVncServerStateChange(Client* client); + void onVncClientStateChange(Client* client); +}; + +#endif diff --git a/src/server/main.cpp b/src/server/main.cpp new file mode 100644 index 0000000..e7c709a --- /dev/null +++ b/src/server/main.cpp @@ -0,0 +1,41 @@ +#include "mainwindow/mainwindow.h" +#include "util/util.h" + +int main(int argc, char** argv) +{ + QApplication app(argc, argv); + app.setOrganizationName("openslx"); + app.setOrganizationDomain("openslx.org"); + app.setApplicationName("pvsmgr"); + + qsrand((uint)QDateTime::currentMSecsSinceEpoch()); + + // Make sure settings directory exists + do { + USER_SETTINGS(settings); + QFileInfo fi(settings.fileName()); + QDir path(fi.path()); + qDebug() << "Settings directory is " << fi.path(); + if (!path.exists()) + path.mkpath(path.absolutePath()); + // Now check if settings file exists. If not, copy system default (if available) + if (!fi.exists()) + { + SYSTEM_SETTINGS(sys); + QFileInfo sysfi(sys.fileName()); + if (sysfi.exists()) + { + if (!QFile::copy(sys.fileName(), settings.fileName())) + qDebug() << "Copying default settings from " << sys.fileName() << " to " << settings.fileName() << " failed."; + } + } + } while (0); + + // use system locale as language to translate gui + QTranslator translator; + translator.load(":pvsmgr"); + app.installTranslator(&translator); + + MainWindow pvsmgr; + return app.exec(); +} diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp new file mode 100644 index 0000000..8c57b91 --- /dev/null +++ b/src/server/mainwindow/mainwindow.cpp @@ -0,0 +1,633 @@ +/* + # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + # ----------------------------------------------------------------------------- + # mainWindow.cpp + This is the Main class for the pvsManager. The GUI is constructed here. + # ----------------------------------------------------------------------------- + */ +// Self +#include "mainwindow.h" +// QT stuff +#include <QtGui> +#include <QFileDialog> +// Other custom UI elements +#include "../clicklabel/clicklabel.h" +#include "../sessionnamewindow/sessionnamewindow.h" +#include "../connectionframe/connectionframe.h" +// Network +#include "../net/listenserver.h" +#include "../net/client.h" +#include "../net/discoverylistener.h" +#include "../../shared/networkmessage.h" +// Others +#include "../../shared/settings.h" +#include "../util/util.h" +#include "../util/global.h" +// Auto-generated ui class +#include "ui_mainwindow.h" + +MainWindow::MainWindow(QWidget* parent) : + QMainWindow(parent), ui(new Ui::MainWindow), _tbIconSize(24), _tbArea(Qt::LeftToolBarArea), + _buttonBlockTime(0) + +{ + _sessionNameWindow = new SessionNameWindow(this); + ui->setupUi(this); + + Global::setSessionName("1234"); + + //conWin = new ConnectionWindow(ui->widget); + //ui->VconWinLayout->addWidget(conWin); + //conList = new ConnectionList(ui->ClWidget); + //ui->ClientGLayout->addWidget(conList); + + // Show only session name label, not textbox + _sessionNameLabel = new ClickLabel(this); + ui->mainLayout->addWidget(_sessionNameLabel); + + ui->frmRoom->setStyleSheet("background-color:#444"); + + // toolbar and actions in pvsmgr + ui->action_Exit->setStatusTip(tr("Exit")); + ui->action_Lock->setStatusTip(tr("Lock or Unlock all Clients")); + + // Close button in tool bar + connect(ui->action_Exit, SIGNAL(triggered()), this, SLOT(onButtonExit())); + connect(ui->action_BroadcastScreen, SIGNAL(triggered()), this, SLOT(onButtonBroadcast())); + connect(ui->action_Lock, SIGNAL(toggled(bool)), this, SLOT(onButtonLock(bool))); + // Clicking the session name label shows the edit field for it + connect(_sessionNameLabel, SIGNAL(clicked()), this, SLOT(onSessionNameClick())); + // Listen to updates to the session name through the session name window + connect(_sessionNameWindow, SIGNAL(updateSessionName()), this, + SLOT(onSessionNameUpdate())); + + setAttribute(Qt::WA_QuitOnClose); + setUnifiedTitleAndToolBarOnMac(true); + this->showMaximized(); // show the Mainwindow maximized + + _tilesX = 9; + _tilesY = 7; + _tileWidth = 10; + _tileHeight = 10; + + _timerId = 0; + _timerTimeout = 0; + + _listenServer = new ListenServer(CLIENT_PORT); + connect(_listenServer, SIGNAL(newClient(Client*)), this, SLOT(onClientConnected(Client*))); + _discoveryListener = new DiscoveryListener(); + + // Finally + this->onSessionNameUpdate(); + _timerId = startTimer(10); + _timerTimeout = 8; +} + +MainWindow::~MainWindow() +{ + _sessionNameLabel->deleteLater(); + delete ui; +} + +void MainWindow::placeFrameInFreeSlot(ConnectionFrame* frame) +{ + // Get occupied cell of each frame and store status in an array + const int elems = _tilesX * _tilesY; + int currentIndex = 0; + bool grid[elems]; + memset(grid, 0, sizeof(bool) * elems); // set everything to false + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + const QPoint &oldpos = (*it)->frameGeometry().topLeft(); + const int tx = oldpos.x() / _tileWidth; + const int ty = oldpos.y() / _tileHeight; + const int index = tx + ty * _tilesX; + if (frame == *it) + { + // Current frame is the frame to place, remember its old index + currentIndex = index; + continue; + } + if (index < 0 || index >= elems) + { + // Current frame is out of bounds, place in top left corner + qDebug("Move A"); + (*it)->move(0, 0); + grid[0] = true; + continue; + } + // Just mark cell as occupied in array + grid[index] = true; + } + // Safety + if (currentIndex < 0 || currentIndex >= elems) + currentIndex = 0; + // Now place in next free cell, start looking at current position of frame + for (int i = 0; i < elems; ++i) + { + const int index = (i + currentIndex) % elems; + if (grid[index]) + continue; + const int x = (index % _tilesX) * _tileWidth; + const int y = (index / _tilesX) * _tileHeight; + //qDebug() << "Index=" << index << " i=" << i << " cI=" << currentIndex << " elems=" << elems << " x=" << x << " y=" << y; + qDebug("Move B"); + frame->move(x, y); + break; + } +} + +ConnectionFrame* MainWindow::createFrame() +{ + // Allocate and resize + ConnectionFrame *cf = new ConnectionFrame(ui->frmRoom, _tileWidth, _tileHeight); + _clientFrames.append(cf); + cf->show(); + connect(cf, SIGNAL(frameMoved(ConnectionFrame *)), this, SLOT(onPlaceFrame(ConnectionFrame *))); + connect(cf, SIGNAL(clicked(ConnectionFrame *)), this, SLOT(onFrameClicked(ConnectionFrame *))); + return cf; +} + +bool MainWindow::loadPosition(QSettings& settings, const QString& id, int& x, int& y) +{ + settings.beginGroup("client_position"); + const QVariant retval(settings.value(id)); + settings.endGroup(); + if (retval.type() != QVariant::Point) + return false; + const QPoint point(retval.toPoint()); + x = point.x(); + y = point.y(); + return true; +} + +void MainWindow::savePosition(ConnectionFrame *cf) +{ + Client *client = cf->client(); + if (client == NULL) + return; + QPoint pos(cf->pos().x() / _tileWidth, cf->pos().y() / _tileHeight); + USER_SETTINGS(settings); + settings.beginGroup("client_position"); + settings.setValue(client->computerId(), pos); + settings.endGroup(); +} + +/* + * Overridden methods + */ + +void MainWindow::closeEvent(QCloseEvent* e) +{ + int ret = QMessageBox::question(this, "Test", "Beenden?", 0, 1, 2); + if (ret == 1) + QApplication::exit(0); + else + e->ignore(); +} + +void MainWindow::changeEvent(QEvent* e) +{ + QMainWindow::changeEvent(e); +} + +void MainWindow::resizeEvent(QResizeEvent* e) +{ + QMainWindow::resizeEvent(e); + if (_timerId == 0) + { + _timerId = startTimer(5); + } + _timerTimeout = 8; +} + +void MainWindow::mouseReleaseEvent(QMouseEvent* e) +{ + // Try to figure out if the user clicked inside the "room" frame + // No idea if there is a more elegant way to do this without + // sub-classing that frame and overriding its mouseReleaseEvent + const QPoint pos(ui->frmRoom->mapFrom(this, e->pos())); + if (pos.x() < 0 || pos.y() < 0) + return; + const QSize frame(ui->frmRoom->size()); + if (frame.width() > pos.x() && frame.height() > pos.y()) + { + for (QList<ConnectionFrame*>::iterator it = _clientFrames.begin(); it != _clientFrames.end(); ++it) + { + (**it).setSelection(false); + } + } +} + +void MainWindow::timerEvent(QTimerEvent* event) +{ + if (event->timerId() == _timerId) + { + _timerTimeout -= 1; + if (_timerTimeout == 1) + { + // Move toolbar if necessary + const int iconSize = this->size().width() / 30 + 14; + const int barSpace = ui->toolBar->actions().size() * (iconSize + 8); + const Qt::ToolBarArea area = + (barSpace < this->size().height() ? Qt::LeftToolBarArea : Qt::TopToolBarArea); + if (_tbIconSize != iconSize) + { + _tbIconSize = iconSize; + ui->toolBar->setIconSize(QSize(iconSize, iconSize)); + } + if (_tbArea != area) + { + _tbArea = area; + this->addToolBar(area, ui->toolBar); + } + return; + } + // Kill timer when done + if (_timerTimeout <= 0) + { + killTimer(_timerId); + _timerId = 0; + // Resize all connection windows + if (ui->frmRoom->size().width() < 100 || ui->frmRoom->size().height() < 100 || _tilesX <= 0 || _tilesY <= 0) + return; + const int nw = ui->frmRoom->size().width() / _tilesX; + const int nh = ui->frmRoom->size().height() / _tilesY; + for (QList<ConnectionFrame*>::iterator it = _clientFrames.begin(); it != _clientFrames.end(); ++it) + { + const QPoint &oldpos = (*it)->frameGeometry().topLeft(); + qDebug("Move C"); + (*it)->move((oldpos.x() / _tileWidth) * nw, (oldpos.y() / _tileHeight) * nh); + (*it)->setSize(nw, nh); + } + _tileWidth = nw; + _tileHeight = nh; + } + } + else + { + // Unknown timer ID, kill + killTimer(event->timerId()); + } +} + +/* + * Slots + */ + +void MainWindow::onPlaceFrame(ConnectionFrame* frame) +{ + if (_tilesX <= 0 || _tilesY <= 0) + return; + const QPoint &p = frame->frameGeometry().center(); + const QSize &s = ui->frmRoom->geometry().size(); + int x = (p.x() / _tileWidth) * _tileWidth; + int y = (p.y() / _tileHeight) * _tileHeight; + if (x < 0) + x = 0; + else if (x > s.width() - _tileWidth) + x = (_tilesX - 1) * _tileWidth; + if (y < 0) + y = 0; + else if (y > s.height() - _tileHeight) + y = (_tilesY - 1) * _tileHeight; + qDebug("Move D"); + frame->move(x, y); + savePosition(frame); + const QPoint &newpos = frame->frameGeometry().topLeft(); + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + if (*it == frame) + continue; + if ((*it)->frameGeometry().topLeft() == newpos) + { + placeFrameInFreeSlot(*it); + } + } +} + +void MainWindow::onFrameClicked(ConnectionFrame* frame) +{ + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + if (*it == frame) + frame->setSelection(true); + else + (**it).setSelection(false); + } +} + +void MainWindow::onSessionNameClick() +{ + _sessionNameWindow->show(Global::sessionName()); +} + +void MainWindow::onSessionNameUpdate() +{ + _sessionNameLabel->setText(tr("Session Name: %1 [click to edit]").arg(Global::sessionName())); +} + +void MainWindow::onButtonSettings() +{ + // Move to any free tile + placeFrameInFreeSlot(createFrame()); +} + +void MainWindow::onButtonChat() +{ + /* + for (QList<ConnectionFrame*>::iterator it = _clientFrames.begin(); it != _clientFrames.end(); ++it) { + (*it)->setSize(100 + qrand() % 200); + } + */ +} + +void MainWindow::onButtonBroadcast() +{ + const qint64 now = QDateTime::currentMSecsSinceEpoch(); + if (now < _buttonBlockTime) + return; + _buttonBlockTime = now + 3000; + Client *source = NULL; // the desired source (selected frame) + Client *oldSource = NULL; // if there is a client that is already broadcaster, save it here + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + Client *c = (**it).client(); + if ((**it).selected()) + source = c; + if (c != NULL && c->isProjectionSource()) + oldSource = c; + } + if (source == NULL && oldSource == NULL) + { + QMessageBox::information(this, tr("No Projection Source selected"), tr("You did not select any active client as the connection source.")); + return; + } + if (oldSource != NULL) + { + // Is already broadcast source, disable + oldSource->setProjectionSource(false); + oldSource->stopVncServer(); + if (source == NULL || source->id() == oldSource->id()) + return; + } + source->setProjectionSource(true); + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + Client *c = (**it).client(); + if (c == NULL || c->id() == source->id()) + continue; + //c->setDesiredProjectionSource(source->id()); + c->setProjectionSource(false); + } + source->startVncServer(); +} + +void MainWindow::onButtonLock(bool checked) +{ + NetworkMessage msg; + msg.setField(_ID, _LOCK); + if (checked) + msg.setField("ENABLE", QByteArray("1")); + else + msg.setField("ENABLE", QByteArray("0")); + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + Client *c = (**it).client(); + if (c == NULL || (**it).isTutor()) + continue; // Don't lock the tutor + c->sendMessage(msg); + } +} + +void MainWindow::onButtonExit() +{ + this->close(); +} + +void MainWindow::onClientConnected(Client* client) +{ + qDebug("ListenServer told MainWindow about new connection"); + connect(client, SIGNAL(authenticating(Client*, ClientLogin*)), this, SLOT(onClientAuthenticating(Client*, ClientLogin*))); + connect(client, SIGNAL(authenticated(Client*)), this, SLOT(onClientAuthenticated(Client*))); + connect(client, SIGNAL(vncClientStateChange(Client*)), this, SLOT(onVncClientStateChange(Client*))); +} + +void MainWindow::onClientAuthenticating(Client* client, ClientLogin* request) +{ + disconnect(client, SIGNAL(authenticating(Client*, ClientLogin*)), this, SLOT(onClientAuthenticating(Client*, ClientLogin*))); + if (!request->accept) // Another receiver of that signal already rejected the client, so nothing to do + return; + bool inuse; + QString check = request->name; + int addnum = 1; + do + { + inuse = false; + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + Client *c = (**it).client(); + if (c == NULL) + continue; + if (!c->isAuthed()) + continue; + if (c->ip() == request->ip) + { + request->accept = false; + return; + } + if (c->name() == check) + { + inuse = true; + check = request->name + " (" + QString::number(++addnum) + ")"; + break; + } + } + } while (inuse && addnum < 100); + if (inuse) + request->accept = false; + else + request->name = check; +} + +void MainWindow::onClientAuthenticated(Client* client) +{ + disconnect(client, SIGNAL(authenticated(Client*)), this, SLOT(onClientAuthenticated(Client*))); + connect(client, SIGNAL(vncServerStateChange(Client*)), this, SLOT(onVncServerStateChange(Client*))); + bool hasActiveTutor = false; + ConnectionFrame *deadTutor = NULL; + bool anyClient = false; + ConnectionFrame *existing = NULL; + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + if ((*it)->computerId() == client->computerId()) + existing = *it; + if ((*it)->client() != NULL) + anyClient = true; + if ((*it)->isTutor()) + { + if ((*it)->client() == NULL) + deadTutor = (*it)->client(); + else + hasActiveTutor = true; + } + } + if (!anyClient && deadTutor != NULL) + deadTutor->setTutor(false); + if (existing != NULL) + { + if (!anyClient && !hasActiveTutor) + existing->setTutor(true); + existing->assignClient(client); + return; + } + // New one, create + ConnectionFrame *cf = createFrame(); + // Try to load last known position + int x, y; + bool ok; + USER_SETTINGS(usr); + ok = loadPosition(usr, client->computerId(), x, y); + if (!ok) + { + SYSTEM_SETTINGS(sys); + ok = loadPosition(sys, client->computerId(), x, y); + } + if (x >= _tilesX || y >= _tilesY) + ok = false; + if (ok) + { + if (x < 0) + x = 0; + if (y < 0) + y = 0; + qDebug("Move E"); + cf->move(x * _tileWidth, y * _tileHeight); + onPlaceFrame(cf); + } + else + { + // Move to any free tile + placeFrameInFreeSlot(cf); + } + // Assign client instance + cf->assignClient(client); + // Make first active client tutor + if (!anyClient && !hasActiveTutor) + cf->setTutor(true); + // ################ + NetworkMessage msg; + // If clients are currently locked, tell this new client + if (ui->action_Lock->isChecked()) + { + msg.reset(); + msg.setField(_ID, _LOCK); + msg.setField("ENABLE", QByteArray("1")); + client->sendMessage(msg); + } + // Same for VNC projections + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + Client *c = (**it).client(); + if (c != NULL && c != client && c->isActiveVncServer() && c->isProjectionSource()) + { + msg.reset(); + msg.setField(_ID, _VNCCLIENT); + msg.setField("HOST", c->ip()); + msg.setField("PORT", QString::number(c->vncPort())); + msg.setField("ROPASS", c->vncRoPass()); + msg.setField("CAPTION", c->name() + " @ " + c->host()); + client->sendMessage(msg); + break; + } + } +} + +void MainWindow::onVncServerStateChange(Client* client) +{ + if (client->vncPort() > 0) + { + // VNC Server started on some client - start projection on all clients interested in that client's screen + NetworkMessage msg; + msg.setField(_ID, _VNCCLIENT); + msg.setField("HOST", client->ip()); + msg.setField("PORT", QString::number(client->vncPort())); + msg.setField("ROPASS", client->vncRoPass()); + msg.setField("CAPTION", client->name() + " @ " + client->host()); + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + Client *c = (**it).client(); + if (c == NULL) + continue; // Offline + if (c->id() == client->id() || + (c->desiredProjectionSource() != client->id() && !client->isProjectionSource())) + continue; // Not interested + c->sendMessage(msg); + } + } + else + { + // VNC server stopped on some client or failed to start - reset local pending projection information + // If at least one other client seemed to be waiting for this client's screen, pop up a message + // on the console + bool wasInterested = client->isProjectionSource(); + client->setProjectionSource(true); + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + Client *c = (**it).client(); + if (c == NULL) + continue; + if (c->desiredProjectionSource() == client->id()) + { + wasInterested = true; + c->setDesiredProjectionSource(0); + } + } + if (wasInterested) + { + QMessageBox::information(this, + tr("Projection Error"), + tr("Could not send screen contents of %1 to other clients: VNC Startup failed.").arg(client->name()) + ); + } + } +} + +void MainWindow::onVncClientStateChange(Client* client) +{ + // If the client started projection, ignore event. Also if + // the source is not known (anymore), we cannot do anything meaningful here + if (client->isActiveVncClient() || client->currentProjectionSource() == 0) + return; + // Client is not a vnc client anymore. Check if the VNC server it was (supposedly) connected + // to is still running, and kill it if there are no more clients connected to it. + // (client->currentProjectionSource() will still contain the id of the server it was connected to during this event) + // 1. check if vnc server is still running + // 2. check if there are any other clients "using" that server + bool inUse = false; + Client *server = NULL; + for (QList<ConnectionFrame*>::iterator it(_clientFrames.begin()); it != _clientFrames.end(); ++it) + { + Client *c = (**it).client(); + if (c == NULL || c == client) + continue; + if (c->currentProjectionSource() == client->currentProjectionSource()) + { + inUse = true; + break; + } + if (c->id() == client->currentProjectionSource()) + server = c; + } + // 3. kill server if applicable + if (!inUse && server != NULL) + server->stopVncServer(); +} diff --git a/src/server/mainwindow/mainwindow.h b/src/server/mainwindow/mainwindow.h new file mode 100644 index 0000000..4f9d142 --- /dev/null +++ b/src/server/mainwindow/mainwindow.h @@ -0,0 +1,76 @@ +#ifndef _MAINWINDOW_H_ +#define _MAINWINDOW_H_ + +#include <QtGui> +#include <QMainWindow> + +class SessionNameWindow; +class ConnectionFrame; +class ListenServer; +class DiscoveryListener; +class Client; +class ClientLogin; + +namespace Ui +{ + class MainWindow; +} + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +private: + Ui::MainWindow *ui; + SessionNameWindow *_sessionNameWindow; + QLabel *_sessionNameLabel; + QList<ConnectionFrame*> _clientFrames; + int _tileWidth, _tileHeight; + int _tilesX, _tilesY; + int _tbIconSize; + Qt::ToolBarArea _tbArea; + int _timerId, _timerTimeout; + ListenServer *_listenServer; + DiscoveryListener *_discoveryListener; + qint64 _buttonBlockTime; + + void placeFrameInFreeSlot(ConnectionFrame* frame); + ConnectionFrame* createFrame(); + bool loadPosition(QSettings& settings, const QString& id, int& x, int& y); + void savePosition(ConnectionFrame *cf); + +public: + MainWindow(QWidget *parent = 0); + ~MainWindow(); + +protected: + void closeEvent(QCloseEvent *e); + void changeEvent(QEvent *e); + void resizeEvent(QResizeEvent *e); + void mouseReleaseEvent(QMouseEvent* e); + void timerEvent(QTimerEvent* event); + + +protected slots: + // This + void onSessionNameClick(); + void onSessionNameUpdate(); + void onButtonSettings(); + void onButtonChat(); + void onButtonBroadcast(); + void onButtonLock(bool checked); + void onButtonExit(); + // connection frame + void onPlaceFrame(ConnectionFrame* frame); + void onFrameClicked(ConnectionFrame* frame); + // Net + void onClientConnected(Client* client); + void onClientAuthenticating(Client* client, ClientLogin* request); + void onClientAuthenticated(Client* client); + void onVncServerStateChange(Client* client); + void onVncClientStateChange(Client* client); + +}; + + +#endif diff --git a/src/server/net/certmanager.cpp b/src/server/net/certmanager.cpp new file mode 100644 index 0000000..e661a70 --- /dev/null +++ b/src/server/net/certmanager.cpp @@ -0,0 +1,92 @@ +/*
+ # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+ #
+ # This program is free software distributed under the GPL version 2.
+ # See http://openslx.org/COPYING
+ #
+ # If you have any feedback please consult http://openslx.org/feedback and
+ # send your suggestions, praise, or complaints to feedback@openslx.org
+ #
+ # General information about OpenSLX can be found at http://openslx.org/
+ # -----------------------------------------------------------------------------
+ # src/util/CertManager.cpp
+ # - Manage SSL certificates
+ # - provide access by name
+ # -----------------------------------------------------------------------------
+ */
+
+#include "certmanager.h"
+#include "../util/util.h"
+#include <QMap>
+#include <QFileInfo>
+#include <QSettings>
+#include <cstdlib>
+
+namespace CertManager
+{
+static QMap<QString, QSslCertificate> _certs;
+static QMap<QString, QSslKey> _keys;
+
+static void generateFiles(QString& key, QString& cert);
+static bool loadFiles(QString& keyFile, QString& certFile, QSslKey &key, QSslCertificate &cert);
+
+bool getPrivateKeyAndCert(const QString &name, QSslKey &key, QSslCertificate &cert)
+{
+ if (_keys.contains(name))
+ {
+ key = _keys[name];
+ cert = _certs[name];
+ return true;
+ }
+ USER_SETTINGS(settings);
+ QString certFile = settings.fileName().append(".").append(name);
+ QString keyFile = certFile;
+ keyFile.append(".rsa");
+ certFile.append(".crt");
+ //
+ if (!loadFiles(keyFile, certFile, key, cert))
+ {
+ generateFiles(keyFile, certFile);
+ if (!loadFiles(keyFile, certFile, key, cert))
+ return false;
+ }
+ _certs.insert(name, cert);
+ _keys.insert(name, key);
+ return true;
+}
+
+static bool loadFiles(QString& keyFile, QString& certFile, QSslKey &key, QSslCertificate &cert)
+{
+ QFileInfo keyInfo(keyFile);
+ QFileInfo certInfo(certFile);
+ if (keyInfo.exists() && certInfo.exists())
+ { // Both files exist, see if they're valid and return
+ QFile kf(keyFile);
+ kf.open(QFile::ReadOnly);
+ key = QSslKey(&kf, QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey);
+ QList<QSslCertificate> certlist = QSslCertificate::fromPath(certFile);
+ if (!key.isNull() && !certlist.empty())
+ {
+ cert = certlist.first();
+ if (!cert.isNull())
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+static void generateFiles(QString& key, QString& cert)
+{
+ char tmp[1000];
+ unlink(key.toLocal8Bit().data());
+ unlink(cert.toLocal8Bit().data());
+ snprintf(tmp, 1000,
+ "openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -subj '/C=DE/ST=BaWue/L=Freiburg/CN=openslx.org' -keyout \"%s\" -out \"%s\"",
+ key.toLocal8Bit().data(), cert.toLocal8Bit().data());
+ system(tmp);
+ snprintf(tmp, 1000, "chmod 0600 \"%s\" \"%s\"", key.toLocal8Bit().data(), cert.toLocal8Bit().data());
+ system(tmp);
+}
+}
diff --git a/src/server/net/certmanager.h b/src/server/net/certmanager.h new file mode 100644 index 0000000..c69bc23 --- /dev/null +++ b/src/server/net/certmanager.h @@ -0,0 +1,29 @@ +/*
+# Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# src/util/CertManager.cpp
+# - Manage SSL certificates
+# - provide access by name
+# -----------------------------------------------------------------------------
+*/
+
+#ifndef CERTMANAGER_H_
+#define CERTMANAGER_H_
+
+#include <QtNetwork/QSslCertificate>
+#include <QtNetwork/QSslKey>
+
+namespace CertManager
+{
+ bool getPrivateKeyAndCert(const QString &name, QSslKey &key, QSslCertificate &cert);
+}
+
+#endif /* CERTMANAGER_H_ */
diff --git a/src/server/net/client.cpp b/src/server/net/client.cpp new file mode 100644 index 0000000..ca91e76 --- /dev/null +++ b/src/server/net/client.cpp @@ -0,0 +1,288 @@ +/* + * client.cpp + * + * Created on: 18.01.2013 + * Author: sr + */ + +#include "client.h" +#include "../util/global.h" +#include "../../shared/settings.h" +#include "../../shared/util.h" +#include <QSslSocket> +#include <QHostAddress> +#include <QPixmap> +#include <cassert> + +#define CHALLENGE_LEN 20 + +ClientId Client::_clientIdCounter = 0; + +Client::Client(QSslSocket* socket) : + _socket(socket), _authed(0), _desiredProjectionSource(0), _isProjectionSource(false), + _currentProjectionSource(0), _vncPort(0), _activeVncClient(false) +{ + assert(socket != NULL); + _id = ++_clientIdCounter; + _pingTimeout = QDateTime::currentMSecsSinceEpoch() + PING_TIMEOUT_MS; + _ip = _socket->peerAddress().toString(); + qDebug("*** Client %s created.", qPrintable(_ip)); + // Connect important signals + connect(_socket, SIGNAL(disconnected()), this, SLOT(onClosed())); + connect(_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onError(QAbstractSocket::SocketError))); + connect(_socket, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(onSslErrors(const QList<QSslError> &))); + connect(_socket, SIGNAL(readyRead()), this, SLOT(onDataArrival())); + // Send challenge + _challenge.resize(CHALLENGE_LEN); + for (int i = 0; i < CHALLENGE_LEN; ++i) + _challenge[i] = qrand() & 0xff; + _toClient.reset(); + _toClient.setField(_ID, _CHALLENGE); + _toClient.setField(_CHALLENGE, _challenge); + _toClient.writeMessage(_socket); + // give client 3 seconds to complete handshake + _timerIdAuthTimeout = startTimer(3000); +} + +Client::~Client() +{ + if (_socket != NULL) + { + qDebug("**** DELETE IN DESTRUCTOR"); + _socket->deleteLater(); + } + qDebug("*** Client %s destroyed.", qPrintable(_ip)); +} + +void Client::timerEvent(QTimerEvent* event) +{ + if (event->timerId() == _timerIdAuthTimeout) + { + // Client did not send login request within 3 seconds + killTimer(_timerIdAuthTimeout); + _timerIdAuthTimeout = 0; + this->disconnect(); + } +} + +void Client::sendMessage(NetworkMessage& message) +{ + if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState) + return; + message.writeMessage(_socket); + if (!message.writeComplete()) + { + qCritical() << "SendMessage to client " << _name << "@" << _ip << " failed!"; + } +} + +void Client::requestThumb(const int width, const int height) +{ + if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState) + { + qDebug("requestThumb called in bad state"); + return; + } + _toClient.reset(); + _toClient.setField(_ID, _THUMB); + _toClient.setField(_X, QString::number(width)); + _toClient.setField(_Y, QString::number(height)); + _toClient.writeMessage(_socket); +} + +void Client::onDataArrival() +{ + _pingTimeout = QDateTime::currentMSecsSinceEpoch() + PING_TIMEOUT_MS; + // + if (_socket == NULL || _socket->state() != QAbstractSocket::ConnectedState) + { + qDebug("dataArrival called in bad state"); + return; + } + + //qDebug() << _socket->bytesAvailable() << " bytes to read"; + bool ret; + while (_socket->bytesAvailable()) + { + ret = _fromClient.readMessage(_socket); // let the message read data from socket + if (!ret) // error parsing msg, disconnect client! + { + this->disconnect(); + return; + } + if (_fromClient.readComplete()) // message is complete + { + this->handleMsg(); + if (_socket == NULL) + return; + _fromClient.reset(); + } + } +} + +void Client::onSslErrors(const QList<QSslError> & errors) +{ + this->disconnect(); +} + +void Client::onClosed() +{ + this->disconnect(); +} + +void Client::onError(QAbstractSocket::SocketError errcode) +{ + this->disconnect(); +} + +void Client::handleMsg() +{ + const QString &id = _fromClient.getFieldString(_ID); + if (id.isEmpty()) + { + qDebug("Received message with empty ID field. ignored."); + return; + } + qDebug() << "Received message " << id; + + if (_authed == 2) + { + // Following messages are only valid of the client is already authenticated + if (id == _THUMB) + { + QPixmap pixmap; + if (!pixmap.loadFromData(_fromClient.getFieldBytes("IMG"))) + { + qDebug("Could not decode thumbnail image from client."); + return; + } + emit thumbUpdated(this, pixmap); + } + else if (id == _VNCSERVER) + { + // Client tells about startup of vnc server + const int port = _fromClient.getFieldString("PORT").toInt(); + if (port <= 0) + { + if (_vncPort <= 0) + { + qDebug() << "Starting VNC server on client" << _name << " (" << _ip << ") failed."; + // TODO: Show message on manager + } + } + else + { + _vncRoPass = _fromClient.getFieldString("ROPASS"); + _vncRwPass = _fromClient.getFieldString("RWPASS"); + } + _vncPort = port; + emit vncServerStateChange(this); + } + else if (id == _VNCCLIENT) + { + // Client tells us that it started or stopped displaying a remote screen via VNC + _activeVncClient = (_fromClient.getFieldString("ENABLED").toInt() != 0); + const ClientId other = (ClientId)_fromClient.getFieldString("CLIENTID").toInt(); + + if (!_activeVncClient && other == 0) + _desiredProjectionSource = 0; + + emit vncClientStateChange(this); + + if (!_activeVncClient) + _currentProjectionSource = 0; + else + _currentProjectionSource = other; + } + return; + } + + if (_authed == 1) // Not authed yet, only care about login requests + { + if (id == _LOGIN) + { + killTimer(_timerIdAuthTimeout); + _timerIdAuthTimeout = 0; + ClientLogin request; + request.accept = true; + request.host = _fromClient.getFieldString("HOST"); + request.name = _fromClient.getFieldString("NAME"); + request.ip = _socket->peerAddress().toString(); + qDebug() << "Login request by " << request.name; + // emit event, see if request is accepted + emit authenticating(this, &request); + if (!request.accept) + { + qDebug("Request denied."); + this->disconnect(); // Nope + return; + } + // Accepted + _authed = 2; + qDebug("valid, step <- 2"); + _name = request.name; + _host = request.host; + _toClient.reset(); + _toClient.setField(_ID, _LOGIN); + _toClient.writeMessage(_socket); + emit authenticated(this); + } + return; + } + + if (_authed == 0) + { + // Waiting for challenge reply by client + if (id == _CHALLENGE) + { + QByteArray hash(_fromClient.getFieldBytes(_HASH)); + QByteArray challenge(_fromClient.getFieldBytes(_CHALLENGE)); + if (genSha1(&Global::sessionNameArray(), &_challenge) != hash) + { // Challenge reply is invalid, drop client + _toClient.buildErrorMessage("Challenge reply invalid."); + _toClient.writeMessage(_socket); + this->deleteLater(); + return; + } + // Now answer to challenge by client + _toClient.reset(); + _toClient.setField(_ID, _CHALLENGE); + _toClient.setField(_HASH, genSha1(&Global::sessionNameArray(), &challenge)); + _toClient.writeMessage(_socket); + _authed = 1; + qDebug("client's challenge reply was valid, step <- 1"); + } + return; + } + +} + +void Client::startVncServer() +{ + _vncPort = 0; + _toClient.reset(); + _toClient.setField(_ID, _VNCSERVER); + _toClient.setField("ENABLE", QByteArray("1")); + sendMessage(_toClient); +} + +void Client::stopVncServer() +{ + _toClient.reset(); + _toClient.setField(_ID, _VNCSERVER); + _toClient.setField("ENABLE", QByteArray("0")); + sendMessage(_toClient); +} + +void Client::disconnect() +{ + if (_socket != NULL) + { + qDebug("*** Client %s disconnected.", qPrintable(_ip)); + _socket->blockSignals(true); + _socket->abort(); + _socket->deleteLater(); + _socket = NULL; + this->deleteLater(); + } +} diff --git a/src/server/net/client.h b/src/server/net/client.h new file mode 100644 index 0000000..8004ebb --- /dev/null +++ b/src/server/net/client.h @@ -0,0 +1,104 @@ +#ifndef CLIENT_H_ +#define CLIENT_H_ + +#include <QtCore> +#include <QSslError> +#include <QAbstractSocket> +#include "../../shared/networkmessage.h" + +class QSslSocket; + +struct ClientLogin +{ + bool accept; + QString name; + QString host; + QString ip; +}; + +typedef int ClientId; + +class Client : public QObject +{ + Q_OBJECT + +private: + static ClientId _clientIdCounter; + + QSslSocket *_socket; + int _authed; // 0 = challenge sent, awaiting reply 1 = challenge ok, client challenge replied, awaiting login, 2 = ESTABLISHED + QString _name; + QString _host; + QString _ip; + QByteArray _challenge; + qint64 _pingTimeout; + NetworkMessage _toClient, _fromClient; + int _timerIdAuthTimeout; + + ClientId _id; // this client's unique id + + // If this client should be projected to from another client, the other client's id is set here. 0 otherwise. + // This is not currently used and it is questionable if this makes sense, as it might just be confusing if + // several groups students watch different other students. + // Also, visualizing such a situation in the GUI in a meaningful way would be hard. + ClientId _desiredProjectionSource; + // This boolean tells whether this client is currently the VNC broadcast source. This + // version only allows "one to all others" setups + bool _isProjectionSource; + + ClientId _currentProjectionSource; + + QString _vncRwPass, _vncRoPass; + int _vncPort; + bool _activeVncClient; + + void handleMsg(); + void disconnect(); + +protected: + void timerEvent(QTimerEvent* event); + +public: + explicit Client(QSslSocket* socket); + ~Client(); + void requestThumb(const int width, const int height); + void sendMessage(NetworkMessage& message); + //void acceptData(); + const inline bool isAuthed() const { return _authed == 2; } + const inline QString& name() const { return _name; } + const inline QString& host() const { return _host; } + const inline QString& ip() const { return _ip; } + // The computer ID (used eg. for saving the frame positions) is currently the IP, but this is an extra method for easier modification later on + const inline QString& computerId() const { return _ip; } + const inline ClientId id() const { return _id; } + + inline const QString& vncRwPass() const { return _vncRwPass; } + inline const QString& vncRoPass() const { return _vncRoPass; } + inline const int vncPort() const { return _vncPort; } + inline const bool isActiveVncClient() const { return _activeVncClient; } + inline const bool isActiveVncServer() const { return _vncPort > 0; } + inline const ClientId desiredProjectionSource() const { return _desiredProjectionSource; } + inline void setDesiredProjectionSource(ClientId source) { _desiredProjectionSource = source; } + inline const bool isProjectionSource() const { return _isProjectionSource; } + inline void setProjectionSource(bool enable) { _isProjectionSource = enable; } + inline const ClientId currentProjectionSource() const { return _currentProjectionSource; } + inline void setCurrentProjectionSource(ClientId source) { _currentProjectionSource = source; } + void startVncServer(); + void stopVncServer(); + +signals: + void authenticating(Client* client, ClientLogin* request); + void authenticated(Client* client); + void thumbUpdated(Client* client, const QPixmap& thumb); + void vncServerStateChange(Client* client); + void vncClientStateChange(Client* client); + +private slots: + void onSslErrors(const QList<QSslError> & errors); // triggered for errors that occur during SSL negotiation + void onDataArrival(); // triggered if data is available for reading + void onClosed(); // triggered if the socket is closed + void onError(QAbstractSocket::SocketError errcode); // triggered if an error occurs on the socket + +}; + +#endif /* CLIENT_H_ */ diff --git a/src/server/net/discoverylistener.cpp b/src/server/net/discoverylistener.cpp new file mode 100644 index 0000000..051a972 --- /dev/null +++ b/src/server/net/discoverylistener.cpp @@ -0,0 +1,165 @@ +/* + * discoverylistener.cpp + * + * Created on: 25.01.2013 + * Author: sr + */ + +#include "discoverylistener.h" +#include "certmanager.h" +#include "../util/global.h" +#include "../../shared/settings.h" +#include "../../shared/network.h" +#include "../../shared/util.h" +#include <QCryptographicHash> +#include <QSslCertificate> +#include <QSslKey> + +#define UDPBUFSIZ 9000 +#define SPAM_CUTOFF 50 +#define SPAM_MODERATE_INTERVAL 6787 +#define SPAM_MODERATE_AT_ONCE 100 + +// static objects + + +// +++ static ++++ hash ip address +++ + +static quint16 hash(const QHostAddress& host) +{ + static quint16 seed1 = 0, seed2 = 0; + while (seed1 == 0) // Make sure the algorithm uses different seeds each time the program is + { // run to prevent hash collision attacks + seed1 = (quint16)(qrand() & 0xffff); + seed2 = (quint16)(qrand() & 0xffff); + } + quint8 data[16], len; + if (host.protocol() == QAbstractSocket::IPv4Protocol) + { + // IPv4 + quint32 addr = host.toIPv4Address(); + len = 4; + memcpy(data, &addr, len); + } + else if (QAbstractSocket::IPv6Protocol) + { + // IPv6 + len = 16; + // Fast version (might break with future qt versions) + memcpy(data, host.toIPv6Address().c, len); + /* // --- Safe version (but better try to figure out a new fast way if above stops working ;)) + Q_IPV6ADDR addr = host.toIPv6Address(); + for (int i = 0; i < len; ++i) + data[i] = addr[i]; + */ + } + else + { + // Durr? + len = 2; + data[0] = (quint16)qrand(); + data[1] = (quint16)qrand(); + } + quint16 result = 0; + quint16 mod = seed1; + for (quint8 i = 0; i < len; ++i) + { + result = ((result << 1) + data[i]) ^ mod; // because of the shift this algo is not suitable for len(input) > 8 + mod += seed2 + data[i]; + } + return result; +} + +// +++++++++++++++++++++++++++++++++++ + +DiscoveryListener::DiscoveryListener() : + _socket(this), _counterResetPos(0) +{ + if (!_socket.bind(SERVICE_DISCOVERY_PORT)) + qFatal("Could not bind to service discovery port %d", (int)SERVICE_DISCOVERY_PORT); + connect(&_socket, SIGNAL(readyRead()), this, SLOT(onReadyRead())); + for (int i = 0; i < SD_PACKET_TABLE_SIZE; ++i) + _packetCounter[i] = 0; + startTimer((SPAM_MODERATE_AT_ONCE * SPAM_MODERATE_INTERVAL) / SD_PACKET_TABLE_SIZE + 1); +} + +DiscoveryListener::~DiscoveryListener() +{ + // TODO Auto-generated destructor stub +} + +/** + * Overrides + */ + +/** + * Decrease packet counters + */ +void DiscoveryListener::timerEvent(QTimerEvent* event) +{ + for (int i = 0; i < SPAM_MODERATE_AT_ONCE; ++i) + { + if (++_counterResetPos >= SD_PACKET_TABLE_SIZE) + _counterResetPos = 0; + if (_packetCounter[_counterResetPos] > 10) + _packetCounter[_counterResetPos] -= 10; + else if (_packetCounter[_counterResetPos] != 0) + _packetCounter[_counterResetPos] = 0; + } +} + +/** + * Slots + */ + +void DiscoveryListener::onReadyRead() +{ + char data[UDPBUFSIZ]; + QHostAddress addr; + quint16 port; + while (_socket.hasPendingDatagrams()) + { + const qint64 size = _socket.readDatagram(data, UDPBUFSIZ, &addr, &port); + if (size <= 0) + continue; + const quint16 bucket = hash(addr) % SD_PACKET_TABLE_SIZE; + if (_packetCounter[bucket] > SPAM_CUTOFF) + { + qDebug() << "SD: Potential (D)DoS from " << _socket.peerAddress().toString(); + // emit some signal and pop up a big warning that someone is flooding/ddosing the PVS SD + // ... on the other hand, will the user understand? ;) + continue; + } + ++_packetCounter[bucket]; + _packet.reset(); + if (!_packet.readMessage(data, (quint32)size)) + continue; + // Valid packet, process it: + const QByteArray iplist(_packet.getFieldBytes(_IPLIST)); + const QByteArray hash(_packet.getFieldBytes(_HASH)); + const QByteArray salt1(_packet.getFieldBytes(_SALT1)); + const QByteArray salt2(_packet.getFieldBytes(_SALT2)); + // For security, the salt has to be at least 16 bytes long + if (salt1.size() < 16 || salt2.size() < 16) + continue; // To make this more secure, you could remember the last X salts used, and ignore new packets using the same + // Check if the source IP of the packet matches any of the addresses given in the IP list + if (!Network::isAddressInList(QString::fromUtf8(iplist), addr.toString())) + continue; + // If so, check if the submitted hash seems valid + if (genSha1(&Global::sessionNameArray(), &salt1, &iplist) != hash) + continue; // did not match local session name + qDebug("Got matching discovery request..."); + QByteArray myiplist(Network::interfaceAddressesToString().toUtf8()); + QSslKey key; + QSslCertificate cert; + CertManager::getPrivateKeyAndCert("manager", key, cert); + QByteArray certhash(cert.digest(QCryptographicHash::Sha1)); + // Reply to client + _packet.reset(); + _packet.setField(_HASH, genSha1(&Global::sessionNameArray(), &salt2, &myiplist, &CLIENT_PORT_ARRAY, &certhash)); + _packet.setField(_IPLIST, myiplist); + _packet.setField(_PORT, CLIENT_PORT_ARRAY); + _packet.setField(_CERT, certhash); + _packet.writeMessage(&_socket, addr, port); + } +} diff --git a/src/server/net/discoverylistener.h b/src/server/net/discoverylistener.h new file mode 100644 index 0000000..64d4351 --- /dev/null +++ b/src/server/net/discoverylistener.h @@ -0,0 +1,40 @@ +/* + * discoverylistener.h + * + * Created on: 25.01.2013 + * Author: sr + */ + +#ifndef DISCOVERYLISTENER_H_ +#define DISCOVERYLISTENER_H_ + +#include <QtCore> +#include <QUdpSocket> +#include "../../shared/networkmessage.h" + +#define SD_PACKET_TABLE_SIZE 20000 + +class DiscoveryListener : public QObject +{ + Q_OBJECT + +private: + QUdpSocket _socket; + NetworkMessage _packet; + int _counterResetPos; + + quint8 _packetCounter[SD_PACKET_TABLE_SIZE]; // count packets per source address to ignore spammers + +protected: + void timerEvent(QTimerEvent* event); + +public: + DiscoveryListener(); + virtual ~DiscoveryListener(); + +private slots: + void onReadyRead(); + +}; + +#endif /* DISCOVERYLISTENER_H_ */ diff --git a/src/server/net/listenserver.cpp b/src/server/net/listenserver.cpp new file mode 100644 index 0000000..706962d --- /dev/null +++ b/src/server/net/listenserver.cpp @@ -0,0 +1,40 @@ +#include "listenserver.h" +#include "client.h" +#include <QSslSocket> + +#define MAX_CLIENTS 50 + +ListenServer::ListenServer(quint16 port) +{ + if (!_server.listen(QHostAddress::Any, port) || !_server.isListening()) + qFatal("Cannot bind to TCP port %d (incoming SSL clients)", (int)port); + connect(&_server, SIGNAL(newConnection()), this, SLOT(newClientConnection())); +} + +ListenServer::~ListenServer() +{ + _server.close(); + for (int i = 0; i < _clients.size(); ++i) + _clients[i]->deleteLater(); +} + +/** + * Slots + */ + +void ListenServer::newClientConnection() +{ + QSslSocket* sock; + while ((sock = (QSslSocket*)_server.nextPendingConnection()) != NULL) + { + if (_clients.size() >= MAX_CLIENTS) + { + sock->abort(); + sock->deleteLater(); + continue; + } + Client* client = new Client(sock); + _clients.append(client); // create new client class and add to list + emit newClient(client); + } +} diff --git a/src/server/net/listenserver.h b/src/server/net/listenserver.h new file mode 100644 index 0000000..f237703 --- /dev/null +++ b/src/server/net/listenserver.h @@ -0,0 +1,30 @@ +#ifndef LISTENSERVER_H_ +#define LISTENSERVER_H_ + +#include <QtCore> +#include <QList> +#include "sslserver.h" + +class Client; + +class ListenServer : public QObject +{ + Q_OBJECT + +private: + SslServer _server; + QList<Client*> _clients; + +public: + explicit ListenServer(quint16 port); + virtual ~ListenServer(); + +private slots: + void newClientConnection(); + +signals: + void newClient(Client* client); + +}; + +#endif /* LISTENSERVER_H_ */ diff --git a/src/server/net/sslserver.cpp b/src/server/net/sslserver.cpp new file mode 100644 index 0000000..70daea4 --- /dev/null +++ b/src/server/net/sslserver.cpp @@ -0,0 +1,113 @@ +/* + # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + # ----------------------------------------------------------------------------- + # src/net/SslServer.cpp + # - provide QTcpServer-like behaviour for SSL + # ----------------------------------------------------------------------------- + */ + +#include "sslserver.h" +#include <QtNetwork/QSslCipher> +#include <QtNetwork/QSslSocket> +#include "certmanager.h" + +SslServer::SslServer() +{ + _tmr = startTimer(5123); + //QSslSocket::setDefaultCiphers(QSslSocket::supportedCiphers()); +} + +SslServer::~SslServer() +{ + killTimer((_tmr)); +} + +void SslServer::incomingConnection(int socketDescriptor) +{ + QSslSocket *serverSocket = new QSslSocket(NULL); + connect(serverSocket, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(sslErrors(const QList<QSslError> &))); + QSslKey key; + QSslCertificate cert; + CertManager::getPrivateKeyAndCert("manager", key, cert); + serverSocket->setPrivateKey(key); + serverSocket->setLocalCertificate(cert); + serverSocket->setPeerVerifyMode(QSslSocket::VerifyNone); + serverSocket->setProtocol(QSsl::SslV3); + //printf("Keylen %d\n", serverSocket->privateKey().length()); + if (serverSocket->setSocketDescriptor(socketDescriptor)) + { + // Once the connection is successfully encrypted, raise our newConnection event + connect(serverSocket, SIGNAL(encrypted()), this, SIGNAL(newConnection())); + serverSocket->startServerEncryption(); + _pending.push_back(serverSocket); + } + else + { + serverSocket->deleteLater(); + } +} + +void SslServer::sslErrors(const QList<QSslError> & errors) +{ + //qDebug("FIXME: SSL ERRORS on SERVER: %s", qPrintable(errors.begin()->errorString())); +} + +void SslServer::timerEvent(QTimerEvent* event) +{ + // Remove all sockets marked for deletion + while (!_delete.isEmpty()) + { + QSslSocket *sock = _delete.takeFirst(); + sock->blockSignals(true); + sock->deleteLater(); + } + _delete = _pending; + _pending.clear(); +} + +bool SslServer::hasPendingConnections() +{ + for (QList<QSslSocket*>::iterator it(_pending.begin()); it != _pending.end(); it++) + { + qDebug("State: %d - Encrypted: %d", (int)(*it)->state(), (*it)->isEncrypted()); + if ((*it)->state() == QAbstractSocket::ConnectedState && (*it)->isEncrypted()) + return true; + } + return false; +} + +QTcpSocket* SslServer::nextPendingConnection() +{ + for (QList<QSslSocket*>::iterator it(_pending.begin()); it != _pending.end(); it++) + { + if ((*it)->state() == QAbstractSocket::ConnectedState && (*it)->isEncrypted()) + { + QSslSocket *sock = *it; + QObject::disconnect(sock, SIGNAL(encrypted()), this, SIGNAL(newConnection())); + _pending.removeAll(sock); + _delete.removeAll(sock); + return sock; + } + } + for (QList<QSslSocket*>::iterator it(_delete.begin()); it != _delete.end(); it++) + { + if ((*it)->state() == QAbstractSocket::ConnectedState && (*it)->isEncrypted()) + { + QSslSocket *sock = *it; + QObject::disconnect(sock, SIGNAL(encrypted()), this, SIGNAL(newConnection())); + _pending.removeAll(sock); + _delete.removeAll(sock); + return sock; + } + } + return NULL; +} + diff --git a/src/server/net/sslserver.h b/src/server/net/sslserver.h new file mode 100644 index 0000000..400bf6a --- /dev/null +++ b/src/server/net/sslserver.h @@ -0,0 +1,50 @@ +/* +# Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# src/net/SslServer.cpp +# - provide QTcpServer-like behaviour for SSL +# ----------------------------------------------------------------------------- +*/ + +#ifndef SSLSERVER_H_ +#define SSLSERVER_H_ + +#include <QtCore/QList> +#include <QtNetwork/QTcpServer> +#include <QtNetwork/QSslError> + +class QSslSocket; + +class SslServer : public QTcpServer +{ + Q_OBJECT + +private Q_SLOTS: + void sslErrors ( const QList<QSslError> & errors ); + +public: + SslServer(); + virtual ~SslServer(); + + bool hasPendingConnections (); + // This one has to return a TcpSocket as we're overwriting from the base class + // just cast it to QSslSocket later + virtual QTcpSocket* nextPendingConnection(); + +protected: + void incomingConnection(int socketDescriptor); + void timerEvent (QTimerEvent* event); + QList<QSslSocket*> _pending; + QList<QSslSocket*> _delete; + int _tmr; +}; + +#endif /* SSLSERVER_H_ */ diff --git a/src/server/sessionnamewindow/sessionnamewindow.cpp b/src/server/sessionnamewindow/sessionnamewindow.cpp new file mode 100644 index 0000000..1d8c699 --- /dev/null +++ b/src/server/sessionnamewindow/sessionnamewindow.cpp @@ -0,0 +1,68 @@ +/* + # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + # ----------------------------------------------------------------------------- + # mainWindow.cpp + This is the Main class for the pvsManager. The GUI is contructed here. + # ----------------------------------------------------------------------------- + */ + +#include <QtGui> +#include "sessionnamewindow.h" +#include "../util/global.h" + +#include "ui_sessionname.h" + +SessionNameWindow::SessionNameWindow(QWidget *parent) : + QDialog(parent), ui(new Ui::SessionName) + +{ + ui->setupUi(this); + connect(ui->bboxOkCancel, SIGNAL(accepted()), this, SLOT(onOkClicked())); + connect(ui->bboxOkCancel, SIGNAL(rejected()), this, SLOT(close())); + connect(ui->cmdRandom, SIGNAL(clicked(bool)), this, SLOT(onGenerateRandomName())); +} + +SessionNameWindow::~SessionNameWindow() +{ + delete ui; +} + +void SessionNameWindow::show(const QString& name) +{ + ui->txtName->setText(name); + this->showNormal(); +} + +/* + * Overridden methods + */ + +void SessionNameWindow::closeEvent(QCloseEvent *e) +{ + e->ignore(); + this->hide(); +} + +/** + * Slots + */ + +void SessionNameWindow::onOkClicked() +{ + Global::setSessionName(ui->txtName->text()); + emit updateSessionName(); + this->hide(); +} + +void SessionNameWindow::onGenerateRandomName() +{ + ui->txtName->setText(QString::number(qrand() % 9000 + 1000)); +} diff --git a/src/server/sessionnamewindow/sessionnamewindow.h b/src/server/sessionnamewindow/sessionnamewindow.h new file mode 100644 index 0000000..ed944c1 --- /dev/null +++ b/src/server/sessionnamewindow/sessionnamewindow.h @@ -0,0 +1,38 @@ +#ifndef _SESSIONNAMEWINDOW_H_ +#define _SESSIONNAMEWINDOW_H_ + +#include <QtGui> + + +namespace Ui +{ +class SessionName; +} + +class SessionNameWindow : public QDialog +{ + Q_OBJECT + +private: + Ui::SessionName *ui; + +public: + SessionNameWindow(QWidget *parent = 0); + ~SessionNameWindow(); + + void show(const QString& name); + +protected: + void closeEvent(QCloseEvent *e); + +private slots: + void onOkClicked(); + void onGenerateRandomName(); + +signals: + void updateSessionName(); + +}; + + +#endif diff --git a/src/server/util/global.cpp b/src/server/util/global.cpp new file mode 100644 index 0000000..9b7b4f2 --- /dev/null +++ b/src/server/util/global.cpp @@ -0,0 +1,17 @@ +/* + * global.cpp + * + * Created on: 29.01.2013 + * Author: sr + */ + +#include "global.h" + +QString Global::_sessionName = QString(); +QByteArray Global::_sessionNameArray = QByteArray(); + +void Global::setSessionName(const QString& name) +{ + Global::_sessionName = name; + Global::_sessionNameArray = name.toUtf8(); +} diff --git a/src/server/util/global.h b/src/server/util/global.h new file mode 100644 index 0000000..38eec6d --- /dev/null +++ b/src/server/util/global.h @@ -0,0 +1,29 @@ +/* + * global.h + * + * Created on: 29.01.2013 + * Author: sr + */ + +#ifndef GLOBAL_H_ +#define GLOBAL_H_ + +#include <QString> +#include <QByteArray> + +class Global +{ +private: + Global(){} + ~Global(){} + + static QString _sessionName; + static QByteArray _sessionNameArray; + +public: + static const QString& sessionName() { return Global::_sessionName; } + static const QByteArray& sessionNameArray() { return Global::_sessionNameArray; } + static void setSessionName(const QString& name); +}; + +#endif /* GLOBAL_H_ */ diff --git a/src/server/util/util.cpp b/src/server/util/util.cpp new file mode 100644 index 0000000..7ff9404 --- /dev/null +++ b/src/server/util/util.cpp @@ -0,0 +1,14 @@ +/* + * Util.cpp + * + * Created on: 18.01.2013 + * Author: sr + */ + +#include "util.h" + +namespace Util +{ + +} + diff --git a/src/server/util/util.h b/src/server/util/util.h new file mode 100644 index 0000000..e2d6a62 --- /dev/null +++ b/src/server/util/util.h @@ -0,0 +1,17 @@ +#ifndef UTIL_H_ +#define UTIL_H_ + +// Helper for getting a settings object in various places, so if you ever change the organization, location, +// file format or anything, you won't have to edit in 100 places. +// Use like this: +// USER_SETTINGS(settings) +// settings.value("somekey") +#define USER_SETTINGS(name) QSettings name (QSettings::IniFormat, QSettings::UserScope, "openslx", "pvs2mgr") +#define SYSTEM_SETTINGS(name) QSettings name (QSettings::IniFormat, QSettings::SystemScope, "openslx", "pvs2mgr") + +namespace Util +{ + +} + +#endif /* UTIL_H_ */ diff --git a/src/shared/network.cpp b/src/shared/network.cpp new file mode 100644 index 0000000..6dd6a73 --- /dev/null +++ b/src/shared/network.cpp @@ -0,0 +1,50 @@ +/* + * network.cpp + * + * Created on: 28.01.2013 + * Author: sr + */ + +#include "network.h" +#include <QNetworkInterface> +#include <QHostAddress> +#include <QList> + +namespace Network +{ + + +/** + * Returns list of all addresses assigned to the interfaces of this machine. + * Every address is surrounded by '|', eg: + * |1.2.3.4|3.66.77.88|123:34::1| + */ +QString interfaceAddressesToString() +{ + QList<QHostAddress> list(QNetworkInterface::allAddresses()); + return interfaceAddressesToString(list); +} + +QString interfaceAddressesToString(const QList<QHostAddress>& list) +{ + QString ret; + ret.reserve(500); + for (QList<QHostAddress>::const_iterator it(list.begin()); it != list.end(); ++it) + { + if (*it == QHostAddress::LocalHost || *it == QHostAddress::LocalHostIPv6) + continue; // TODO: Filter other addresses/ranges? + ret.append("|"); + ret.append(it->toString()); + } + ret.append("|"); + return ret; +} + +bool isAddressInList(const QString& list, const QString& address) +{ + static const QString find("|%1|"); + return list.contains(find.arg(address), Qt::CaseSensitive); +} + + +} diff --git a/src/shared/network.h b/src/shared/network.h new file mode 100644 index 0000000..4a763be --- /dev/null +++ b/src/shared/network.h @@ -0,0 +1,25 @@ +/* + * network.h + * + * Created on: 28.01.2013 + * Author: sr + */ + +#ifndef NETWORK_H_ +#define NETWORK_H_ + +#include <QString> +#include <QHostAddress> + +namespace Network +{ + + +QString interfaceAddressesToString(); +QString interfaceAddressesToString(const QList<QHostAddress>& list); +bool isAddressInList(const QString& list, const QString& address); + + +} + +#endif /* NETWORK_H_ */ diff --git a/src/shared/networkmessage.cpp b/src/shared/networkmessage.cpp new file mode 100644 index 0000000..9a7ba9f --- /dev/null +++ b/src/shared/networkmessage.cpp @@ -0,0 +1,296 @@ +/* + * NetworkMessage.cpp + * + * Created on: 18.01.2013 + * Author: sr + */ + +#include <QtCore> +#include <QtNetwork> +#include "networkmessage.h" + +#define HEADER_LEN 8 +#define MAX_MSG_LEN 60000 + +#define BYTE_SWAP4(x) \ + (((x & 0xFF000000) >> 24) | \ + ((x & 0x00FF0000) >> 8) | \ + ((x & 0x0000FF00) << 8) | \ + ((x & 0x000000FF) << 24)) + +#define BYTE_SWAP2(x) \ + (((x & 0xFF00) >> 8) | \ + ((x & 0x00FF) << 8)) + +static quint16 _htons(quint16 x) +{ + if (QSysInfo::ByteOrder == QSysInfo::BigEndian) + return x; + return BYTE_SWAP2(x); +} + +static quint16 _ntohs(quint16 x) +{ + if (QSysInfo::ByteOrder == QSysInfo::BigEndian) + return x; + return BYTE_SWAP2(x); +} + +static quint32 _htonl(quint32 x) +{ + if (QSysInfo::ByteOrder == QSysInfo::BigEndian) + return x; + return BYTE_SWAP4(x); +} + +static quint32 _ntohl(quint32 x) +{ + if (QSysInfo::ByteOrder == QSysInfo::BigEndian) + return x; + return BYTE_SWAP4(x); +} + +/* + // ####################################################### \\ ° . ° + \\ ####################################################### // \___/ + */ + +NetworkMessage::NetworkMessage() : + _buffer(NULL), _bufferSize(0), _bufferPos(0), _lastBufferSize(0), _mode(0) +{ + // +} + +NetworkMessage::~NetworkMessage() +{ + if (_buffer) + delete[] _buffer; +} + +inline void NetworkMessage::allocBuffer() +{ + if (_lastBufferSize < _bufferSize || _buffer == NULL) + { + if (_buffer) + delete[] _buffer; + _lastBufferSize = _bufferSize; + _buffer = new char[_lastBufferSize]; + } +} + +bool NetworkMessage::readMessage(QAbstractSocket* socket) +{ + // Check/Set the _mode variable, so read and write calls are not mixed + if (_mode != 1) + { + if (_mode != 0) + { + qDebug("NetworkMessage::readMessage(TCP) called when class was in mode %d!", _mode); + return false; + } + _mode = 1; + } + // buffer size == 0 means the header hasn't been received yet. do so and set things up + if (_bufferSize == 0) + { + if (socket->bytesAvailable() < HEADER_LEN) + return true; + char header[HEADER_LEN]; + if (socket->read(header, HEADER_LEN) != HEADER_LEN) + { + qDebug("FIXME: Socket said 8 bytes available, but could not read 8..."); + return false; + } + if (!this->parseHeader(header)) + return false; + //qDebug() << "Expecting message of " << _bufferSize << " bytes"; + allocBuffer(); + } + if (_bufferSize > _bufferPos) + { + while (_bufferSize > _bufferPos && socket->bytesAvailable() > 0) + { + const qint64 ret = socket->read(_buffer + _bufferPos, _bufferSize - _bufferPos); + //qDebug() << "Read " << ret << " bytes"; + if (ret < 0) + return false; + _bufferPos += ret; + //qDebug() << "Buffer has now " << _bufferPos << " of " << _bufferSize << " bytes"; + } + if (_bufferSize == _bufferPos) + { + if (!this->parseMessage(_buffer)) + return false; + } + } + return true; +} + +bool NetworkMessage::readMessage(char* data, quint32 len) +{ + // Check/Set the _mode variable, so read and write calls are not mixed + if (_mode != 1) + { + if (_mode != 0) + { + qDebug("NetworkMessage::readMessage(UDP) called when class was in mode %d!", _mode); + return false; + } + _mode = 1; + } + if (len < HEADER_LEN) + { + qDebug("UDP message shorter than 8 bytes. ignored."); + return false; + } + if (!this->parseHeader(data)) + return false; + if (len != _bufferSize + HEADER_LEN) + { + qDebug("UDP packet has wrong size. Is %d, expected %d", (int)_bufferSize, len - HEADER_LEN); + return false; + } + return this->parseMessage(data + HEADER_LEN); +} + +bool NetworkMessage::parseHeader(char *header) +{ + if (header[0] != 'P' || header[1] != 'V' || header[2] != 'S' || header[3] != '2') + { + qDebug("Protocol magic wrong."); + return false; + } + _bufferPos = 0; + _bufferSize = _ntohl(*(quint32*)(header + 4)); + if (_bufferSize > MAX_MSG_LEN) + { + qDebug("Disconnecting Client: MAX_MSG_LEN exceeded."); + return false; + } + if (_bufferSize < 4) // TODO: magic number. msg needs to be at least 4 bytes for 1 key/value pair of length 0 each. + { + qDebug("A Client sent an empty message."); + return false; + } + return true; +} + +bool NetworkMessage::parseMessage(char *buffer) +{ + char *ptr = buffer; + while (_bufferSize - (ptr - buffer) >= 4) + { + const quint16 keyLen = _ntohs(*(quint16*)(ptr)); + ptr += 2; + const quint16 valLen = _ntohs(*(quint16*)(ptr)); + ptr += 2; + if (_bufferSize - (ptr - buffer) < keyLen + valLen) + { + qDebug() << "Warning: Error parsing message. key(" << keyLen << ")+value(" << valLen + << ") length > total remaining bytes (" << (_bufferSize - (ptr - buffer)) << ")"; + return false; + } + _fields.insert(QString::fromUtf8(ptr, keyLen), QByteArray(ptr + keyLen, valLen)); + //qDebug() << "Got " << QString::fromUtf8(ptr, keyLen) << " -> " << QString::fromUtf8(ptr + keyLen, valLen); + ptr += keyLen + valLen; + } + _mode = 3; + return true; +} + +bool NetworkMessage::writeMessage(QAbstractSocket* socket) +{ + if (_mode != 2) + { + if (_mode == 1) + { + qDebug("NetworkMessage::writeMessage called when class was in mode %d!", _mode); + return false; + } + _mode = 1; + _bufferPos = 0; + } + // key/value pairs have not been serialized yet... + if (_bufferSize == 0) + { + this->serializeMessage(); + } + const qint64 ret = socket->write(_buffer + _bufferPos, _bufferSize - _bufferPos); + if (ret == 0) + return true; + if (ret < 0) + return false; + _bufferPos += ret; + if (_bufferPos == _bufferSize) + { + _bufferPos = 0; + _mode = 4; + } + return true; +} + +bool NetworkMessage::writeMessage(QUdpSocket* socket, const QHostAddress& address, quint16 port) +{ + if (_mode != 4) + { + if (_mode == 1) + { + qDebug("NetworkMessage::writeMessage called when class was in mode %d!", _mode); + return false; + } + _mode = 4; + _bufferPos = 0; + } + // key/value pairs have not been serialized yet... + if (_bufferSize == 0) + { + this->serializeMessage(); + } + const qint64 ret = socket->writeDatagram(_buffer, _bufferSize, address, port); + if (ret != _bufferSize) + return false; + if (ret < 0) + return false; + _bufferPos = 0; + return true; +} + +void NetworkMessage::serializeMessage() +{ + QByteArray buf; + //qDebug() << "Default size: " << buf.capacity(); + buf.reserve(_lastBufferSize > 0 ? _lastBufferSize : 200); + for (QHash<QString, QByteArray>::const_iterator it = _fields.begin(); it != _fields.end(); ++it) + { + const QByteArray &ba = it.key().toUtf8(); + const QByteArray &val = it.value(); + quint16 keyLen = _htons((quint16)ba.size()); + quint16 valLen = _htons((quint16)val.size()); + //qDebug() << "Adding to msg(" << ba.size() << "/" << val.size() << "): " << ba << " -> " << val; + buf.append((char*)&keyLen, 2); + buf.append((char*)&valLen, 2); + buf.append(ba); + buf.append(val); + } + _bufferSize = buf.length() + HEADER_LEN; + allocBuffer(); + memcpy(_buffer + HEADER_LEN, buf.data(), buf.size()); + _buffer[0] = 'P'; + _buffer[1] = 'V'; + _buffer[2] = 'S'; + _buffer[3] = '2'; + const quint32 flipped = _htonl(_bufferSize - HEADER_LEN); + memcpy(_buffer + 4, &flipped, 4); +} + +void NetworkMessage::buildErrorMessage(const QString& error) +{ + this->reset(); + this->setField(_ID, _ERROR); + this->setField(_ERROR, error); +} + +void NetworkMessage::buildErrorMessage(const char* error) +{ + this->buildErrorMessage(QString::fromUtf8(error)); +} diff --git a/src/shared/networkmessage.h b/src/shared/networkmessage.h new file mode 100644 index 0000000..5a8b2c2 --- /dev/null +++ b/src/shared/networkmessage.h @@ -0,0 +1,69 @@ +/* + * NetworkMessage.h + * + * Created on: 18.01.2013 + * Author: sr + */ + +#ifndef NETWORKMESSAGE_H_ +#define NETWORKMESSAGE_H_ + +#include <QtCore> + +class QAbstractSocket; +class QUdpSocket; + +// define qstrings for message ids. this prevents implicit instanciation of the same qstrings over and over again +#define MSGTYPE(name) static const QString _ ## name ( #name ) +MSGTYPE(ID); +MSGTYPE(IMG); +MSGTYPE(LOGIN); +MSGTYPE(THUMB); +MSGTYPE(X); +MSGTYPE(Y); +MSGTYPE(VNCSERVER); +MSGTYPE(VNCCLIENT); +MSGTYPE(LOCK); +MSGTYPE(HASH); +MSGTYPE(SALT1); +MSGTYPE(SALT2); +MSGTYPE(IPLIST); +MSGTYPE(PORT); +MSGTYPE(CERT); +MSGTYPE(CHALLENGE); +MSGTYPE(ERROR); + +class NetworkMessage +{ +private: + char *_buffer; + quint32 _bufferSize, _bufferPos, _lastBufferSize; + QHash<QString, QByteArray> _fields; + int _mode; // 0 = none, 1 = reading, 2 = writing, 3 = read complete, 4 = write complete + + void allocBuffer(); + bool parseHeader(char *header); + bool parseMessage(char *buffer); + void serializeMessage(); + +public: + NetworkMessage(); + virtual ~NetworkMessage(); + bool readMessage(QAbstractSocket* socket); + bool readMessage(char* data, quint32 len); + bool writeMessage(QAbstractSocket* socket); + bool writeMessage(QUdpSocket* socket, const QHostAddress& address, quint16 port); + void reset() { _fields.clear(); _bufferSize = 0; _mode = 0; } + const bool readComplete() const { return _mode == 3; } + const bool writeComplete() const { return _mode == 4; } + const bool hasField(const QString& key) const { return _fields.contains(key); } + const QString getFieldString(const QString& key) const { return QString::fromUtf8(_fields.value(key)); } + const QByteArray getFieldBytes(const QString& key) const { return _fields.value(key); } + void setField(const QString& key, const QByteArray& value) { if (_mode == 1 || _mode == 2) qFatal("setField called in bad state."); _fields.insert(key, value); _mode = 0; } + void setField(const QString& key, const QString& value) { setField(key, value.toUtf8()); } + // Convenience + void buildErrorMessage(const QString& error); + void buildErrorMessage(const char* error); +}; + +#endif /* NETWORKMESSAGE_H_ */ diff --git a/src/shared/settings.h b/src/shared/settings.h new file mode 100644 index 0000000..c1c45c1 --- /dev/null +++ b/src/shared/settings.h @@ -0,0 +1,12 @@ +#ifndef _SETTINGS_H_ +#define _SETTINGS_H_ + +#define CLIENT_PORT 5194 +static const QString CLIENT_PORT_STR(QString::number(CLIENT_PORT)); +static const QByteArray CLIENT_PORT_ARRAY(QString::number(CLIENT_PORT).toUtf8()); + +#define SERVICE_DISCOVERY_PORT 3492 + +#define PING_TIMEOUT_MS 30000 + +#endif diff --git a/src/shared/util.cpp b/src/shared/util.cpp new file mode 100644 index 0000000..d5c101e --- /dev/null +++ b/src/shared/util.cpp @@ -0,0 +1,22 @@ +/* + * util.cpp + * + * Created on: 30.01.2013 + * Author: sr + */ + +#include "util.h" +#include <QCryptographicHash> + +static QCryptographicHash sha1(QCryptographicHash::Sha1); + +QByteArray genSha1(const QByteArray* a, const QByteArray* b, const QByteArray* c, const QByteArray* d, const QByteArray* e) +{ + sha1.reset(); + sha1.addData(*a); + if (b) sha1.addData(*b); + if (c) sha1.addData(*c); + if (d) sha1.addData(*d); + if (e) sha1.addData(*e); + return sha1.result(); +} diff --git a/src/shared/util.h b/src/shared/util.h new file mode 100644 index 0000000..c2e5145 --- /dev/null +++ b/src/shared/util.h @@ -0,0 +1,15 @@ +/* + * util.h + * + * Created on: 30.01.2013 + * Author: sr + */ + +#ifndef UTIL_H_ +#define UTIL_H_ + +#include <QByteArray> + +QByteArray genSha1(const QByteArray* a, const QByteArray* b = NULL, const QByteArray* c = NULL, const QByteArray* d = NULL, const QByteArray* e = NULL); + +#endif /* UTIL_H_ */ |