1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-02 10:24:11 +01:00

Merge remote-tracking branch 'remotes/origin/GCS_ChangesToUI-RuntimeCFG' into next

Conflicts:
	ground/openpilotgcs/src/plugins/config/configinputwidget.cpp
	ground/openpilotgcs/src/plugins/config/input.ui
This commit is contained in:
zedamota 2011-07-26 21:44:59 +01:00
commit 69083ee618
25 changed files with 4007 additions and 477 deletions

View File

@ -23,7 +23,7 @@
<attribute name="title">
<string>Mixer Settings</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="0,0,0,0">
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="0,0,0">
<property name="margin">
<number>5</number>
</property>
@ -1138,7 +1138,7 @@ Typical value is 50% for + or X configuration on quads.</string>
<item>
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Throtle Curve 1</string>
<string>Curve 1</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
@ -1208,7 +1208,7 @@ Typical value is 50% for + or X configuration on quads.</string>
<item>
<widget class="QGroupBox" name="groupBox_5">
<property name="title">
<string>Throtle Curve 2</string>
<string>Curve 2</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_17">
<item>
@ -1731,75 +1731,6 @@ Typical value is 50% for + or X configuration on quads.</string>
</widget>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="airframeHelp">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../coreplugin/core.qrc">
<normaloff>:/core/images/helpicon.svg</normaloff>:/core/images/helpicon.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveAircraftToRAM">
<property name="toolTip">
<string>Send to board, but don't save permanently (flash or SD).</string>
</property>
<property name="text">
<string>Apply</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveAircraftToSD">
<property name="toolTip">
<string>Applies and Saves all settings to flash or SD depending on board.</string>
</property>
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
@ -1808,7 +1739,7 @@ Typical value is 50% for + or X configuration on quads.</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_25">
<item>
<layout class="QVBoxLayout" name="verticalLayout_11" stretch="0,1,0,0,0,0">
<layout class="QVBoxLayout" name="verticalLayout_11" stretch="0,1,0,0,0">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_24">
<item>
@ -2082,14 +2013,14 @@ p, li { white-space: pre-wrap; }
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;&quot;&gt;
&lt;tr&gt;
&lt;td style=&quot;border: none;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Ubuntu'; font-size:14pt; font-weight:600; color:#ff0000;&quot;&gt;SETTING UP FEED FORWARD IS DANGEROUS&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Beware: Feed Forward Tuning will launch all engines around mid-throttle, you have been warned!&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Remove your props initially, and for fine-tuning, make sure your airframe is safely held in place. Wear glasses and protect your face and body.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</string>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:13pt;&quot;&gt;Beware: Feed Forward Tuning will launch all engines around mid-throttle, you have been warned!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:13pt;&quot;&gt;Remove your props initially, and for fine-tuning, make sure your airframe is safely held in place. Wear glasses and protect your face and body.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
@ -2106,49 +2037,81 @@ p, li { white-space: pre-wrap; }
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_21">
<item>
<spacer name="horizontalSpacer_14">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="ffApply">
<property name="toolTip">
<string>Send to board, but don't save permanently (flash or SD).</string>
</property>
<property name="text">
<string>Apply</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="ffSave">
<property name="toolTip">
<string>Applies and Saves all settings to flash or SD depending on board.</string>
</property>
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="airframeHelp">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../coreplugin/core.qrc">
<normaloff>:/core/images/helpicon.svg</normaloff>:/core/images/helpicon.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveAircraftToRAM">
<property name="toolTip">
<string>Send to board, but don't save permanently (flash or SD).</string>
</property>
<property name="text">
<string>Apply</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveAircraftToSD">
<property name="toolTip">
<string>Applies and Saves all settings to flash or SD depending on board.</string>
</property>
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>

View File

@ -0,0 +1,236 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CC_HW_Widget</class>
<widget class="QWidget" name="CC_HW_Widget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>517</width>
<height>487</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="1" rowspan="5" colspan="3">
<widget class="QLabel" name="label_2">
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap>:/configgadget/images/coptercontrol.svg</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QComboBox" name="cbFlexi"/>
</item>
<item row="4" column="0">
<widget class="QComboBox" name="cbTele"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>MainPort</string>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>FlexiPort</string>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
</property>
</widget>
</item>
<item row="1" column="4">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Receiver type</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="receiverType"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Telemetry speed:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="telemetrySpeed">
<property name="toolTip">
<string>Select the speed here.</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="problems">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string/>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Changes on this page require an Hw reboot to be applied</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="saveTelemetryToRAM">
<property name="toolTip">
<string>Send to OpenPilot but don't write in SD.
Beware of not locking yourself out!</string>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Apply</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveTelemetryToSD">
<property name="toolTip">
<string>Applies and Saves all settings to SD.
Beware of not locking yourself out!</string>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -24,7 +24,8 @@ HEADERS += configplugin.h \
configoutputwidget.h \
configtaskwidget.h \
configairframewidget.h \
configtelemetrywidget.h \
config_pro_hw_widget.h \
config_cc_hw_widget.h \
configahrswidget.h \
configccattitudewidget.h \
mixercurvewidget.h \
@ -34,7 +35,9 @@ HEADERS += configplugin.h \
configstabilizationwidget.h \
assertions.h \
calibration.h \
defaultattitudewidget.h
defaultattitudewidget.h \
smartsavebutton.h \
defaulthwsettingswidget.h
SOURCES += configplugin.cpp \
configgadgetconfiguration.cpp \
@ -47,7 +50,8 @@ SOURCES += configplugin.cpp \
configinputwidget.cpp \
configoutputwidget.cpp \
configairframewidget.cpp \
configtelemetrywidget.cpp \
config_pro_hw_widget.cpp \
config_cc_hw_widget.cpp \
configahrswidget.cpp \
configccattitudewidget.cpp \
mixercurvewidget.cpp \
@ -59,17 +63,21 @@ SOURCES += configplugin.cpp \
legacy-calibration.cpp \
gyro-calibration.cpp \
alignment-calibration.cpp \
defaultattitudewidget.cpp
defaultattitudewidget.cpp \
smartsavebutton.cpp \
defaulthwsettingswidget.cpp
FORMS += \
airframe.ui \
telemetry.ui \
cc_hw_settings.ui \
pro_hw_settings.ui \
ahrs.ui \
ccpm.ui \
stabilization.ui \
input.ui \
output.ui \
ccattitude.ui \
defaultattitude.ui
defaultattitude.ui \
defaulthwsettings.ui
RESOURCES += configgadget.qrc

View File

@ -0,0 +1,90 @@
/**
******************************************************************************
*
* @file configtelemetrywidget.h
* @author E. Lafargue & The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup ConfigPlugin Config Plugin
* @{
* @brief The Configuration Gadget used to update settings in the firmware
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config_cc_hw_widget.h"
#include <QDebug>
#include <QStringList>
#include <QtGui/QWidget>
#include <QtGui/QTextEdit>
#include <QtGui/QVBoxLayout>
#include <QtGui/QPushButton>
ConfigCCHWWidget::ConfigCCHWWidget(QWidget *parent) : ConfigTaskWidget(parent)
{
m_telemetry = new Ui_CC_HW_Widget();
m_telemetry->setupUi(this);
setupButtons(m_telemetry->saveTelemetryToRAM,m_telemetry->saveTelemetryToSD);
addUAVObjectToWidgetRelation("TelemetrySettings","Speed",m_telemetry->telemetrySpeed);
addUAVObjectToWidgetRelation("HwSettings","CC_FlexiPort",m_telemetry->cbFlexi);
addUAVObjectToWidgetRelation("HwSettings","CC_MainPort",m_telemetry->cbTele);
addUAVObjectToWidgetRelation("ManualControlSettings","InputMode",m_telemetry->receiverType);
enableControls(false);
populateWidgets();
refreshWidgetsValues();
}
ConfigCCHWWidget::~ConfigCCHWWidget()
{
// Do nothing
}
void ConfigCCHWWidget::refreshValues()
{
}
void ConfigCCHWWidget::widgetsContentsChanged()
{
ConfigTaskWidget::widgetsContentsChanged();
enableControls(false);
if((m_telemetry->cbFlexi->currentText()==m_telemetry->cbTele->currentText()) && m_telemetry->cbTele->currentText()!="Disabled")
{
m_telemetry->problems->setText("Warning: you have configured the MainPort and the FlexiPort for the same function, this is currently not suported");
}
else if((m_telemetry->cbTele->currentText()=="Spektrum" ||m_telemetry->cbFlexi->currentText()=="Spektrum") && m_telemetry->receiverType->currentText()!="Spektrum")
{
m_telemetry->problems->setText("Warning: you have at least one port configured as 'Spektrum' however that is not your selected input type");
}
else if(m_telemetry->cbTele->currentText()=="S.Bus" && m_telemetry->receiverType->currentText()!="S.Bus")
{
m_telemetry->problems->setText("Warning: you have at least one port configured as 'S.Bus' however that is not your selected input type");
}
else if(m_telemetry->cbTele->currentText()!="S.Bus" && m_telemetry->receiverType->currentText()=="S.Bus")
{
m_telemetry->problems->setText("Warning: you have selected 'S.Bus' as your input type however you have no port configured for that protocol");
}
else if((m_telemetry->cbTele->currentText()!="Spektrum" && m_telemetry->cbFlexi->currentText()!="Spektrum") && m_telemetry->receiverType->currentText()=="Spektrum")
{
m_telemetry->problems->setText("Warning: you have at selected 'Spektrum' as your input type however you have no port configured for that protocol");
}
else
{
m_telemetry->problems->setText("");
enableControls(true);
}
}

View File

@ -0,0 +1,54 @@
/**
******************************************************************************
*
* @file configtelemetrytwidget.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup ConfigPlugin Config Plugin
* @{
* @brief Telemetry configuration panel
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef CONFIGCCHWWIDGET_H
#define CONFIGCCHWWIDGET_H
#include "ui_cc_hw_settings.h"
#include "configtaskwidget.h"
#include "extensionsystem/pluginmanager.h"
#include "uavobjectmanager.h"
#include "uavobject.h"
#include <QtGui/QWidget>
#include <QList>
#include "smartsavebutton.h"
class ConfigCCHWWidget: public ConfigTaskWidget
{
Q_OBJECT
public:
ConfigCCHWWidget(QWidget *parent = 0);
~ConfigCCHWWidget();
private slots:
void refreshValues();
void widgetsContentsChanged();
private:
Ui_CC_HW_Widget *m_telemetry;
};
#endif // CONFIGCCHWWIDGET_H

View File

@ -0,0 +1,60 @@
/**
******************************************************************************
*
* @file configtelemetrywidget.h
* @author E. Lafargue & The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup ConfigPlugin Config Plugin
* @{
* @brief The Configuration Gadget used to update settings in the firmware
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config_pro_hw_widget.h"
#include <QDebug>
#include <QStringList>
#include <QtGui/QWidget>
#include <QtGui/QTextEdit>
#include <QtGui/QVBoxLayout>
#include <QtGui/QPushButton>
ConfigProHWWidget::ConfigProHWWidget(QWidget *parent) : ConfigTaskWidget(parent)
{
m_telemetry = new Ui_PRO_HW_Widget();
m_telemetry->setupUi(this);
setupButtons(m_telemetry->saveTelemetryToRAM,m_telemetry->saveTelemetryToSD);
addUAVObjectToWidgetRelation("TelemetrySettings","Speed",m_telemetry->telemetrySpeed);
enableControls(false);
populateWidgets();
refreshWidgetsValues();
}
ConfigProHWWidget::~ConfigProHWWidget()
{
// Do nothing
}
/**
Request telemetry settings from the board
*/
void ConfigProHWWidget::refreshValues()
{
}

View File

@ -24,10 +24,10 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef CONFIGTELEMETRYWIDGET_H
#define CONFIGTELEMETRYWIDGET_H
#ifndef CONFIGPROHWWIDGET_H
#define CONFIGPROHWWIDGET_H
#include "ui_telemetry.h"
#include "ui_pro_hw_settings.h"
#include "configtaskwidget.h"
#include "extensionsystem/pluginmanager.h"
#include "uavobjectmanager.h"
@ -36,23 +36,20 @@
#include <QList>
class ConfigTelemetryWidget: public ConfigTaskWidget
class ConfigProHWWidget: public ConfigTaskWidget
{
Q_OBJECT
public:
ConfigTelemetryWidget(QWidget *parent = 0);
~ConfigTelemetryWidget();
ConfigProHWWidget(QWidget *parent = 0);
~ConfigProHWWidget();
private:
Ui_TelemetryWidget *m_telemetry;
void enableControls(bool enable);
Ui_PRO_HW_Widget *m_telemetry;
private slots:
virtual void refreshValues();
void sendTelemetryUpdate();
void saveTelemetryUpdate();
};
#endif // ConfigTelemetryWidget_H
#endif // CONFIGPROHWWIDGET_H

View File

@ -91,6 +91,32 @@ ConfigAirframeWidget::ConfigAirframeWidget(QWidget *parent) : ConfigTaskWidget(p
m_aircraft = new Ui_AircraftWidget();
m_aircraft->setupUi(this);
setupButtons(m_aircraft->saveAircraftToRAM,m_aircraft->saveAircraftToSD);
addWidget(m_aircraft->customMixerTable);
addWidget(m_aircraft->customThrottle2Curve);
addWidget(m_aircraft->customThrottle1Curve);
addWidget(m_aircraft->multiThrottleCurve);
addWidget(m_aircraft->fixedWingThrottle);
addWidget(m_aircraft->fixedWingType);
addWidget(m_aircraft->feedForwardSlider);
addWidget(m_aircraft->accelTime);
addWidget(m_aircraft->decelTime);
addWidget(m_aircraft->maxAccelSlider);
addWidget(m_aircraft->multirotorFrameType);
addWidget(m_aircraft->multiMotor1);
addWidget(m_aircraft->multiMotor2);
addWidget(m_aircraft->multiMotor3);
addWidget(m_aircraft->multiMotor4);
addWidget(m_aircraft->multiMotor5);
addWidget(m_aircraft->multiMotor6);
addWidget(m_aircraft->multiMotor7);
addWidget(m_aircraft->multiMotor8);
addWidget(m_aircraft->triYawChannel);
addUAVObject("SystemSettings");
addUAVObject("MixerSettings");
addUAVObject("ActuatorSettings");
ffTuningInProgress = false;
ffTuningPhase = false;
@ -164,11 +190,6 @@ ConfigAirframeWidget::ConfigAirframeWidget(QWidget *parent) : ConfigTaskWidget(p
m_aircraft->customMixerTable->setItemDelegateForRow(i, sbd);
}
connect(m_aircraft->saveAircraftToSD, SIGNAL(clicked()), this, SLOT(saveAircraftUpdate()));
connect(m_aircraft->saveAircraftToRAM, SIGNAL(clicked()), this, SLOT(sendAircraftUpdate()));
connect(m_aircraft->ffSave, SIGNAL(clicked()), this, SLOT(saveAircraftUpdate()));
connect(m_aircraft->ffApply, SIGNAL(clicked()), this, SLOT(sendAircraftUpdate()));
connect(m_aircraft->fixedWingType, SIGNAL(currentIndexChanged(QString)), this, SLOT(setupAirframeUI(QString)));
connect(m_aircraft->multirotorFrameType, SIGNAL(currentIndexChanged(QString)), this, SLOT(setupAirframeUI(QString)));
connect(m_aircraft->aircraftType, SIGNAL(currentIndexChanged(int)), this, SLOT(switchAirframeType(int)));
@ -191,17 +212,8 @@ ConfigAirframeWidget::ConfigAirframeWidget(QWidget *parent) : ConfigTaskWidget(p
connect(m_aircraft->ffTestBox3, SIGNAL(clicked(bool)), this, SLOT(enableFFTest()));
enableControls(false);
refreshValues();
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(onAutopilotConnect()));
connect(parent, SIGNAL(autopilotDisconnected()), this, SLOT(onAutopilotDisconnect()));
refreshWidgetsValues();
// Register for ManualControlSettings changes:
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("SystemSettings")));
connect(obj,SIGNAL(objectUpdated(UAVObject*)),this,SLOT(refreshValues()));
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
connect(obj,SIGNAL(objectUpdated(UAVObject*)),this,SLOT(refreshValues()));
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("ActuatorSettings")));
connect(obj,SIGNAL(objectUpdated(UAVObject*)),this,SLOT(refreshValues()));
// Connect the help button
connect(m_aircraft->airframeHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
@ -213,18 +225,6 @@ ConfigAirframeWidget::~ConfigAirframeWidget()
// Do nothing
}
/**
Enable or disable controls depending on whether we're ronnected or not
*/
void ConfigAirframeWidget::enableControls(bool enable)
{
//m_aircraft->saveAircraftToRAM->setEnabled(enable);
m_aircraft->saveAircraftToSD->setEnabled(enable);
//m_aircraft->ffApply->setEnabled(enable);
m_aircraft->ffSave->setEnabled(enable);
}
/**
Slot for switching the airframe type. We do it explicitely
rather than a signal in the UI, because we want to force a fitInView of the quad shapes.
@ -460,7 +460,7 @@ void ConfigAirframeWidget::updateCustomThrottle2CurveValue(QList<double> list, d
/**
Refreshes the current value of the SystemSettings which holds the aircraft type
*/
void ConfigAirframeWidget::refreshValues()
void ConfigAirframeWidget::refreshWidgetsValues()
{
// Get the Airframe type from the system settings:
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("SystemSettings")));
@ -665,10 +665,13 @@ void ConfigAirframeWidget::refreshValues()
val = floor(-field->getDouble(i)/1.27);
m_aircraft->mrYawMixLevel->setValue(val);
eng = m_aircraft->multiMotor2->currentIndex()-1;
field = obj->getField(mixerVectors.at(eng));
i = field->getElementNames().indexOf("Roll");
val = floor(1-field->getDouble(i)/1.27);
m_aircraft->mrRollMixLevel->setValue(val);
if(eng>-1)
{
field = obj->getField(mixerVectors.at(eng));
i = field->getElementNames().indexOf("Roll");
val = floor(1-field->getDouble(i)/1.27);
m_aircraft->mrRollMixLevel->setValue(val);
}
}
} else if (frameType == "HexaX") {
// Motors 1/2/3 4/5/6 are: NE / E / SE / SW / W / NW
@ -1817,8 +1820,9 @@ void ConfigAirframeWidget::updateCustomAirframeUI()
we call additional methods for specific frames, so that we do not have a code
that is too heavy.
*/
void ConfigAirframeWidget::sendAircraftUpdate()
void ConfigAirframeWidget::updateObjectsFromWidgets()
{
qDebug()<<"updateObjectsFromWidgets";
QString airframeType = "Custom";
if (m_aircraft->aircraftType->currentText() == "Fixed Wing") {
// Save the curve (common to all Fixed wing frames)
@ -2123,31 +2127,9 @@ void ConfigAirframeWidget::sendAircraftUpdate()
}
}
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("ActuatorSettings")));
obj->updated();
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
obj->updated();
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("SystemSettings")));
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("SystemSettings")));
UAVObjectField* field = obj->getField(QString("AirframeType"));
field->setValue(airframeType);
obj->updated();
}
/**
Send airframe type to the board and request saving to SD card
*/
void ConfigAirframeWidget::saveAircraftUpdate()
{
// Send update so that the latest value is saved
sendAircraftUpdate();
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("SystemSettings")));
Q_ASSERT(obj);
saveObjectToSD(obj);
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
saveObjectToSD(obj);
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("ActuatorSettings")));
saveObjectToSD(obj);
}

View File

@ -58,7 +58,6 @@ private:
void updateCustomAirframeUI();
bool setupMixer(double mixerFactors[8][3]);
void setupMotors(QList<QString> motorList);
virtual void enableControls(bool enable);
void resetField(UAVObjectField * field);
void resetMixer (MixerCurveWidget *mixer, int numElements, double maxvalue);
@ -74,9 +73,9 @@ private:
UAVObject::Metadata accInitialData;
private slots:
virtual void refreshValues();
void sendAircraftUpdate();
void saveAircraftUpdate();
virtual void refreshWidgetsValues();
void updateObjectsFromWidgets();
// void saveAircraftUpdate();
void setupAirframeUI(QString type);
void toggleAileron2(int index);
void toggleElevator2(int index);

View File

@ -1,18 +1,20 @@
<RCC>
<qresource prefix="/configgadget">
<file>images/help2.png</file>
<file>images/XBee.svg</file>
<file>images/Airframe.png</file>
<file>images/Servo.png</file>
<file>images/ahrs-calib.svg</file>
<file>images/AHRS-v1.3.png</file>
<file>images/paper-plane.svg</file>
<file>images/curve-bg.svg</file>
<file>images/quad-shapes.svg</file>
<file>images/ccpm_setup.svg</file>
<file>images/PipXtreme.png</file>
<file>images/gyroscope.svg</file>
<file>images/Transmitter.png</file>
<file>images/help.png</file>
</qresource>
<qresource prefix="/configgadget">
<file>images/help2.png</file>
<file>images/XBee.svg</file>
<file>images/Airframe.png</file>
<file>images/Servo.png</file>
<file>images/ahrs-calib.svg</file>
<file>images/AHRS-v1.3.png</file>
<file>images/paper-plane.svg</file>
<file>images/curve-bg.svg</file>
<file>images/quad-shapes.svg</file>
<file>images/ccpm_setup.svg</file>
<file>images/PipXtreme.png</file>
<file>images/gyroscope.svg</file>
<file>images/Transmitter.png</file>
<file>images/help.png</file>
<file>images/coptercontrol.svg</file>
<file>images/hw_config.svg</file>
</qresource>
</RCC>

View File

@ -33,9 +33,10 @@
#include "configinputwidget.h"
#include "configoutputwidget.h"
#include "configstabilizationwidget.h"
#include "configtelemetrywidget.h"
#include "config_pro_hw_widget.h"
#include "config_cc_hw_widget.h"
#include "defaultattitudewidget.h"
#include "defaulthwsettingswidget.h"
#include "uavobjectutilmanager.h"
#include <QDebug>
@ -62,23 +63,24 @@ ConfigGadgetWidget::ConfigGadgetWidget(QWidget *parent) : QWidget(parent)
// *********************
QWidget *qwd;
qwd = new DefaultHwSettingsWidget(this);
ftw->insertTab(ConfigGadgetWidget::hardware, qwd, QIcon(":/configgadget/images/hw_config.svg"), QString("HW Settings"));
qwd = new ConfigAirframeWidget(this);
ftw->insertTab(0, qwd, QIcon(":/configgadget/images/Airframe.png"), QString("Aircraft"));
ftw->insertTab(ConfigGadgetWidget::aircraft, qwd, QIcon(":/configgadget/images/Airframe.png"), QString("Aircraft"));
qwd = new ConfigInputWidget(this);
ftw->insertTab(1, qwd, QIcon(":/configgadget/images/Transmitter.png"), QString("Input"));
ftw->insertTab(ConfigGadgetWidget::input, qwd, QIcon(":/configgadget/images/Transmitter.png"), QString("Input"));
qwd = new ConfigOutputWidget(this);
ftw->insertTab(2, qwd, QIcon(":/configgadget/images/Servo.png"), QString("Output"));
ftw->insertTab(ConfigGadgetWidget::output, qwd, QIcon(":/configgadget/images/Servo.png"), QString("Output"));
qwd = new DefaultAttitudeWidget(this);
ftw->insertTab(3, qwd, QIcon(":/configgadget/images/AHRS-v1.3.png"), QString("INS"));
ftw->insertTab(ConfigGadgetWidget::ins, qwd, QIcon(":/configgadget/images/AHRS-v1.3.png"), QString("INS"));
qwd = new ConfigStabilizationWidget(this);
ftw->insertTab(4, qwd, QIcon(":/configgadget/images/gyroscope.svg"), QString("Stabilization"));
ftw->insertTab(ConfigGadgetWidget::stabilization, qwd, QIcon(":/configgadget/images/gyroscope.svg"), QString("Stabilization"));
qwd = new ConfigTelemetryWidget(this);
ftw->insertTab(5, qwd, QIcon(":/configgadget/images/XBee.svg"), QString("Telemetry"));
// qwd = new ConfigPipXtremeWidget(this);
@ -128,16 +130,24 @@ void ConfigGadgetWidget::onAutopilotConnect() {
if ((board & 0xff00) == 1024) {
// CopterControl family
// Delete the INS panel, replace with CC Panel:
ftw->setCurrentIndex(0);
ftw->removeTab(3);
ftw->setCurrentIndex(ConfigGadgetWidget::hardware);
ftw->removeTab(ConfigGadgetWidget::ins);
QWidget *qwd = new ConfigCCAttitudeWidget(this);
ftw->insertTab(3, qwd, QIcon(":/configgadget/images/AHRS-v1.3.png"), QString("Attitude"));
ftw->insertTab(ConfigGadgetWidget::ins, qwd, QIcon(":/configgadget/images/AHRS-v1.3.png"), QString("Attitude"));
ftw->removeTab(ConfigGadgetWidget::hardware);
qwd = new ConfigCCHWWidget(this);
ftw->insertTab(ConfigGadgetWidget::hardware, qwd, QIcon(":/configgadget/images/hw_config.svg"), QString("HW Settings"));
ftw->setCurrentIndex(ConfigGadgetWidget::hardware);
} else if ((board & 0xff00) == 256 ) {
// Mainboard family
ftw->setCurrentIndex(0);
ftw->removeTab(3);
ftw->setCurrentIndex(ConfigGadgetWidget::hardware);
ftw->removeTab(ConfigGadgetWidget::ins);
QWidget *qwd = new ConfigAHRSWidget(this);
ftw->insertTab(3, qwd, QIcon(":/configgadget/images/AHRS-v1.3.png"), QString("INS"));
ftw->insertTab(ConfigGadgetWidget::ins, qwd, QIcon(":/configgadget/images/AHRS-v1.3.png"), QString("INS"));
ftw->removeTab(ConfigGadgetWidget::hardware);
qwd = new ConfigProHWWidget(this);
ftw->insertTab(ConfigGadgetWidget::hardware, qwd, QIcon(":/configgadget/images/hw_config.svg"), QString("HW Settings"));
ftw->setCurrentIndex(ConfigGadgetWidget::hardware);
}
}
emit autopilotConnected();

View File

@ -49,6 +49,7 @@ class ConfigGadgetWidget: public QWidget
public:
ConfigGadgetWidget(QWidget *parent = 0);
~ConfigGadgetWidget();
enum widgetTabs {hardware=0, aircraft, input, output, ins, stabilization};
public slots:
void onAutopilotConnect();

View File

@ -110,10 +110,7 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent)
// Get the receiver types supported by OpenPilot and fill the corresponding
// dropdown menu:
obj = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("ManualControlSettings")));
QString fieldName = QString("InputMode");
UAVObjectField *field = obj->getField(fieldName);
m_config->receiverType->addItems(field->getOptions());
UAVObjectField * field;
// Fill in the dropdown menus for the channel RC Input assignement.
QStringList channelsList;
channelsList << "None";
@ -263,7 +260,7 @@ void ConfigInputWidget::refreshValues()
// Update receiver type
field = obj->getField(QString("InputMode"));
m_config->receiverType->setCurrentIndex(m_config->receiverType->findText(field->getValue().toString()));
m_config->receiverType->setText(field->getValue().toString());
// Reset all channel assignement dropdowns:
foreach (QComboBox *combo, inChannelAssign) {
@ -331,11 +328,6 @@ void ConfigInputWidget::sendRCInputUpdate()
for (int i = 0; i < 8; i++)
field->setValue(inSliders[i]->value(), i);
// Set RC Receiver type:
fieldName = QString("InputMode");
field = obj->getField(fieldName);
field->setValue(m_config->receiverType->currentText());
// Set Roll/Pitch/Yaw/Etc assignement:
// Rule: if two channels have the same setting (which is wrong!) the higher channel
// will get the setting.

View File

@ -28,13 +28,72 @@
#include <QtGui/QWidget>
ConfigTaskWidget::ConfigTaskWidget(QWidget *parent) : QWidget(parent)
ConfigTaskWidget::ConfigTaskWidget(QWidget *parent) : QWidget(parent),smartsave(NULL),dirty(false)
{
pm = ExtensionSystem::PluginManager::instance();
objManager = pm->getObject<UAVObjectManager>();
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(onAutopilotConnect()));
connect(parent, SIGNAL(autopilotDisconnected()),this, SLOT(onAutopilotDisconnect()));
}
void ConfigTaskWidget::addWidget(QWidget * widget)
{
addUAVObjectToWidgetRelation("","",widget);
}
void ConfigTaskWidget::addUAVObject(QString objectName)
{
addUAVObjectToWidgetRelation(objectName,"",NULL);
}
void ConfigTaskWidget::addUAVObjectToWidgetRelation(QString object, QString field, QWidget * widget)
{
UAVObject *obj=NULL;
UAVObjectField *_field=NULL;
if(!object.isEmpty())
obj = objManager->getObject(QString(object));
connect(obj, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(refreshWidgetsValues()));
//smartsave->addObject(obj);
if(!field.isEmpty() && obj)
_field = obj->getField(QString(field));
objectToWidget * ow=new objectToWidget();
ow->field=_field;
ow->object=obj;
ow->widget=widget;
objOfInterest.append(ow);
if(obj)
smartsave->addObject(obj);
if(widget==NULL)
{
// do nothing
}
else if(QComboBox * cb=qobject_cast<QComboBox *>(widget))
{
connect(cb,SIGNAL(currentIndexChanged(int)),this,SLOT(widgetsContentsChanged()));
}
else if(QSlider * cb=qobject_cast<QSlider *>(widget))
{
connect(cb,SIGNAL(sliderMoved(int)),this,SLOT(widgetsContentsChanged()));
}
else if(MixerCurveWidget * cb=qobject_cast<MixerCurveWidget *>(widget))
{
connect(cb,SIGNAL(curveUpdated(QList<double>,double)),this,SLOT(widgetsContentsChanged()));
}
else if(QTableWidget * cb=qobject_cast<QTableWidget *>(widget))
{
connect(cb,SIGNAL(cellChanged(int,int)),this,SLOT(widgetsContentsChanged()));
}
else if(QSpinBox * cb=qobject_cast<QSpinBox *>(widget))
{
connect(cb,SIGNAL(valueChanged(int)),this,SLOT(widgetsContentsChanged()));
}
else if(QDoubleSpinBox * cb=qobject_cast<QDoubleSpinBox *>(widget))
{
connect(cb,SIGNAL(valueChanged(double)),this,SLOT(widgetsContentsChanged()));
}
}
ConfigTaskWidget::~ConfigTaskWidget()
{
// Do nothing
delete smartsave;
}
void ConfigTaskWidget::saveObjectToSD(UAVObject *obj)
@ -73,9 +132,125 @@ void ConfigTaskWidget::onAutopilotDisconnect()
void ConfigTaskWidget::onAutopilotConnect()
{
enableControls(true);
refreshValues();
refreshWidgetsValues();
}
void ConfigTaskWidget::populateWidgets()
{
foreach(objectToWidget * ow,objOfInterest)
{
if(ow->object==NULL || ow->field==NULL)
{
// do nothing
}
else if(QComboBox * cb=qobject_cast<QComboBox *>(ow->widget))
{
cb->addItems(ow->field->getOptions());
cb->setCurrentIndex(cb->findText(ow->field->getValue().toString()));
}
else if(QLabel * cb=qobject_cast<QLabel *>(ow->widget))
{
cb->setText(ow->field->getValue().toString());
}
}
dirty=false;
}
void ConfigTaskWidget::refreshWidgetsValues()
{
foreach(objectToWidget * ow,objOfInterest)
{
if(ow->object==NULL || ow->field==NULL)
{
//do nothing
}
else if(QComboBox * cb=qobject_cast<QComboBox *>(ow->widget))
{
cb->setCurrentIndex(cb->findText(ow->field->getValue().toString()));
}
else if(QLabel * cb=qobject_cast<QLabel *>(ow->widget))
{
cb->setText(ow->field->getValue().toString());
}
}
}
void ConfigTaskWidget::updateObjectsFromWidgets()
{
foreach(objectToWidget * ow,objOfInterest)
{
if(ow->object==NULL || ow->field==NULL)
{
//do nothing
}
else if(QComboBox * cb=qobject_cast<QComboBox *>(ow->widget))
{
ow->field->setValue(cb->currentText());
}
else if(QLabel * cb=qobject_cast<QLabel *>(ow->widget))
{
ow->field->setValue(cb->text());
}
}
}
void ConfigTaskWidget::setupButtons(QPushButton *update, QPushButton *save)
{
smartsave=new smartSaveButton(update,save);
connect(smartsave, SIGNAL(preProcessOperations()), this, SLOT(updateObjectsFromWidgets()));
connect(smartsave,SIGNAL(saveSuccessfull()),this,SLOT(clearDirty()));
connect(smartsave,SIGNAL(beginOp()),this,SLOT(disableObjUpdates()));
connect(smartsave,SIGNAL(endOp()),this,SLOT(enableObjUpdates()));
}
void ConfigTaskWidget::enableControls(bool enable)
{
if(smartsave)
smartsave->enableControls(enable);
}
void ConfigTaskWidget::widgetsContentsChanged()
{
dirty=true;
}
void ConfigTaskWidget::clearDirty()
{
dirty=false;
}
bool ConfigTaskWidget::isDirty()
{
return dirty;
}
void ConfigTaskWidget::refreshValues()
{
}
void ConfigTaskWidget::disableObjUpdates()
{
foreach(objectToWidget * obj,objOfInterest)
{
if(obj->object)
disconnect(obj->object, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(refreshWidgetsValues()));
}
}
void ConfigTaskWidget::enableObjUpdates()
{
foreach(objectToWidget * obj,objOfInterest)
{
if(obj->object)
connect(obj->object, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(refreshWidgetsValues()));
}
}
/**

View File

@ -35,28 +35,56 @@
#include <QQueue>
#include <QtGui/QWidget>
#include <QList>
#include <QLabel>
#include "smartsavebutton.h"
#include "mixercurvewidget.h"
#include <QTableWidget>
#include <QDoubleSpinBox>
#include <QSpinBox>
class ConfigTaskWidget: public QWidget
{
Q_OBJECT
public:
struct objectToWidget
{
UAVObject * object;
UAVObjectField * field;
QWidget * widget;
};
ConfigTaskWidget(QWidget *parent = 0);
~ConfigTaskWidget();
void saveObjectToSD(UAVObject *obj);
UAVObjectManager* getObjectManager();
static double listMean(QList<double> list);
void addUAVObject(QString objectName);
void addWidget(QWidget * widget);
void addUAVObjectToWidgetRelation(QString object,QString field,QWidget * widget);
void setupButtons(QPushButton * update,QPushButton * save);
bool isDirty();
public slots:
void onAutopilotDisconnect();
void onAutopilotConnect();
private slots:
virtual void refreshValues() = 0;
virtual void refreshValues();
virtual void updateObjectsFromWidgets();
private:
virtual void enableControls(bool enable) = 0;
QList <objectToWidget*> objOfInterest;
ExtensionSystem::PluginManager *pm;
UAVObjectManager *objManager;
smartSaveButton *smartsave;
bool dirty;
protected slots:
virtual void disableObjUpdates();
virtual void enableObjUpdates();
virtual void clearDirty();
virtual void widgetsContentsChanged();
virtual void populateWidgets();
virtual void refreshWidgetsValues();
protected:
virtual void enableControls(bool enable);
};

View File

@ -1,111 +0,0 @@
/**
******************************************************************************
*
* @file configtelemetrywidget.h
* @author E. Lafargue & The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup ConfigPlugin Config Plugin
* @{
* @brief The Configuration Gadget used to update settings in the firmware
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "configtelemetrywidget.h"
#include <QDebug>
#include <QStringList>
#include <QtGui/QWidget>
#include <QtGui/QTextEdit>
#include <QtGui/QVBoxLayout>
#include <QtGui/QPushButton>
ConfigTelemetryWidget::ConfigTelemetryWidget(QWidget *parent) : ConfigTaskWidget(parent)
{
m_telemetry = new Ui_TelemetryWidget();
m_telemetry->setupUi(this);
// Now connect the widget to the ManualControlCommand / Channel UAVObject
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
UAVObject *obj = objManager->getObject(QString("TelemetrySettings"));
UAVObjectField *field = obj->getField(QString("Speed"));
m_telemetry->telemetrySpeed->addItems(field->getOptions());
connect(m_telemetry->saveTelemetryToSD, SIGNAL(clicked()), this, SLOT(saveTelemetryUpdate()));
connect(m_telemetry->saveTelemetryToRAM, SIGNAL(clicked()), this, SLOT(sendTelemetryUpdate()));
connect(obj, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(refreshValues()));
enableControls(false);
refreshValues();
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(onAutopilotConnect()));
connect(parent, SIGNAL(autopilotDisconnected()),this, SLOT(onAutopilotDisconnect()));
}
ConfigTelemetryWidget::~ConfigTelemetryWidget()
{
// Do nothing
}
/*******************************
* Telemetry Settings
*****************************/
void ConfigTelemetryWidget::enableControls(bool enable)
{
m_telemetry->saveTelemetryToSD->setEnabled(enable);
//m_telemetry->saveTelemetryToRAM->setEnabled(enable);
}
/**
Request telemetry settings from the board
*/
void ConfigTelemetryWidget::refreshValues()
{
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("TelemetrySettings")));
Q_ASSERT(obj);
UAVObjectField *field = obj->getField(QString("Speed"));
m_telemetry->telemetrySpeed->setCurrentIndex(m_telemetry->telemetrySpeed->findText(field->getValue().toString()));
}
/**
Send telemetry settings to the board
*/
void ConfigTelemetryWidget::sendTelemetryUpdate()
{
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("TelemetrySettings")));
Q_ASSERT(obj);
UAVObjectField* field = obj->getField(QString("Speed"));
field->setValue(m_telemetry->telemetrySpeed->currentText());
obj->updated();
}
/**
Send telemetry settings to the board and request saving to SD card
*/
void ConfigTelemetryWidget::saveTelemetryUpdate()
{
// Send update so that the latest value is saved
sendTelemetryUpdate();
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("TelemetrySettings")));
Q_ASSERT(obj);
saveObjectToSD(obj);
}

View File

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>defaulthwsettings</class>
<widget class="QWidget" name="defaulthwsettings">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QTextBrowser" name="textBrowser">
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:600;&quot;&gt;Hardware Configuration&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt; font-weight:600;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Ubuntu'; font-size:11pt;&quot;&gt;This panel will be updated to provide the relevant controls to let you configure your hardware once telemetry is connected and running.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,44 @@
/**
******************************************************************************
*
* @file DefaultHwSettingsWidget.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup ConfigPlugin Config Plugin
* @{
* @brief Placeholder for attitude panel until board is connected.
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "defaulthwsettingswidget.h"
#include "ui_defaultattitude.h"
#include <QMutexLocker>
#include <QErrorMessage>
#include <QDebug>
DefaultHwSettingsWidget::DefaultHwSettingsWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui_defaulthwsettings)
{
ui->setupUi(this);
}
DefaultHwSettingsWidget::~DefaultHwSettingsWidget()
{
delete ui;
}

View File

@ -0,0 +1,55 @@
/**
******************************************************************************
*
* @file defaultccattitudewidget.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup ConfigPlugin Config Plugin
* @{
* @brief Placeholder for attitude settings widget until board connected.
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef DEFAULTHWSETTINGSt_H
#define DEFAULTHWSETTINGSt_H
#include "ui_defaulthwsettings.h"
#include "configtaskwidget.h"
#include "extensionsystem/pluginmanager.h"
#include "uavobjectmanager.h"
#include "uavobject.h"
#include <QtGui/QWidget>
#include <QTimer>
#include <QMutex>
class Ui_Widget;
class DefaultHwSettingsWidget : public QWidget
{
Q_OBJECT
public:
explicit DefaultHwSettingsWidget(QWidget *parent = 0);
~DefaultHwSettingsWidget();
private slots:
private:
Ui_defaulthwsettings *ui;
};
#endif // DEFAULTHWSETTINGSt_H

View File

@ -0,0 +1,2647 @@
<?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"
id="svg3578"
version="1.1"
inkscape:version="0.48.1 "
width="217.16675"
height="212.0625"
xml:space="preserve"
sodipodi:docname="deviceID-0401.svg"><metadata
id="metadata3584"><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="defs3582"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3596"><path
d="M 0,0 662,0 662,675 0,675 0,0 z"
id="path3598"
inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="738"
id="namedview3580"
showgrid="false"
inkscape:zoom="1.4596704"
inkscape:cx="74.195835"
inkscape:cy="113.87434"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer2"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Rendering#1"
style="display:inline"
transform="translate(-40.177007,-31.1875)"><g
id="device"
inkscape:label="#g15334"
transform="matrix(0,1,-1,0,285.97623,-11.53961)"><rect
rx="13.079585"
ry="10"
y="32.199471"
x="46.668976"
height="210.03767"
width="209.67079"
id="rect9798"
style="fill:#171717;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><g
transform="translate(-311.74173,-199.45)"
id="g4318"
style="display:inline"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect4320"
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4322"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect4324"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
transform="matrix(0,-1,1,0,-158.96398,620.23853)"
id="g4406"
style="display:inline"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect4408"
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4410"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect4412"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
style="display:inline"
id="g10505"
transform="translate(-238.1085,-287.13166)"><rect
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10507"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect10509"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10511"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
transform="translate(-297.20885,-185.40155)"
id="g10513"
style="display:inline"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect10515"
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10517"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect10519"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
id="g4225"
style="display:inline"
transform="translate(-324.12933,-188.57649)"><rect
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4219"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect4221"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4223"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
transform="translate(-229.42344,-179.37234)"
style="display:inline"
id="g10548"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect10550"
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10552"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect10554"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
id="g10556"
style="display:inline"
transform="translate(-230.15008,-167.50383)"><rect
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10558"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect10560"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10562"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
transform="translate(-235.23659,-253.7322)"
style="display:inline"
id="g10564"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect10566"
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10568"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect10570"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
id="g10572"
style="display:inline"
transform="translate(-214.16393,-327.60763)"><rect
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10574"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect10576"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10578"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
id="g4414"
transform="translate(-365.77251,-288.34483)"
style="display:inline"><rect
style="fill:#0052ff;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4416"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect4418"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4420"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
id="g10667"
style="display:inline"
transform="translate(-466.1013,-470.16522)"><rect
style="fill:#ff7900;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4432"
width="6.5178571"
height="5.0892859"
x="522.11609"
y="559.755" /><rect
y="559.755"
x="528.58929"
height="5.0892859"
width="3.5714285"
id="rect4434"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4436"
width="3.5714285"
height="5.0892859"
x="518.58929"
y="559.755" /></g><g
transform="matrix(0,1,-1,0,476.81179,-372.57224)"
id="g4278"
style="display:inline"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect4280"
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4282"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect4284"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
style="display:inline"
id="g10761"
transform="matrix(0,1,-1,0,476.81179,-340.57224)"><rect
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10763"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect10765"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10767"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
transform="matrix(0,1,-1,0,531.29622,-332.15009)"
id="g10769"
style="display:inline"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect10771"
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10773"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect10775"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
style="display:inline"
id="g10777"
transform="matrix(0,1,-1,0,453.06093,-235.02206)"><rect
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10779"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect10781"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10783"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
transform="matrix(0,1,-1,0,453.06093,-213.9494)"
id="g10785"
style="display:inline"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect10787"
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10789"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect10791"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
style="display:inline"
id="g10793"
transform="matrix(0,1,-1,0,497.6284,-222.66912)"><rect
style="fill:#bc781e;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10795"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect10797"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10799"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
style="display:inline"
id="g10801"
transform="matrix(0,-1,1,0,-252.45879,579.30427)"><rect
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10803"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect10805"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10807"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
transform="matrix(0,-1,1,0,-263.11623,579.54648)"
id="g10809"
style="display:inline"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect10811"
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10813"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect10815"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
style="display:inline"
id="g10817"
transform="matrix(0,-1,1,0,-273.53145,580.27312)"><rect
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10819"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect10821"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10823"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
transform="matrix(0,-1,1,0,-272.56259,546.12087)"
id="g10825"
style="display:inline"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect10827"
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10829"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect10831"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
style="display:inline"
id="g10833"
transform="matrix(0,-1,1,0,-257.06086,546.36308)"><rect
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10835"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect10837"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect10839"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
id="g10887"><path
sodipodi:type="arc"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path4550"
sodipodi:cx="225.89285"
sodipodi:cy="542.54077"
sodipodi:rx="5.1785712"
sodipodi:ry="5.1785712"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
transform="translate(20.6651,-466.48541)" /><path
sodipodi:type="arc"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path4554"
sodipodi:cx="225.89285"
sodipodi:cy="542.54077"
sodipodi:rx="5.1785712"
sodipodi:ry="5.1785712"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
transform="translate(4.6651,-466.48541)" /><rect
y="71.519623"
x="210.81711"
height="8.5714283"
width="9.6428576"
id="rect4556"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /></g><g
transform="translate(0,14)"
id="g10892"><path
transform="translate(20.6651,-466.48541)"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
sodipodi:ry="5.1785712"
sodipodi:rx="5.1785712"
sodipodi:cy="542.54077"
sodipodi:cx="225.89285"
id="path10894"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" /><path
transform="translate(4.6651,-466.48541)"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
sodipodi:ry="5.1785712"
sodipodi:rx="5.1785712"
sodipodi:cy="542.54077"
sodipodi:cx="225.89285"
id="path10896"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" /><rect
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect10898"
width="9.6428576"
height="8.5714283"
x="210.81711"
y="71.519623" /></g><g
id="g10900"
transform="translate(0,30)"><path
sodipodi:type="arc"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path10902"
sodipodi:cx="225.89285"
sodipodi:cy="542.54077"
sodipodi:rx="5.1785712"
sodipodi:ry="5.1785712"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
transform="translate(20.6651,-466.48541)" /><path
sodipodi:type="arc"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path10904"
sodipodi:cx="225.89285"
sodipodi:cy="542.54077"
sodipodi:rx="5.1785712"
sodipodi:ry="5.1785712"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
transform="translate(4.6651,-466.48541)" /><rect
y="71.519623"
x="210.81711"
height="8.5714283"
width="9.6428576"
id="rect10906"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /></g><g
transform="translate(0,46)"
id="g10908"><path
transform="translate(20.6651,-466.48541)"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
sodipodi:ry="5.1785712"
sodipodi:rx="5.1785712"
sodipodi:cy="542.54077"
sodipodi:cx="225.89285"
id="path10910"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" /><path
transform="translate(4.6651,-466.48541)"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
sodipodi:ry="5.1785712"
sodipodi:rx="5.1785712"
sodipodi:cy="542.54077"
sodipodi:cx="225.89285"
id="path10912"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" /><rect
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect10914"
width="9.6428576"
height="8.5714283"
x="210.81711"
y="71.519623" /></g><g
id="g10916"
transform="translate(0,62)"><path
sodipodi:type="arc"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path10918"
sodipodi:cx="225.89285"
sodipodi:cy="542.54077"
sodipodi:rx="5.1785712"
sodipodi:ry="5.1785712"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
transform="translate(20.6651,-466.48541)" /><path
sodipodi:type="arc"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path10920"
sodipodi:cx="225.89285"
sodipodi:cy="542.54077"
sodipodi:rx="5.1785712"
sodipodi:ry="5.1785712"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
transform="translate(4.6651,-466.48541)" /><rect
y="71.519623"
x="210.81711"
height="8.5714283"
width="9.6428576"
id="rect10922"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /></g><g
transform="translate(0,76)"
id="g10924"><path
transform="translate(20.6651,-466.48541)"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
sodipodi:ry="5.1785712"
sodipodi:rx="5.1785712"
sodipodi:cy="542.54077"
sodipodi:cx="225.89285"
id="path10926"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" /><path
transform="translate(4.6651,-466.48541)"
d="m 231.07142,542.54077 c 0,2.86005 -2.31852,5.17857 -5.17857,5.17857 -2.86004,0 -5.17857,-2.31852 -5.17857,-5.17857 0,-2.86004 2.31853,-5.17857 5.17857,-5.17857 2.86005,0 5.17857,2.31853 5.17857,5.17857 z"
sodipodi:ry="5.1785712"
sodipodi:rx="5.1785712"
sodipodi:cy="542.54077"
sodipodi:cx="225.89285"
id="path10928"
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" /><rect
style="fill:none;stroke:#f2edda;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect10930"
width="9.6428576"
height="8.5714283"
x="210.81711"
y="71.519623" /></g><g
style="display:inline"
transform="matrix(0,1.2406633,-1.7870765,0,753.06413,-443.20477)"
id="g4788"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect4790"
style="fill:#a9814d;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4792"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect4794"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
id="g12054"
transform="matrix(0,1.2406633,-1.7870765,0,753.06413,-475.20477)"
style="display:inline"><rect
style="fill:#a9814d;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect12056"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect12058"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect12060"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
style="display:inline"
transform="matrix(1.2406633,0,0,1.7870765,-460.86273,-457.63731)"
id="g12062"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect12064"
style="fill:#a9814d;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect12066"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect12068"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
id="g12070"
transform="matrix(1.2406633,0,0,1.7870765,-426.86273,-457.63731)"
style="display:inline"><rect
style="fill:#a9814d;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect12072"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect12074"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect12076"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
id="g12796"><g
transform="translate(-0.3633218,-0.12110727)"
id="g12766"><path
d="m 133.77917,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5376"
inkscape:connector-curvature="0" /><path
d="m 130.94256,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5378"
inkscape:connector-curvature="0" /><path
d="m 145.57351,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5386"
inkscape:connector-curvature="0" /><path
d="m 142.58758,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5388"
inkscape:connector-curvature="0" /><path
d="m 139.75097,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5390"
inkscape:connector-curvature="0" /><path
d="m 130.94256,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5454"
inkscape:connector-curvature="0" /><path
d="m 133.77917,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5456"
inkscape:connector-curvature="0" /><path
d="m 139.75097,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5466"
inkscape:connector-curvature="0" /><path
d="m 142.58758,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5468"
inkscape:connector-curvature="0" /><path
d="m 145.57351,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5470"
inkscape:connector-curvature="0" /><path
d="m 124.82147,57.810942 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5612"
inkscape:connector-curvature="0" /><path
d="m 124.82147,60.64656 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5614"
inkscape:connector-curvature="0" /><path
d="m 124.82147,63.63141 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5616"
inkscape:connector-curvature="0" /><path
d="m 149.0073,63.63141 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5618"
inkscape:connector-curvature="0" /><path
d="m 149.0073,60.64656 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5620"
inkscape:connector-curvature="0" /><path
d="m 149.0073,57.810942 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5622"
inkscape:connector-curvature="0" /><path
d="m 124.82147,46.020858 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5624"
inkscape:connector-curvature="0" /><path
d="m 124.82147,49.005667 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5626"
inkscape:connector-curvature="0" /><path
d="m 124.82147,51.841284 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5628"
inkscape:connector-curvature="0" /><path
d="m 149.0073,51.841284 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5630"
inkscape:connector-curvature="0" /><path
d="m 149.0073,49.005667 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5632"
inkscape:connector-curvature="0" /><path
d="m 149.0073,46.020858 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5634"
inkscape:connector-curvature="0" /><path
d="m 136.76509,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5636"
inkscape:connector-curvature="0" /><path
d="m 124.82147,54.826134 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5726"
inkscape:connector-curvature="0" /><path
d="m 136.76509,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5728"
inkscape:connector-curvature="0" /><path
d="m 149.0073,54.826134 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5730"
inkscape:connector-curvature="0" /><path
d="m 124.82147,43.036008 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5738"
inkscape:connector-curvature="0" /><path
d="m 149.0073,43.036008 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path5740"
inkscape:connector-curvature="0" /></g><rect
style="fill:#6a6a6a;fill-opacity:1;stroke:#000000;stroke-width:0.69999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4974"
width="24.34742"
height="31.192205"
x="125.66183"
y="37.711323" /></g><g
id="g12828"><g
id="g12830"
transform="translate(-0.3633218,-0.12110727)"><path
inkscape:connector-curvature="0"
id="path12832"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 133.77917,39.752694 0,-2.686385" /><path
inkscape:connector-curvature="0"
id="path12834"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 130.94256,39.752694 0,-2.686385" /><path
inkscape:connector-curvature="0"
id="path12836"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 145.57351,39.752694 0,-2.686385" /><path
inkscape:connector-curvature="0"
id="path12838"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 142.58758,39.752694 0,-2.686385" /><path
inkscape:connector-curvature="0"
id="path12840"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 139.75097,39.752694 0,-2.686385" /><path
inkscape:connector-curvature="0"
id="path12842"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 130.94256,69.7503 0,-2.686344" /><path
inkscape:connector-curvature="0"
id="path12844"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 133.77917,69.7503 0,-2.686344" /><path
inkscape:connector-curvature="0"
id="path12846"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 139.75097,69.7503 0,-2.686344" /><path
inkscape:connector-curvature="0"
id="path12848"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 142.58758,69.7503 0,-2.686344" /><path
inkscape:connector-curvature="0"
id="path12850"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 145.57351,69.7503 0,-2.686344" /><path
inkscape:connector-curvature="0"
id="path12852"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 124.82147,57.810942 2.6873,0" /><path
inkscape:connector-curvature="0"
id="path12854"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 124.82147,60.64656 2.6873,0" /><path
inkscape:connector-curvature="0"
id="path12856"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 124.82147,63.63141 2.6873,0" /><path
inkscape:connector-curvature="0"
id="path12858"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 149.0073,63.63141 2.53802,0" /><path
inkscape:connector-curvature="0"
id="path12860"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 149.0073,60.64656 2.53802,0" /><path
inkscape:connector-curvature="0"
id="path12862"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 149.0073,57.810942 2.53802,0" /><path
inkscape:connector-curvature="0"
id="path12864"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 124.82147,46.020858 2.6873,0" /><path
inkscape:connector-curvature="0"
id="path12866"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 124.82147,49.005667 2.6873,0" /><path
inkscape:connector-curvature="0"
id="path12868"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 124.82147,51.841284 2.6873,0" /><path
inkscape:connector-curvature="0"
id="path12870"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 149.0073,51.841284 2.53802,0" /><path
inkscape:connector-curvature="0"
id="path12872"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 149.0073,49.005667 2.53802,0" /><path
inkscape:connector-curvature="0"
id="path12874"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 149.0073,46.020858 2.53802,0" /><path
inkscape:connector-curvature="0"
id="path12876"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 136.76509,39.752694 0,-2.686385" /><path
inkscape:connector-curvature="0"
id="path12878"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 124.82147,54.826134 2.6873,0" /><path
inkscape:connector-curvature="0"
id="path12880"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 136.76509,69.7503 0,-2.686344" /><path
inkscape:connector-curvature="0"
id="path12882"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 149.0073,54.826134 2.53802,0" /><path
inkscape:connector-curvature="0"
id="path12884"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 124.82147,43.036008 2.6873,0" /><path
inkscape:connector-curvature="0"
id="path12886"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 149.0073,43.036008 2.53802,0" /></g><rect
y="37.711323"
x="125.66183"
height="31.192205"
width="24.34742"
id="rect12888"
style="fill:#6a6a6a;fill-opacity:1;stroke:#000000;stroke-width:0.69999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /></g><g
transform="translate(0.68508616,38.685086)"
id="g12890"><g
transform="translate(-0.3633218,-0.12110727)"
id="g12892"><path
d="m 133.77917,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12894"
inkscape:connector-curvature="0" /><path
d="m 130.94256,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12896"
inkscape:connector-curvature="0" /><path
d="m 145.57351,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12898"
inkscape:connector-curvature="0" /><path
d="m 142.58758,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12900"
inkscape:connector-curvature="0" /><path
d="m 139.75097,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12902"
inkscape:connector-curvature="0" /><path
d="m 130.94256,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12904"
inkscape:connector-curvature="0" /><path
d="m 133.77917,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12906"
inkscape:connector-curvature="0" /><path
d="m 139.75097,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12908"
inkscape:connector-curvature="0" /><path
d="m 142.58758,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12910"
inkscape:connector-curvature="0" /><path
d="m 145.57351,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12912"
inkscape:connector-curvature="0" /><path
d="m 124.82147,57.810942 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12914"
inkscape:connector-curvature="0" /><path
d="m 124.82147,60.64656 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12916"
inkscape:connector-curvature="0" /><path
d="m 124.82147,63.63141 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12918"
inkscape:connector-curvature="0" /><path
d="m 149.0073,63.63141 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12920"
inkscape:connector-curvature="0" /><path
d="m 149.0073,60.64656 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12922"
inkscape:connector-curvature="0" /><path
d="m 149.0073,57.810942 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12924"
inkscape:connector-curvature="0" /><path
d="m 124.82147,46.020858 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12926"
inkscape:connector-curvature="0" /><path
d="m 124.82147,49.005667 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12928"
inkscape:connector-curvature="0" /><path
d="m 124.82147,51.841284 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12930"
inkscape:connector-curvature="0" /><path
d="m 149.0073,51.841284 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12932"
inkscape:connector-curvature="0" /><path
d="m 149.0073,49.005667 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12934"
inkscape:connector-curvature="0" /><path
d="m 149.0073,46.020858 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12936"
inkscape:connector-curvature="0" /><path
d="m 136.76509,39.752694 0,-2.686385"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12938"
inkscape:connector-curvature="0" /><path
d="m 124.82147,54.826134 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12940"
inkscape:connector-curvature="0" /><path
d="m 136.76509,69.7503 0,-2.686344"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12942"
inkscape:connector-curvature="0" /><path
d="m 149.0073,54.826134 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12944"
inkscape:connector-curvature="0" /><path
d="m 124.82147,43.036008 2.6873,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12946"
inkscape:connector-curvature="0" /><path
d="m 149.0073,43.036008 2.53802,0"
style="fill:none;stroke:#e9dcdc;stroke-width:1.49294174;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path12948"
inkscape:connector-curvature="0" /></g><rect
style="fill:#6a6a6a;fill-opacity:1;stroke:#000000;stroke-width:0.69999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect12950"
width="24.34742"
height="31.192205"
x="125.66183"
y="37.711323" /></g><g
id="g12952"
style="display:inline"
transform="matrix(0.55313316,0,0,0.55313316,202.151,-66.0335)"><rect
style="fill:#6a6a6a;fill-opacity:1;stroke:#000000;stroke-width:3.61576581;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3773"
width="76.428574"
height="76.785713"
x="-104.28571"
y="358.43362"
ry="2.5" /><g
id="g3875"
transform="translate(-520,-37.142857)"><g
transform="matrix(1.4970318,0,0,1,-211.28069,0.21205357)"
id="g3781"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3777"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3779"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3785"
transform="matrix(1.4970318,0,0,1,-207.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3787"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3789"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-203.28069,0.21205357)"
id="g3791"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3793"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3795"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3797"
transform="matrix(1.4970318,0,0,1,-199.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3799"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3801"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-195.28069,0.21205357)"
id="g3803"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3805"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3807"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3809"
transform="matrix(1.4970318,0,0,1,-191.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3811"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3813"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-187.28069,0.21205357)"
id="g3815"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3817"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3819"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3821"
transform="matrix(1.4970318,0,0,1,-183.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3823"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3825"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-179.28069,0.21205357)"
id="g3827"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3829"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3831"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3833"
transform="matrix(1.4970318,0,0,1,-175.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3835"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3837"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-171.28069,0.21205357)"
id="g3839"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3841"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3843"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3845"
transform="matrix(1.4970318,0,0,1,-167.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3847"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3849"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-163.28069,0.21205357)"
id="g3851"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3853"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3855"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3857"
transform="matrix(1.4970318,0,0,1,-159.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3859"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3861"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-155.28069,0.21205357)"
id="g3863"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3865"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3867"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3869"
transform="matrix(1.4970318,0,0,1,-151.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3871"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3873"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g></g><g
id="g3925"
transform="matrix(0,1,-1,0,367.93406,-54.993437)"><g
id="g3927"
transform="matrix(1.4970318,0,0,1,-211.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3929"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3931"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-207.28069,0.21205357)"
id="g3933"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3935"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3937"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3939"
transform="matrix(1.4970318,0,0,1,-203.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3941"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3943"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-199.28069,0.21205357)"
id="g3945"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3947"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3949"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3951"
transform="matrix(1.4970318,0,0,1,-195.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3953"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3955"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-191.28069,0.21205357)"
id="g3957"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3959"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3961"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3963"
transform="matrix(1.4970318,0,0,1,-187.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3965"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3967"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-183.28069,0.21205357)"
id="g3969"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3971"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3973"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3975"
transform="matrix(1.4970318,0,0,1,-179.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3977"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3979"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-175.28069,0.21205357)"
id="g3981"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3983"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3985"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3987"
transform="matrix(1.4970318,0,0,1,-171.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path3989"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3991"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-167.28069,0.21205357)"
id="g3993"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path3995"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path3997"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g3999"
transform="matrix(1.4970318,0,0,1,-163.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4001"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4003"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-159.28069,0.21205357)"
id="g4005"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4007"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4009"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4011"
transform="matrix(1.4970318,0,0,1,-155.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4013"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4015"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-151.28069,0.21205357)"
id="g4017"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4019"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4021"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g></g><g
transform="matrix(0,1,1,0,-500.02315,-54.993437)"
id="g4023"><g
transform="matrix(1.4970318,0,0,1,-211.28069,0.21205357)"
id="g4025"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4027"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4029"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4031"
transform="matrix(1.4970318,0,0,1,-207.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4033"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4035"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-203.28069,0.21205357)"
id="g4037"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4039"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4041"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4043"
transform="matrix(1.4970318,0,0,1,-199.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4045"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4047"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-195.28069,0.21205357)"
id="g4049"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4051"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4053"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4055"
transform="matrix(1.4970318,0,0,1,-191.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4057"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4059"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-187.28069,0.21205357)"
id="g4061"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4063"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4065"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4067"
transform="matrix(1.4970318,0,0,1,-183.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4069"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4071"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-179.28069,0.21205357)"
id="g4073"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4075"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4077"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4079"
transform="matrix(1.4970318,0,0,1,-175.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4081"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4083"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-171.28069,0.21205357)"
id="g4085"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4087"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4089"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4091"
transform="matrix(1.4970318,0,0,1,-167.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4093"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4095"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-163.28069,0.21205357)"
id="g4097"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4099"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4101"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4103"
transform="matrix(1.4970318,0,0,1,-159.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4105"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4107"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-155.28069,0.21205357)"
id="g4109"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4111"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4113"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4115"
transform="matrix(1.4970318,0,0,1,-151.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4117"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4119"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g></g><g
id="g4121"
transform="matrix(1,0,0,-1,-520,830.07704)"><g
id="g4123"
transform="matrix(1.4970318,0,0,1,-211.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4125"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4127"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-207.28069,0.21205357)"
id="g4129"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4131"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4133"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4135"
transform="matrix(1.4970318,0,0,1,-203.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4137"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4139"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-199.28069,0.21205357)"
id="g4141"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4143"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4145"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4147"
transform="matrix(1.4970318,0,0,1,-195.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4149"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4151"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-191.28069,0.21205357)"
id="g4153"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4155"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4157"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4159"
transform="matrix(1.4970318,0,0,1,-187.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4161"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4163"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-183.28069,0.21205357)"
id="g4165"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4167"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4169"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4171"
transform="matrix(1.4970318,0,0,1,-179.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4173"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4175"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-175.28069,0.21205357)"
id="g4177"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4179"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4181"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4183"
transform="matrix(1.4970318,0,0,1,-171.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4185"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4187"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-167.28069,0.21205357)"
id="g4189"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4191"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4193"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4195"
transform="matrix(1.4970318,0,0,1,-163.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4197"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4199"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-159.28069,0.21205357)"
id="g4201"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4203"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4205"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g><g
id="g4207"
transform="matrix(1.4970318,0,0,1,-155.28069,0.21205357)"><path
inkscape:connector-curvature="0"
id="path4209"
d="m 423.9087,394.32647 0,-7.85715"
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /><path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4211"
d="m 423.84066,392.00721 0.13607,0"
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" /></g><g
transform="matrix(1.4970318,0,0,1,-151.28069,0.21205357)"
id="g4213"><path
style="fill:none;stroke:#e9dcdc;stroke-width:1.80788291px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.9087,394.32647 0,-7.85715"
id="path4215"
inkscape:connector-curvature="0" /><path
style="fill:none;stroke:#8c8989;stroke-width:1.56546891px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 423.84066,392.00721 0.13607,0"
id="path4217"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" /></g></g></g><g
style="display:inline"
id="g4920"
transform="matrix(0.41419929,0,0,0.41419929,-10.368172,-50.871127)"><g
transform="matrix(0,1.4970318,-1,0,849.26635,-33.0226)"
id="g4871"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect4867"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect4869"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
id="g4875"
transform="matrix(0,1.4970318,-1,0,849.26635,-23.0226)"
style="display:inline"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect4877"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect4879"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(0,1.4970318,-1,0,849.26635,-13.0226)"
id="g4881"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect4883"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect4885"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
id="g4887"
transform="matrix(0,1.4970318,1,0,55.91598,-13.0226)"
style="display:inline"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect4889"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect4891"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(0,1.4970318,1,0,55.91598,-33.0226)"
id="g4899"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect4901"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect4903"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><rect
ry="1.5"
y="590.15265"
x="443.12988"
height="31.819805"
width="18.687822"
id="rect4841"
style="fill:#6a6a6a;fill-opacity:1;stroke:#000000;stroke-width:2.41429687;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
transform="matrix(0,0.41419929,-0.41419929,0,462.12545,-133.30339)"
id="g13877"
style="display:inline"><g
style="display:inline"
id="g13879"
transform="matrix(0,1.4970318,-1,0,849.26635,-33.0226)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect13881"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect13883"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
style="display:inline"
transform="matrix(0,1.4970318,-1,0,849.26635,-23.0226)"
id="g13885"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect13887"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect13889"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
id="g13891"
transform="matrix(0,1.4970318,-1,0,849.26635,-13.0226)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect13893"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect13895"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
style="display:inline"
transform="matrix(0,1.4970318,1,0,55.91598,-13.0226)"
id="g13897"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect13899"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect13901"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
id="g13903"
transform="matrix(0,1.4970318,1,0,55.91598,-33.0226)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect13905"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect13907"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><rect
style="fill:#6a6a6a;fill-opacity:1;stroke:#000000;stroke-width:2.41429687;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect13909"
width="18.687822"
height="31.819805"
x="443.12988"
y="590.15265"
ry="1.5" /></g><g
id="g13760"
style="display:inline"
transform="matrix(0,0.61819183,-0.61819183,0,444.94676,-97.125819)"><rect
transform="translate(188.57143,331.57648)"
y="269.42856"
x="140.71428"
height="52.142857"
width="89.285713"
id="rect5020"
style="fill:#fffcfc;fill-opacity:1;stroke:#828282;stroke-width:3.23524165;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /><g
transform="matrix(-1.4970318,0,0,1,971.39158,213.03078)"
id="g4964-3"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect4966-2"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect4968-1"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
id="g5046"
transform="matrix(-1.4970318,0,0,1,981.39158,213.03078)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect5048"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect5050"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(-1.4970318,0,0,1,991.39158,213.03078)"
id="g5052"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect5054"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect5056"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
id="g5058"
transform="matrix(-1.4970318,0,0,1,1001.3916,213.03078)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect5060"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect5062"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(-1.4970318,0,0,1,1011.3916,213.03078)"
id="g5064"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect5066"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect5068"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
id="g5070"
transform="matrix(-1.4970318,0,0,1,1021.3916,213.03078)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect5072"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect5074"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
style="display:inline"
id="g13998"
transform="matrix(-1.4970318,0,0,1,1031.0972,213.03078)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect14000"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect14002"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(-1.4970318,0,0,1,1040.8028,213.03078)"
id="g14004"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14006"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14008"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g></g><g
style="display:inline"
id="g4920-2"
transform="matrix(-0.48222043,0,0,-0.59728256,285.82656,546.58597)"><g
transform="matrix(0,1.4970318,-1,0,849.26635,-33.0226)"
id="g4871-7"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect4867-0"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect4869-4"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
id="g4875-1"
transform="matrix(0,1.4970318,-1,0,849.26635,-23.0226)"
style="display:inline"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect4877-3"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect4879-4"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(0,1.4970318,-1,0,849.26635,-13.0226)"
id="g4881-9"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect4883-6"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect4885-2"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
id="g4887-8"
transform="matrix(0,1.4970318,1,0,55.91598,-13.0226)"
style="display:inline"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect4889-3"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect4891-3"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(0,1.4970318,1,0,55.91598,-33.0226)"
id="g4899-7"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect4901-7"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect4903-8"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><rect
ry="1.5"
y="590.15265"
x="443.12988"
height="31.819805"
width="18.687822"
id="rect4841-1"
style="fill:#6a6a6a;fill-opacity:1;stroke:#000000;stroke-width:1.86331928;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
style="display:inline"
id="g14076"
transform="matrix(0,-1,1,0,-150.96398,652.23853)"><rect
y="365.75504"
x="426.58929"
height="5.0892859"
width="3.5714285"
id="rect14080"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect14082"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
transform="matrix(0.61819183,0,0,0.48347584,-108.7519,-76.23362)"
style="display:inline"
id="g14084"><rect
style="fill:#fffcfc;fill-opacity:1;stroke:#828282;stroke-width:3.65831399;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect14086"
width="53.268898"
height="52.142857"
x="329.28571"
y="601.00507" /><g
style="display:inline"
id="g14088"
transform="matrix(-1.4970318,0,0,1,971.39158,213.03078)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect14090"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect14092"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(-1.4970318,0,0,1,981.39158,213.03078)"
id="g14094"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14096"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14098"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
id="g14100"
transform="matrix(-1.4970318,0,0,1,991.39158,213.03078)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect14102"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect14104"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(-1.4970318,0,0,1,1001.3916,213.03078)"
id="g14106"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14108"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14110"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g></g><g
id="g14136"
style="display:inline"
transform="matrix(0.61819183,0,0,0.48347584,-30.7519,-76.23362)"><rect
y="601.00507"
x="329.28571"
height="52.142857"
width="53.268898"
id="rect14138"
style="fill:#fffcfc;fill-opacity:1;stroke:#828282;stroke-width:3.65831399;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /><g
transform="matrix(-1.4970318,0,0,1,971.39158,213.03078)"
id="g14140"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14142"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14144"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
id="g14146"
transform="matrix(-1.4970318,0,0,1,981.39158,213.03078)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect14148"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect14150"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(-1.4970318,0,0,1,991.39158,213.03078)"
id="g14152"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14154"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14156"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
id="g14158"
transform="matrix(-1.4970318,0,0,1,1001.3916,213.03078)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect14160"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect14162"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g></g><g
style="display:inline"
transform="matrix(2.4017041,0,0,3.9408912,-788.51882,-1271.7817)"
id="g14164"><rect
y="365.75504"
x="422.11606"
height="5.0892859"
width="6.5178571"
id="rect14166"
style="fill:#00440d;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect14168"
width="3.5714285"
height="5.0892859"
x="428.58929"
y="365.75504" /><rect
y="365.75504"
x="418.58929"
height="5.0892859"
width="3.5714285"
id="rect14170"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><rect
style="fill:#6a6a6a;fill-opacity:1;stroke:#000000;stroke-width:0.69999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect14172"
width="18.524187"
height="28.45186"
x="174.85481"
y="44.491241" /><g
style="display:inline"
id="g14192"
transform="translate(-342.57061,-300.15766)"><rect
style="fill:#312d29;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect14194"
width="6.5178571"
height="5.0892859"
x="422.11606"
y="365.75504" /><rect
y="365.75504"
x="428.58929"
height="5.0892859"
width="3.5714285"
id="rect14196"
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><rect
style="fill:#d3d0ce;fill-opacity:1;stroke:#8c8989;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect14198"
width="3.5714285"
height="5.0892859"
x="418.58929"
y="365.75504" /></g><g
style="display:inline"
id="g14200"
transform="matrix(0,0.63857044,-0.6183842,0,527.83252,-72.180508)"><g
transform="matrix(0,1.4970318,-1,0,852.39835,-33.0226)"
id="g14202"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14204"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14206"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
id="g14208"
transform="matrix(0,1.4970318,-1,0,852.39835,-23.0226)"
style="display:inline"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect14210"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect14212"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(0,1.4970318,-1,0,852.39835,-13.0226)"
id="g14214"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14216"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14218"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
id="g14220"
transform="matrix(0,1.4970318,1,0,46.519992,-13.0226)"
style="display:inline"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect14222"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect14224"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><g
transform="matrix(0,1.4970318,1,0,46.519992,-33.0226)"
id="g14226"
style="display:inline"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14228"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14230"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
transform="matrix(0,1.4970318,1,0,46.519992,-22.679788)"
id="g14240"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14242"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14244"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
transform="matrix(0,1.4970318,1,0,46.519992,-3.365413)"
id="g14246"><rect
style="fill:#e9dcdc;fill-opacity:1;stroke:none"
id="rect14248"
width="10.985409"
height="4.0486217"
x="-386.60983"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-383.45309"
height="4.0486217"
width="2.5253813"
id="rect14250"
style="fill:#8c8989;fill-opacity:1;stroke:none" /></g><g
style="display:inline"
id="g14252"
transform="matrix(0,1.4970318,-1,0,852.39835,-3.365413)"><rect
transform="matrix(0,-1,1,0,0,0)"
y="417.41403"
x="-386.60983"
height="4.0486217"
width="10.985409"
id="rect14254"
style="fill:#e9dcdc;fill-opacity:1;stroke:none" /><rect
style="fill:#8c8989;fill-opacity:1;stroke:none"
id="rect14256"
width="2.5253813"
height="4.0486217"
x="-383.45309"
y="417.41403"
transform="matrix(0,-1,1,0,0,0)" /></g><rect
ry="1.9272836"
y="590.15265"
x="432.12994"
height="40.883862"
width="34.998043"
id="rect14232"
style="fill:#6a6a6a;fill-opacity:1;stroke:#000000;stroke-width:1.59135258;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g></g></g></svg>

After

Width:  |  Height:  |  Size: 139 KiB

View File

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- made by Andy, It's public domain, yeah why not-->
<svg 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="svg4895">
<defs>
<linearGradient id="WhiteTransparent">
<stop style="stop-color:white;stop-opacity:1" offset="0"/>
<stop style="stop-color:white;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="BlackTransparent">
<stop style="stop-color:black;stop-opacity:1" offset="0"/>
<stop style="stop-color:black;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient xlink:href="#WhiteTransparent" id="lg1999" x1="637.03" y1="69.99" x2="638.3" y2="118.3" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1,0.1,-0.22,0.2,75.6,-33.53)"/>
<linearGradient xlink:href="#WhiteTransparent" id="lg02" x1="512.7" y1="254.36" x2="615.59" y2="254.83" gradientUnits="userSpaceOnUse" gradientTransform="matrix(8.07e-2,7.75e-2,-0.35,0.36,77.14,-45.89)"/>
<linearGradient xlink:href="#BlackTransparent" id="lg05" x1="543.1" y1="286.56" x2="419.88" y2="286.56" gradientUnits="userSpaceOnUse" gradientTransform="matrix(9.98e-2,9.98e-2,-0.28,0.28,78.84,-44.8)" spreadMethod="pad"/>
<linearGradient xlink:href="#WhiteTransparent" id="lg09" x1="258.96" y1="62.74" x2="258.96" y2="-1.72" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.33,0.33,-9.44e-2,9.44e-2,9.03,-48.1)"/>
<linearGradient xlink:href="#WhiteTransparent" id="lg12" x1="146.15" y1="288.57" x2="146.15" y2="368.27" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.3,0.3,-9e-2,9e-2,78.84,-44.8)"/>
<linearGradient xlink:href="#WhiteTransparent" id="lg16" x1="577.03" y1="124" x2="626.1" y2="124" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.75e-2,7.75e-2,-0.36,0.36,78.84,-44.8)" spreadMethod="pad"/>
<linearGradient xlink:href="#BlackTransparent" id="lg19" x1="75.1" y1="189.14" x2="71.77" y2="185.8" gradientTransform="matrix(1.05,0,0,1.05,0.13,-140.54)"/>
<linearGradient xlink:href="#WhiteTransparent" id="lg51" x1="646.24" y1="-252.6" x2="607.66" y2="-186.26" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2,0,0,0.2,-80.94,88.3)"/>
<linearGradient xlink:href="#WhiteTransparent" id="lg55" x1="550.96" y1="-137.5" x2="655.42" y2="-241.2" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.26,0,0,0.26,-106.57,101.57)"/>
<linearGradient xlink:href="#BlackTransparent" id="lgdg" x1="73.88" y1="66.2" x2="84.3" y2="86.68" gradientTransform="translate(-0.30267,-3.20138)" gradientUnits="userSpaceOnUse"/>
<clipPath clipPathUnits="userSpaceOnUse" id="clipoutline1">
<path id="outline1" d="M 22.42,17.2 L 35.38,30.15 L 32.88,38.93 L 24.1,41.43 L 11.14,28.47 L 5.28,34.33 L 20.17,55.79 L 37.73,52.45 L 99.36,118.07 C 108.8,127.58 121.53,113.32 112.7,105.2 L 46.85,42.92 L 50.86,25.16 L 28.72,10.89 L 22.42,17.2 z M 103.48,109.17 C 105.16,107.49 107.88,107.49 109.56,109.17 C 111.24,110.85 111.24,113.57 109.56,115.25 C 107.88,116.92 105.16,116.92 103.48,115.25 C 101.8,113.57 101.8,110.85 103.48,109.17 z"/>
</clipPath>
<clipPath clipPathUnits="userSpaceOnUse" id="clipoutline2">
<path id="outline2" d="M 55.8,12 L 56.56,12.16 C 65.4,9.22 85.24,20.8 80.82,31.12 C 79.7,32.74 79.89,35.62 81.24,37.43 L 56.43,62.25 C 55.04,60.86 51.95,60.89 50.53,62.25 L 9.5,101.63 C 5.76,105.22 8.7,108.27 10.28,109.88 L 17.64,117.24 C 19.25,118.84 23.5,121 26.52,117.8 L 65.24,76.99 C 66.59,75.57 66.6,72.52 65.24,71.12 C 65.24,71.12 65.25,71.1 65.24,71.1 L 90.15,46.2 C 92.78,48.57 95.263827,48.774854 97.62,48.13 C 102.17057,46.884568 104.70725,51.336643 107.43,54.59 L 106.2,55.8 C 104.38,57.64 104.55,60.74 106.59,62.78 C 108.63,64.82 111.74,64.99 113.56,63.17 L 121.7,55.04 C 123.52,53.2 123.35,50.1 121.3,48.07 C 119.46,46.22 116.79,45.98 114.93,47.3 C 109.35,41.04 112.28,40.1 104.92,31.95 L 91.13,17.86 C 81.2,8.12 68.3,8.13 55.8,12 z"/>
</clipPath>
<!-- -->
<filter id="ShadowBlur" filterUnits="userSpaceOnUse" x="0" y="0"> <feGaussianBlur in="SourceGraphic" stdDeviation="2" id="feGaussianBlur6" /></filter>
</defs>
<style type="text/css">
<![CDATA[
/* Specular Highlighting */
.low-specularity {opacity:0.25;}
.specularity {opacity:0.5;}
.high-specularity {opacity:0.75;}
.full-specularity {opacity:1;}
/* Shading */
.low-shade {opacity:0.25;}
.shade {opacity:0.5;}
.high-shade {opacity:0.75;}
.full-shade {opacity:1;}
/* Tango palette fill/stroke */
.black {fill:#000;}
.aluminium1 {fill:#eeeeec;}
.aluminium2 {fill:#d3d7cf;}
.aluminium6 {fill:#2e3436;}
.chocolate3 {fill:#8f5902;}
.chocolate2 {fill:#c17d11;}
.aluminium4 {fill:#888a85;}
/* Shadows: Back-Shadows & Base Shadows */
.base-shadow {opacity:0.4;}
.outline-big {stroke:black;stroke-width:8;opacity:0.25;stroke-linejoin:round;}
.outline-small {stroke:black;stroke-width:4;opacity:0.5;stroke-linejoin:round;}
.stroke-highlight {fill:none;stroke:white;stroke-opacity:0.2;stroke-width:4;stroke-linejoin:round;}
]]>
</style>
<g id="configuration">
<g id="spanner">
<use xlink:href="#outline1" class="outline-big"/>
<use xlink:href="#outline1" class="outline-small"/>
<use xlink:href="#outline1" class="aluminium4"/>
<use class="stroke-highlight" xlink:href="#outline1" clip-path="url(#clipoutline1)" style="stroke-linejoin:miter;"/>
<path class="high-specularity" style="fill:url(#lg55);" d="M 24.33,15.4 L 37.78,28.78 L 34.45,40.47 L 23.5,43.74 L 9.9319417,30 L 5.2,34.54 L 19.4,54.48 L 38.3,50.34 L 100.8,116.7 C 108.3,125 121,114.03 111.94,105.1 L 45.04,42 L 48.9,24.83 L 28.94,10.8 L 24.33,15.4 z M 104.3,108.7 C 105.97,107.03 108.93,106.7 110.6,108.4 C 112.3,110.07 113.66,113.03 111.25,116.24 C 109.25,118.24 106.05,118.16 104.05,116 C 102.37,114.32 102.6,110.4 104.3,108.7 z"/>
<path class="specularity" style="fill:url(#lg51);" d="M 24.2,15.42 L 47.67,39.07 L 50.89,25.2 L 28.79,10.8 L 24.2,15.42 z"/>
</g>
<path class="low-shade" style="fill:url(#lgdg)" d="M 70.739,65.52 L 75.37,69.8 C 75.75,74.12 74.64,75.42 67.54,81.44 L 58.94,72.22 L 70.73,65.52 L 70.73,65.52 L 70.739,65.52 z " />
<g id="hammer">
<use xlink:href="#outline2" class="outline-big"/>
<use xlink:href="#outline2" class="outline-small stroke-aluminium5"/>
<path class="aluminium2" d="M 82.92,35.75 L 53.47,65.2 L 62.3,74.03 L 91.75,44.59 L 82.92,35.75 z"/>
<path class="specularity" style="fill:url(#lg19);" d="M 88.93,41.76 L 59.48,71.2 L 62.3,74.03 L 91.75,44.59 L 88.93,41.76 z"/>
<path style="fill:url(#lg16);" d="M 86.46,37.04 L 57.13,66.37 L 60.92,70.16 L 89.5,40.08 L 86.46,37.04 z"/>
<path class="aluminium6" d="M 55.8,12 L 56.56,12.16 C 65.4,9.22 85.24,20.8 80.82,31.12 C 79.7,32.74 79.89,35.62 81.24,37.43 L 90.15,46.2 C 92.78,48.57 95.26,48.77 97.62,48.13 C 102.17,46.9 104.7,51.33 107.43,54.59 L 106.2,55.8 C 104.38,57.64 104.55,60.74 106.59,62.78 C 108.63,64.82 111.74,64.99 113.56,63.17 L 121.7,55.04 C 123.52,53.2 123.35,50.1 121.3,48.07 C 119.46,46.22 116.79,45.98 114.93,47.3 C 109.35,41.04 112.28,40.1 104.92,31.95 L 91.13,17.86 C 81.2,8.12 68.3,8.13 55.8,12 z "/>
<path class="specularity" style="fill:url(#lg12);" d="M 114.93,47.3 C 109.35,41.04 112.28,40.1 104.92,31.95 L 91.13,17.86 C 85.44,12.28 78.77,9.9 71.77,9.6 L 112.9,51.13 L 115.87535,48.4 L 114.93,47.3 z "/>
<path class="low-specularity" style="fill:url(#lg09);" d="M 81.45,28 C 81.5,29 81.270657,30 80.8,31.12 C 79.7,32.74 79.89,35.62 81.24,37.43 L 90.15,46.2 C 92.78,48.57 95.26,48.77 97.62,48.13 C 98.7,47.8 99.68,47.86 100.6,48.13 C 103.4,48.9 81.44,27.58 81.45,27.9 L 81.45,28 z"/>
<path style="fill:#3465a4;" d="M 56.43,62.25 C 55.04,60.86 51.95,60.89 50.53,62.25 L 9.5,101.63 C 5.76,105.22 8.68,108.27 10.28,109.88 L 17.64,117.24 C 19.25,118.84 23.5,121 26.52,117.8 L 65.24,76.99 C 66.59,75.57 66.6,72.52 65.24,71.12 C 65.24,71.12 65.25,71.1 65.24,71.1 L 56.43,62.25 z"/>
<path class="low-shade" style="fill:url(#lg05);" d="M 10.27,109.87 L 17.63,117.24 C 19.24,118.84 23.36,121.13 26.38,117.95 L 65.25,76.98 C 66.6,75.55 66.64,72.48 65.25,71.1 L 56.42,62.26 L 10.27,109.87 z"/>
<path class="specularity" style="fill:url(#lg02);" d="M 51.2,65.7 L 12.32,103.74 C 10.7,105.3 11.25,107.49 12.42,108.63 L 16.55,112.6 L 58.92,69 L 55,65.32 C 54.16,64.52 52.2,64.75 51.2,65.7 z"/>
<use class="stroke-highlight" xlink:href="#outline2" clip-path="url(#clipoutline2)"/>
<path style="fill:url(#lg1999);" d="M 120.45,49.26 C 121.96,50.7 122.25,52.7 120.17,54.62 L 116.3,58.25 C 114.22,60.2 108.78,55 110.85,53.06 L 114.73,49.43 C 116.8,47.48 118.94,47.82 120.45,49.26 z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>655</width>
<height>554</height>
<width>626</width>
<height>532</height>
</rect>
</property>
<property name="windowTitle">
@ -24,34 +24,12 @@
<string>RC Input</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="9">
<widget class="QLabel" name="label_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>50</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>You must restart your board after changing receiver type. Also your hardware setings must support it.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
@ -62,17 +40,7 @@
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QComboBox" name="receiverType">
<property name="toolTip">
<string>Select the receiver type here:
- PWM is the most usual type
- PPM is connected to input XXX
- Spektrum is used with Spektrum 'satellite' receivers</string>
</property>
</widget>
</item>
<item row="2" column="4">
<item row="0" column="5">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="RCInputConnected">
@ -102,14 +70,14 @@
</item>
</layout>
</item>
<item row="2" column="8">
<item row="0" column="9">
<widget class="QLabel" name="label">
<property name="text">
<string>Rev.</string>
</property>
</widget>
</item>
<item row="3" column="0">
<item row="1" column="0">
<widget class="QComboBox" name="ch0Assign">
<property name="iconSize">
<size>
@ -122,7 +90,7 @@
</property>
</widget>
</item>
<item row="3" column="1">
<item row="1" column="2">
<widget class="QLabel" name="ch0Cur">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -136,7 +104,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="3" column="2">
<item row="1" column="3">
<widget class="QLabel" name="ch0Min">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -154,7 +122,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="3" column="4" colspan="3">
<item row="1" column="5" colspan="3">
<widget class="QSlider" name="inSlider0">
<property name="mouseTracking">
<bool>true</bool>
@ -173,7 +141,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="3" column="7">
<item row="1" column="8">
<widget class="QLabel" name="ch0Max">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -188,7 +156,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="3" column="8">
<item row="1" column="9">
<widget class="QCheckBox" name="ch0Rev">
<property name="toolTip">
<string>Check this to reverse the channel.
@ -200,10 +168,10 @@ reversal capabilities).</string>
</property>
</widget>
</item>
<item row="4" column="0">
<item row="2" column="0">
<widget class="QComboBox" name="ch1Assign"/>
</item>
<item row="4" column="1">
<item row="2" column="2">
<widget class="QLabel" name="ch1Cur">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -217,7 +185,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="4" column="2">
<item row="2" column="3">
<widget class="QLabel" name="ch1Min">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -235,7 +203,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="4" column="4" colspan="3">
<item row="2" column="5" colspan="3">
<widget class="QSlider" name="inSlider1">
<property name="mouseTracking">
<bool>true</bool>
@ -254,7 +222,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="4" column="7">
<item row="2" column="8">
<widget class="QLabel" name="ch1Max">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -269,7 +237,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="4" column="8">
<item row="2" column="9">
<widget class="QCheckBox" name="ch1Rev">
<property name="toolTip">
<string>Check this to reverse the channel.
@ -281,10 +249,10 @@ reversal capabilities).</string>
</property>
</widget>
</item>
<item row="5" column="0">
<item row="3" column="0">
<widget class="QComboBox" name="ch2Assign"/>
</item>
<item row="5" column="1">
<item row="3" column="2">
<widget class="QLabel" name="ch2Cur">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -298,7 +266,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="5" column="2">
<item row="3" column="3">
<widget class="QLabel" name="ch2Min">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -316,7 +284,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="5" column="4" colspan="3">
<item row="3" column="5" colspan="3">
<widget class="QSlider" name="inSlider2">
<property name="mouseTracking">
<bool>true</bool>
@ -335,7 +303,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="5" column="7">
<item row="3" column="8">
<widget class="QLabel" name="ch2Max">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -350,7 +318,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="5" column="8">
<item row="3" column="9">
<widget class="QCheckBox" name="ch2Rev">
<property name="toolTip">
<string>Check this to reverse the channel.
@ -362,10 +330,10 @@ reversal capabilities).</string>
</property>
</widget>
</item>
<item row="6" column="0">
<item row="4" column="0">
<widget class="QComboBox" name="ch3Assign"/>
</item>
<item row="6" column="1">
<item row="4" column="2">
<widget class="QLabel" name="ch3Cur">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -379,7 +347,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="6" column="2">
<item row="4" column="3">
<widget class="QLabel" name="ch3Min">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -397,7 +365,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="6" column="4" colspan="3">
<item row="4" column="5" colspan="3">
<widget class="QSlider" name="inSlider3">
<property name="mouseTracking">
<bool>true</bool>
@ -416,7 +384,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="6" column="7">
<item row="4" column="8">
<widget class="QLabel" name="ch3Max">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -431,7 +399,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="6" column="8">
<item row="4" column="9">
<widget class="QCheckBox" name="ch3Rev">
<property name="toolTip">
<string>Check this to reverse the channel.
@ -443,10 +411,10 @@ reversal capabilities).</string>
</property>
</widget>
</item>
<item row="7" column="0">
<item row="5" column="0">
<widget class="QComboBox" name="ch4Assign"/>
</item>
<item row="7" column="1">
<item row="5" column="2">
<widget class="QLabel" name="ch4Cur">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -460,7 +428,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="7" column="2">
<item row="5" column="3">
<widget class="QLabel" name="ch4Min">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -478,7 +446,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="7" column="4" colspan="3">
<item row="5" column="5" colspan="3">
<widget class="QSlider" name="inSlider4">
<property name="mouseTracking">
<bool>true</bool>
@ -497,7 +465,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="7" column="7">
<item row="5" column="8">
<widget class="QLabel" name="ch4Max">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -512,7 +480,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="7" column="8">
<item row="5" column="9">
<widget class="QCheckBox" name="ch4Rev">
<property name="toolTip">
<string>Check this to reverse the channel.
@ -524,10 +492,10 @@ reversal capabilities).</string>
</property>
</widget>
</item>
<item row="8" column="0">
<item row="6" column="0">
<widget class="QComboBox" name="ch5Assign"/>
</item>
<item row="8" column="1">
<item row="6" column="2">
<widget class="QLabel" name="ch5Cur">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -541,7 +509,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="8" column="2">
<item row="6" column="3">
<widget class="QLabel" name="ch5Min">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -559,7 +527,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="8" column="4" colspan="3">
<item row="6" column="5" colspan="3">
<widget class="QSlider" name="inSlider5">
<property name="mouseTracking">
<bool>true</bool>
@ -578,7 +546,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="8" column="7">
<item row="6" column="8">
<widget class="QLabel" name="ch5Max">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -593,7 +561,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="8" column="8">
<item row="6" column="9">
<widget class="QCheckBox" name="ch5Rev">
<property name="toolTip">
<string>Check this to reverse the channel.
@ -605,10 +573,10 @@ reversal capabilities).</string>
</property>
</widget>
</item>
<item row="9" column="0">
<item row="7" column="0">
<widget class="QComboBox" name="ch6Assign"/>
</item>
<item row="9" column="1">
<item row="7" column="2">
<widget class="QLabel" name="ch6Cur">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -622,7 +590,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="9" column="2">
<item row="7" column="3">
<widget class="QLabel" name="ch6Min">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -640,7 +608,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="9" column="4" colspan="3">
<item row="7" column="5" colspan="3">
<widget class="QSlider" name="inSlider6">
<property name="mouseTracking">
<bool>true</bool>
@ -659,7 +627,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="9" column="7">
<item row="7" column="8">
<widget class="QLabel" name="ch6Max">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -674,7 +642,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="9" column="8">
<item row="7" column="9">
<widget class="QCheckBox" name="ch6Rev">
<property name="toolTip">
<string>Check this to reverse the channel.
@ -686,10 +654,10 @@ reversal capabilities).</string>
</property>
</widget>
</item>
<item row="10" column="0">
<item row="8" column="0">
<widget class="QComboBox" name="ch7Assign"/>
</item>
<item row="10" column="1">
<item row="8" column="2">
<widget class="QLabel" name="ch7Cur">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -703,7 +671,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="10" column="2">
<item row="8" column="3">
<widget class="QLabel" name="ch7Min">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -721,7 +689,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="10" column="4" colspan="3">
<item row="8" column="5" colspan="3">
<widget class="QSlider" name="inSlider7">
<property name="mouseTracking">
<bool>true</bool>
@ -740,7 +708,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="10" column="7">
<item row="8" column="8">
<widget class="QLabel" name="ch7Max">
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@ -755,7 +723,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="10" column="8">
<item row="8" column="9">
<widget class="QCheckBox" name="ch7Rev">
<property name="toolTip">
<string>Check this to reverse the channel.
@ -767,7 +735,34 @@ reversal capabilities).</string>
</property>
</widget>
</item>
<item row="11" column="0">
<item row="14" column="0" colspan="10">
<widget class="QLabel" name="label_20">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>BEWARE: make sure your engines are not connected when running calibration!
</string>
</property>
</widget>
</item>
<item row="11" column="0" colspan="10">
<widget class="QLabel" name="lblMissingInputs">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QCheckBox" name="doRCInputCalibration">
<property name="font">
<font>
@ -787,33 +782,13 @@ Neutral should be put at the bottom of the slider for the throttle.</string>
</property>
</widget>
</item>
<item row="13" column="0" colspan="9">
<widget class="QLabel" name="lblMissingInputs">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<item row="0" column="1">
<widget class="QLabel" name="receiverType">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="16" column="0" colspan="9">
<widget class="QLabel" name="label_20">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>BEWARE: make sure your engines are not connected when running calibration!
</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_3">
@ -1192,19 +1167,6 @@ if you have not done so already.</string>
</widget>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
@ -1287,7 +1249,6 @@ Applies and Saves all settings to SD</string>
<tabstop>ch5Assign</tabstop>
<tabstop>ch6Assign</tabstop>
<tabstop>ch7Assign</tabstop>
<tabstop>receiverType</tabstop>
<tabstop>fmsSlider</tabstop>
<tabstop>fmsModePos3</tabstop>
<tabstop>fmsSsPos3Roll</tabstop>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TelemetryWidget</class>
<widget class="QWidget" name="TelemetryWidget">
<class>PRO_HW_Widget</class>
<widget class="QWidget" name="PRO_HW_Widget">
<property name="geometry">
<rect>
<x>0</x>

View File

@ -0,0 +1,123 @@
#include "smartsavebutton.h"
smartSaveButton::smartSaveButton(QPushButton * update, QPushButton * save):bupdate(update),bsave(save)
{
connect(bsave,SIGNAL(clicked()),this,SLOT(processClick()));
connect(bupdate,SIGNAL(clicked()),this,SLOT(processClick()));
}
void smartSaveButton::processClick()
{
emit beginOp();
bool save=false;
QPushButton *button=bupdate;
if(sender()==bsave)
{
save=true;
button=bsave;
}
emit preProcessOperations();
button->setEnabled(false);
button->setIcon(QIcon(":/uploader/images/system-run.svg"));
QTimer timer;
timer.setSingleShot(true);
bool error=false;
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectUtilManager* utilMngr = pm->getObject<UAVObjectUtilManager>();
qDebug()<<"smartbutton:save";
foreach(UAVObject * obj,objects)
{
up_result=false;
current_object=obj;
for(int i=0;i<3;++i)
{
connect(obj,SIGNAL(transactionCompleted(UAVObject*,bool)),this,SLOT(transaction_finished(UAVObject*, bool)));
connect(&timer,SIGNAL(timeout()),&loop,SLOT(quit()));
obj->updated();
timer.start(1000);
loop.exec();
timer.stop();
disconnect(obj,SIGNAL(transactionCompleted(UAVObject*,bool)),this,SLOT(transaction_finished(UAVObject*, bool)));
disconnect(&timer,SIGNAL(timeout()),&loop,SLOT(quit()));
if(up_result)
break;
}
if(up_result==false)
{
error=true;
continue;
}
sv_result=false;
current_objectID=obj->getObjID();
if(save)
{
for(int i=0;i<3;++i)
{
connect(utilMngr,SIGNAL(saveCompleted(int,bool)),this,SLOT(saving_finished(int,bool)));
connect(&timer,SIGNAL(timeout()),&loop,SLOT(quit()));
utilMngr->saveObjectToSD(obj);
timer.start(1000);
loop.exec();
timer.stop();
disconnect(utilMngr,SIGNAL(saveCompleted(int,bool)),this,SLOT(saving_finished(int,bool)));
disconnect(&timer,SIGNAL(timeout()),&loop,SLOT(quit()));
if(sv_result)
break;
}
if(sv_result==false)
{
error=true;
}
}
}
button->setEnabled(true);
if(!error)
{
button->setIcon(QIcon(":/uploader/images/dialog-apply.svg"));
emit saveSuccessfull();
}
else
{
button->setIcon(QIcon(":/uploader/images/process-stop.svg"));
}
emit endOp();
}
void smartSaveButton::setObjects(QList<UAVObject *> list)
{
objects=list;
}
void smartSaveButton::addObject(UAVObject * obj)
{
objects.append(obj);
}
void smartSaveButton::clearObjects()
{
objects.clear();
}
void smartSaveButton::transaction_finished(UAVObject* obj, bool result)
{
if(current_object==obj)
{
up_result=result;
loop.quit();
}
}
void smartSaveButton::saving_finished(int id, bool result)
{
if(id==current_objectID)
{
sv_result=result;
loop.quit();
}
}
void smartSaveButton::enableControls(bool value)
{
bupdate->setEnabled(value);
bsave->setEnabled(value);
}

View File

@ -0,0 +1,49 @@
#ifndef SMARTSAVEBUTTON_H
#define SMARTSAVEBUTTON_H
#include "uavtalk/telemetrymanager.h"
#include "extensionsystem/pluginmanager.h"
#include "uavobjectmanager.h"
#include "uavobject.h"
#include <QPushButton>
#include <QList>
#include <QEventLoop>
#include "uavobjectutilmanager.h"
#include <QObject>
#include <QDebug>
class smartSaveButton:public QObject
{
public:
Q_OBJECT
public:
smartSaveButton(QPushButton * update,QPushButton * save);
void setObjects(QList<UAVObject *>);
void addObject(UAVObject *);
void clearObjects();
signals:
void preProcessOperations();
void saveSuccessfull();
void beginOp();
void endOp();
private slots:
void processClick();
void transaction_finished(UAVObject* obj, bool result);
void saving_finished(int,bool);
private:
QPushButton *bupdate;
QPushButton *bsave;
quint32 current_objectID;
UAVObject * current_object;
bool up_result;
bool sv_result;
QEventLoop loop;
QList<UAVObject *> objects;
protected:
public slots:
void enableControls(bool value);
};
#endif // SMARTSAVEBUTTON_H