diff options
Diffstat (limited to 'tests/benchmarks/gui/graphicsview')
183 files changed, 0 insertions, 20708 deletions
diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/GraphicsViewBenchmark.pro b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/GraphicsViewBenchmark.pro deleted file mode 100644 index ded6a06795..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/GraphicsViewBenchmark.pro +++ /dev/null @@ -1,70 +0,0 @@ -TEMPLATE = app - -QT += svg testlib -qtHaveModule(opengl): QT += opengl - -HEADERS += widgets/gvbwidget.h \ - widgets/abstractscrollarea.h \ - widgets/mainview.h \ - widgets/iconitem.h \ - widgets/label.h \ - widgets/listitem.h \ - widgets/scrollbar.h \ - widgets/simplelistview.h \ - widgets/scroller.h \ - widgets/scroller_p.h \ - widgets/button.h \ - widgets/menu.h \ - widgets/themeevent.h \ - widgets/theme.h \ - widgets/backgrounditem.h \ - widgets/topbar.h \ - widgets/commandline.h \ - widgets/dummydatagen.h \ - widgets/settings.h \ - widgets/listitemcache.h \ - widgets/listwidget.h \ - widgets/simplelist.h \ - widgets/itemrecyclinglist.h \ - widgets/itemrecyclinglistview.h \ - widgets/abstractitemview.h \ - widgets/abstractviewitem.h \ - widgets/recycledlistitem.h \ - widgets/listitemcontainer.h \ - widgets/abstractitemcontainer.h \ - widgets/listmodel.h - -SOURCES += main.cpp \ - widgets/gvbwidget.cpp \ - widgets/abstractscrollarea.cpp \ - widgets/mainview.cpp \ - widgets/iconitem.cpp \ - widgets/label.cpp \ - widgets/listitem.cpp \ - widgets/scrollbar.cpp \ - widgets/simplelistview.cpp \ - widgets/scroller.cpp \ - widgets/button.cpp \ - widgets/menu.cpp \ - widgets/themeevent.cpp \ - widgets/theme.cpp \ - widgets/backgrounditem.cpp \ - widgets/topbar.cpp \ - widgets/commandline.cpp \ - widgets/dummydatagen.cpp \ - widgets/settings.cpp \ - widgets/listitemcache.cpp \ - widgets/listwidget.cpp \ - widgets/simplelist.cpp \ - widgets/itemrecyclinglist.cpp \ - widgets/itemrecyclinglistview.cpp \ - widgets/abstractitemview.cpp \ - widgets/abstractviewitem.cpp \ - widgets/recycledlistitem.cpp \ - widgets/listitemcontainer.cpp \ - widgets/abstractitemcontainer.cpp \ - widgets/listmodel.cpp - -TARGET = tst_GraphicsViewBenchmark -RESOURCES += GraphicsViewBenchmark.qrc -INCLUDEPATH += widgets diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/GraphicsViewBenchmark.qrc b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/GraphicsViewBenchmark.qrc deleted file mode 100644 index 18ae04dd69..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/GraphicsViewBenchmark.qrc +++ /dev/null @@ -1,85 +0,0 @@ -<RCC> - <qresource prefix="/themes/blue"> - <file alias="background.svg">resources/blue_SVG/blue_background_360x640px.svg</file> - <file alias="background_horisontal.svg">resources/blue_SVG/blue_background_horisontal_640x360px.svg</file> - <file alias="contact_default_icon.svg">resources/blue_SVG/blue_contact_default_icon_52x52px.svg</file> - <file alias="contact_list_divider.svg">resources/blue_SVG/blue_contact_list_divider_360x76px.svg</file> - <file alias="contact_list_highlighter.svg">resources/blue_SVG/blue_contact_list_highlighter_360x76px.svg</file> - <file alias="contact_status_idle.svg">resources/blue_SVG/blue_contact_status_idle_33x33px.svg</file> - <file alias="contact_status_offline.svg">resources/blue_SVG/blue_contact_status_offline_33x33px.svg</file> - <file alias="contact_status_online.svg">resources/blue_SVG/blue_contact_status_online_33x33px.svg</file> - <file alias="scrollbar.svg">resources/blue_SVG/blue_scrollbar_7x14px.svg</file> - <file alias="scroll.svg">resources/blue_SVG/blue_scroll_16x80px.svg</file> - <file alias="status_field_left.svg">resources/blue_SVG/blue_status_field_left_14x24px.svg</file> - <file alias="status_field_middle.svg">resources/blue_SVG/blue_status_field_middle_14x24px.svg</file> - <file alias="status_field_right.svg">resources/blue_SVG/blue_status_field_right_14x24px.svg</file> - <file alias="topbar.svg">resources/blue_SVG/blue_topbar_356x96px.svg</file> - <file alias="topbar_horisontal.svg">resources/blue_SVG/blue_topbar_horisontal_636x96px.svg</file> - <file alias="user_default_icon.svg">resources/blue_SVG/blue_user_default_icon_68x68px.svg</file> - <file alias="user_status_idle.svg">resources/blue_SVG/blue_user_status_idle_38x38px.svg</file> - <file alias="user_status_offline.svg">resources/blue_SVG/blue_user_status_offline_38x38px.svg</file> - <file alias="user_status_online.svg">resources/blue_SVG/blue_user_status_online_38x38px.svg</file> - </qresource> - - <qresource prefix="/themes/lime"> - <file alias="background.svg">resources/lime_SVG/lime_background_360x640px.svg</file> - <file alias="background_horisontal.svg">resources/lime_SVG/lime_background_horisontal_640x360px.svg</file> - <file alias="contact_default_icon.svg">resources/lime_SVG/lime_contact_default_icon_53x53px.svg</file> - <file alias="contact_default_icon_highlight.svg">resources/lime_SVG/lime_contact_default_icon_highlight_53x53px.svg</file> - <file alias="contact_list_divider.svg">resources/lime_SVG/lime_contact_list_divider_360x76px.svg</file> - <file alias="contact_list_highlighter.svg">resources/lime_SVG/lime_contact_list_highlighter_357x80px.svg</file> - <file alias="contact_status_idle.svg">resources/blue_SVG/blue_contact_status_idle_33x33px.svg</file> - <file alias="contact_status_offline.svg">resources/blue_SVG/blue_contact_status_offline_33x33px.svg</file> - <file alias="contact_status_online.svg">resources/blue_SVG/blue_contact_status_online_33x33px.svg</file> - <file alias="scrollbar.svg">resources/lime_SVG/lime_scrollbar_5x14px.svg</file> - <file alias="scroll.svg">resources/lime_SVG/lime_scroll_5x80px.svg</file> - <file alias="status_field_left.svg">resources/lime_SVG/lime_status_field_left_14x24px.svg</file> - <file alias="status_field_middle.svg">resources/lime_SVG/lime_status_field_middle_10x24px.svg</file> - <file alias="status_field_right.svg">resources/lime_SVG/lime_status_field_right_14x24px.svg</file> - <file alias="topbar.svg">resources/lime_SVG/lime_topbar_356x96px.svg</file> - <file alias="topbar_horisontal.svg">resources/lime_SVG/lime_topbar_horisontal_636x96px.svg</file> - <file alias="user_default_icon.svg">resources/lime_SVG/lime_user_default_icon_84x68px.svg</file> - <file alias="user_status_idle.svg">resources/lime_SVG/lime_user_status_idle_24x24px.svg</file> - <file alias="user_status_offline.svg">resources/lime_SVG/lime_user_status_offline_24x24px.svg</file> - <file alias="user_status_online.svg">resources/lime_SVG/lime_user_status_online_24x24px.svg</file> - </qresource> - - <qresource prefix="/avatars"> - <file alias="avatar_001.png">resources/avatars/avatar_man_001_58x58.png</file> - <file alias="avatar_002.png">resources/avatars/avatar_man_002_58x58.png</file> - <file alias="avatar_003.png">resources/avatars/avatar_man_003_58x58.png</file> - <file alias="avatar_004.png">resources/avatars/avatar_man_004_58x58.png</file> - <file alias="avatar_005.png">resources/avatars/avatar_man_005_58x58.png</file> - <file alias="avatar_006.png">resources/avatars/avatar_man_006_58x58.png</file> - <file alias="avatar_007.png">resources/avatars/avatar_man_007_58x58.png</file> - <file alias="avatar_008.png">resources/avatars/avatar_man_008_58x58.png</file> - <file alias="avatar_009.png">resources/avatars/avatar_man_009_58x58.png</file> - <file alias="avatar_010.png">resources/avatars/avatar_man_010_58x58.png</file> - - <file alias="avatar_011.png">resources/avatars/avatar_picture_001_58x58.png</file> - <file alias="avatar_012.png">resources/avatars/avatar_picture_002_58x58.png</file> - <file alias="avatar_013.png">resources/avatars/avatar_picture_003_58x58.png</file> - <file alias="avatar_014.png">resources/avatars/avatar_picture_004_58x58.png</file> - <file alias="avatar_015.png">resources/avatars/avatar_picture_005_58x58.png</file> - - <file alias="avatar_016.png">resources/avatars/avatar_woman_001_58x58.png</file> - <file alias="avatar_017.png">resources/avatars/avatar_woman_002_58x58.png</file> - <file alias="avatar_018.png">resources/avatars/avatar_woman_003_58x58.png</file> - <file alias="avatar_019.png">resources/avatars/avatar_woman_004_58x58.png</file> - <file alias="avatar_020.png">resources/avatars/avatar_woman_005_58x58.png</file> - <file alias="avatar_021.png">resources/avatars/avatar_woman_006_58x58.png</file> - <file alias="avatar_022.png">resources/avatars/avatar_woman_007_58x58.png</file> - <file alias="avatar_023.png">resources/avatars/avatar_woman_008_58x58.png</file> - <file alias="avatar_024.png">resources/avatars/avatar_woman_009_58x58.png</file> - <file alias="avatar_025.png">resources/avatars/avatar_woman_010_58x58.png</file> - </qresource> - - <qresource prefix="/contact"> - <file alias="areacodes.txt">resources/contacts/areacodes.txt</file> - <file alias="firstnamesF.txt">resources/contacts/firstnamesF.txt</file> - <file alias="firstnamesM.txt">resources/contacts/firstnamesM.txt</file> - <file alias="lastnames.txt">resources/contacts/lastnames.txt</file> - </qresource> - -</RCC> - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/main.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/main.cpp deleted file mode 100644 index 87ab80d74f..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/main.cpp +++ /dev/null @@ -1,780 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -#include <QtTest/QtTest> -#include <QtGui/qgraphicsview.h> -#include <QtGui/qpixmapcache.h> -#include <QtGui/qdesktopwidget.h> - -#include "mainview.h" -#include "dummydatagen.h" -#include "simplelist.h" -#include "itemrecyclinglist.h" -#include "simplelist.h" -#include "theme.h" -#include "commandline.h" - -class tst_GraphicsViewBenchmark : public QObject -{ - Q_OBJECT -public: - enum ListType { - Simple, - Recycling, - None - }; - - enum ScrollStep { - Slow = 2, - Normal = 8, - Fast = 64 - }; - - tst_GraphicsViewBenchmark(Settings *settings) - : mSettings(settings), mMainView(0), currentListSize(-1), currentListType(None) {} - ~tst_GraphicsViewBenchmark() {} - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - -private slots: - // Benchmarks: - void createAndFillList_data(); - void createAndFillList(); - void add100ItemsToBeginningOfList_data(); - void add100ItemsToBeginningOfList(); - void remove100ItemsFromBeginningOfList_data(); - void remove100ItemsFromBeginningOfList(); - void deleteList_data(); - void deleteList(); - void themeChange_data(); - void themeChange(); - void update_data(); - void update(); - void scroll_data(); - void scroll(); - -private: - Settings *mSettings; - MainView *mMainView; - DummyDataGenerator mDataGenerator; - int currentListSize; - ListType currentListType; - - void resetView(); - void ensureListSizeAndType(int listSize, ListType listType); - void ensureTheme(Theme::Themes theme); - void ensureRotationAngle(int rotation); - void ensureSubtreeCache(bool enable); - void ensureImageBasedRendering(bool enable); - void insertListData(); - inline void setTestWidget(QGraphicsWidget *widget, int listSize, ListType listType) - { - currentListSize = listSize; - currentListType = listType; - mMainView->setTestWidget(widget); - } -}; - -Q_DECLARE_METATYPE(tst_GraphicsViewBenchmark::ListType) -Q_DECLARE_METATYPE(Theme::Themes) -Q_DECLARE_METATYPE(tst_GraphicsViewBenchmark::ScrollStep) - -const int AddRemoveCount = 100; - -static ListItem *newSimpleListItem(DummyDataGenerator &dataGenerator, const int id) -{ - ListItem *item = new ListItem(); - item->setText(dataGenerator.randomName(), ListItem::FirstPos ); - item->setText(dataGenerator.randomPhoneNumber(QString("%1").arg(id)), ListItem::SecondPos ); - item->setIcon(new IconItem(dataGenerator.randomIconItem(), item), ListItem::LeftIcon ); - item->setIcon(new IconItem(dataGenerator.randomStatusItem(), item), ListItem::RightIcon); - item->setFont(Theme::p()->font(Theme::ContactName), ListItem::FirstPos); - item->setFont(Theme::p()->font(Theme::ContactNumber), ListItem::SecondPos); - item->setBorderPen(Theme::p()->listItemBorderPen()); - item->setRounding(Theme::p()->listItemRounding()); - item->icon(ListItem::LeftIcon)->setRotation(Theme::p()->iconRotation(ListItem::LeftIcon)); - item->icon(ListItem::RightIcon)->setRotation(Theme::p()->iconRotation(ListItem::RightIcon)); - item->icon(ListItem::LeftIcon)->setSmoothTransformationEnabled(Theme::p()->isIconSmoothTransformationEnabled(ListItem::LeftIcon)); - item->icon(ListItem::RightIcon)->setSmoothTransformationEnabled(Theme::p()->isIconSmoothTransformationEnabled(ListItem::RightIcon)); - item->icon(ListItem::LeftIcon)->setOpacityEffectEnabled(Theme::p()->isIconOpacityEffectEnabled(ListItem::LeftIcon)); - item->icon(ListItem::RightIcon)->setOpacityEffectEnabled(Theme::p()->isIconOpacityEffectEnabled(ListItem::RightIcon)); - return item; -} - -static RecycledListItem *newRecyclingListItem(DummyDataGenerator &dataGenerator, const int id) -{ - RecycledListItem *item = new RecycledListItem(); - item->item()->setText(dataGenerator.randomName(), ListItem::FirstPos ); - item->item()->setText(dataGenerator.randomPhoneNumber(QString("%1").arg(id)), ListItem::SecondPos ); - item->item()->setIcon(new IconItem(dataGenerator.randomIconItem()), ListItem::LeftIcon ); - item->item()->setIcon(new IconItem(dataGenerator.randomStatusItem()), ListItem::RightIcon); - item->item()->setFont(Theme::p()->font(Theme::ContactName), ListItem::FirstPos); - item->item()->setFont(Theme::p()->font(Theme::ContactNumber), ListItem::SecondPos); - item->item()->setBorderPen(Theme::p()->listItemBorderPen()); - item->item()->setRounding(Theme::p()->listItemRounding()); - item->item()->icon(ListItem::LeftIcon)->setRotation(Theme::p()->iconRotation(ListItem::LeftIcon)); - item->item()->icon(ListItem::RightIcon)->setRotation(Theme::p()->iconRotation(ListItem::RightIcon)); - item->item()->icon(ListItem::LeftIcon)->setSmoothTransformationEnabled(Theme::p()->isIconSmoothTransformationEnabled(ListItem::LeftIcon)); - item->item()->icon(ListItem::RightIcon)->setSmoothTransformationEnabled(Theme::p()->isIconSmoothTransformationEnabled(ListItem::RightIcon)); - item->item()->icon(ListItem::LeftIcon)->setOpacityEffectEnabled(Theme::p()->isIconOpacityEffectEnabled(ListItem::LeftIcon)); - item->item()->icon(ListItem::RightIcon)->setOpacityEffectEnabled(Theme::p()->isIconOpacityEffectEnabled(ListItem::RightIcon)); - return item; -} - -static void fillList(DummyDataGenerator &dataGenerator, int itemCount, QGraphicsWidget *list) -{ - if (SimpleList *simpleList = qobject_cast<SimpleList *>(list)) { - for (int i = 0; i < itemCount; ++i) - simpleList->addItem(newSimpleListItem(dataGenerator, i)); - } else if (ItemRecyclingList *recyclingList = qobject_cast<ItemRecyclingList *>(list)) { - for (int i = 0; i < itemCount; ++i) - recyclingList->addItem(newRecyclingListItem(dataGenerator, i)); - } else { - qFatal("fillList: internal error"); - } -} - -void tst_GraphicsViewBenchmark::resetView() -{ - if (QGraphicsWidget *widget = mMainView->takeTestWidget()) { - delete widget; - currentListSize = -1; - currentListType = None; - QTest::qWait(50); - } else { - if (currentListSize != -1) - qFatal("tst_GraphicsViewBenchmark::resetView: internal error: wrong list size"); - if (currentListType != None) - qFatal("tst_GraphicsViewBenchmark::resetView: internal error: wrong list type"); - } - ensureTheme(Theme::Blue); - ensureRotationAngle(0); - ensureSubtreeCache(false); - ensureImageBasedRendering(false); -} - -void tst_GraphicsViewBenchmark::ensureListSizeAndType(int listSize, ListType listType) -{ - if (currentListSize != listSize || currentListType != listType) { - resetView(); - if (listType == Simple) { - SimpleList *list = new SimpleList; - fillList(mDataGenerator, listSize, list); - setTestWidget(list, listSize, listType); - } else if (listType == Recycling) { - ItemRecyclingList *list = new ItemRecyclingList; - fillList(mDataGenerator, listSize, list); - setTestWidget(list, listSize, listType); - } - QTest::qWait(50); - return; - } - - // Okay, we're supposed to have the right list type and size. Make sure we actually have it. - QGraphicsWidget *widget = mMainView->testWidget(); - if (!widget) { - if (currentListType != None || currentListSize != -1) - qFatal("tst_GraphicsViewBenchmark::ensureListSizeAndType: internal error: no test widget"); - return; - } - - if (listType == Simple) { - SimpleList *list = qobject_cast<SimpleList *>(widget); - if (!list) - qFatal("tst_GraphicsViewBenchmark::ensureListSizeAndType: internal error: wrong list type"); - if (list->itemCount() != listSize) - qFatal("tst_GraphicsViewBenchmark::ensureListSizeAndType: internal error: wrong list size"); - } else if (listType == Recycling){ - ItemRecyclingList *list = qobject_cast<ItemRecyclingList *>(widget); - if (!list) - qFatal("tst_GraphicsViewBenchmark::ensureListSizeAndType: internal error: wrong list type"); - if (list->rows() != listSize) - qFatal("tst_GraphicsViewBenchmark::ensureListSizeAndType: internal error: wrong list size"); - } -} - -void tst_GraphicsViewBenchmark::ensureTheme(Theme::Themes theme) -{ - if (Theme::p()->theme() != theme) { - Theme::p()->setTheme(theme); - // The theme change itself can take a lot of time, so make - // sure we give it a little bit time to stabilize *after* - // the changes, hence sendPostedEvents(); qWait(); - QApplication::sendPostedEvents(); - QTest::qWait(50); - } -} - -void tst_GraphicsViewBenchmark::ensureRotationAngle(int angle) -{ - const bool useTwoColumns = angle != 0; - bool wait = false; - if (mMainView->rotationAngle() != angle) { - mMainView->rotateContent(-mMainView->rotationAngle() + angle); - wait = true; - } - if (QGraphicsWidget *widget = mMainView->testWidget()) { - if (SimpleList *list = qobject_cast<SimpleList *>(widget)) { - if (list->twoColumns() != useTwoColumns) { - list->setTwoColumns(useTwoColumns); - wait = true; - } - } else if (ItemRecyclingList *list = qobject_cast<ItemRecyclingList *>(widget)) { - if (list->twoColumns() != useTwoColumns) { - list->setTwoColumns(useTwoColumns); - wait = true; - } - } - } - if (wait) - QTest::qWait(50); -} - -void tst_GraphicsViewBenchmark::ensureSubtreeCache(bool enable) -{ - QGraphicsWidget *widget = mMainView->testWidget(); - if (!widget) - return; - - if (SimpleList *list = qobject_cast<SimpleList *>(widget)) { - if (list->listItemCaching() != enable) { - list->setListItemCaching(enable); - QTest::qWait(50); - } - } else if (ItemRecyclingList *list = qobject_cast<ItemRecyclingList *>(widget)) { - if (list->listItemCaching() != enable) { - list->setListItemCaching(enable); - QTest::qWait(50); - } - } - QPixmapCache::clear(); -} - -void tst_GraphicsViewBenchmark::ensureImageBasedRendering(bool enable) -{ - if (mMainView->imageBasedRendering() != enable) { - mMainView->setImageBasedRendering(enable); - QTest::qWait(50); - } -} - -void tst_GraphicsViewBenchmark::insertListData() -{ - QTest::addColumn<int>("listSize"); - QTest::addColumn<ListType>("listType"); - - QTest::newRow("Simple list containing 10 items") << 10 << Simple; - QTest::newRow("Recycling list containing 10 items") << 10 << Recycling; - QTest::newRow("Simple list containing 50 items") << 50 << Simple; - QTest::newRow("Recycling list containing 50 items") << 50 << Recycling; - QTest::newRow("Simple list containing 500 items") << 500 << Simple; - QTest::newRow("Recycling list containing 500 items") << 500 << Recycling; -} - -void tst_GraphicsViewBenchmark::initTestCase() -{ - mMainView = new MainView(mSettings->options() & Settings::UseOpenGL, - mSettings->options() & Settings::OutputFps); - - if (mSettings->size().width() > 0 && mSettings->size().height() > 0) { - mMainView->resize(mSettings->size().width(), mSettings->size().height()); - mMainView->show(); - } else if (QApplication::desktop()->width() < 360 || QApplication::desktop()->height() < 640) { - mMainView->showFullScreen(); - } else { - mMainView->resize(360, 640); - mMainView->show(); - } - - mDataGenerator.Reset(); - SimpleList *list = new SimpleList; - list->setListItemCaching(false); - mMainView->setTestWidget(list); - fillList(mDataGenerator, 5, list); - mMainView->takeTestWidget(); - delete list; - - currentListSize = -1; - currentListType = None; - - QVERIFY(QTest::qWaitForWindowShown(mMainView)); -} - -void tst_GraphicsViewBenchmark::cleanupTestCase() -{ - delete mMainView; - mMainView = 0; -} - -void tst_GraphicsViewBenchmark::init() -{ - // Make sure we don't have pending events in the queue. - // Yes, each test run takes a little bit longer, but the results are more stable. - QTest::qWait(150); -} - -void tst_GraphicsViewBenchmark::createAndFillList_data() -{ - insertListData(); -} - -void tst_GraphicsViewBenchmark::createAndFillList() -{ - QFETCH(int, listSize); - QFETCH(ListType, listType); - - resetView(); - - if (listType == Simple) { - QBENCHMARK { - SimpleList *list = new SimpleList; - setTestWidget(list, listSize, listType); - fillList(mDataGenerator, listSize, list); - } - } else { - QBENCHMARK { - ItemRecyclingList *list = new ItemRecyclingList; - setTestWidget(list, listSize, listType); - fillList(mDataGenerator, listSize, list); - } - } - - resetView(); -} - -void tst_GraphicsViewBenchmark::add100ItemsToBeginningOfList_data() -{ - insertListData(); -} - -void tst_GraphicsViewBenchmark::add100ItemsToBeginningOfList() -{ - QFETCH(int, listSize); - QFETCH(ListType, listType); - - resetView(); - - if (listType == Simple) { - SimpleList *list = new SimpleList; - fillList(mDataGenerator, listSize, list); - setTestWidget(list, listSize, listType); - QTest::qWait(50); - QBENCHMARK { - for (int i = 0; i < AddRemoveCount; ++i) - list->insertItem(0, newSimpleListItem(mDataGenerator, i)); - } - } else { - ItemRecyclingList *list = new ItemRecyclingList; - fillList(mDataGenerator, listSize, list); - setTestWidget(list, listSize, listType); - QTest::qWait(50); - QBENCHMARK { - for (int i = 0; i < AddRemoveCount; ++i) - list->insertItem(0, newRecyclingListItem(mDataGenerator, i)); - } - } - - resetView(); -} - -void tst_GraphicsViewBenchmark::remove100ItemsFromBeginningOfList_data() -{ - insertListData(); -} - -void tst_GraphicsViewBenchmark::remove100ItemsFromBeginningOfList() -{ - QFETCH(int, listSize); - QFETCH(ListType, listType); - - resetView(); - - if (listType == Simple) { - SimpleList *list = new SimpleList; - fillList(mDataGenerator, listSize, list); - setTestWidget(list, listSize, listType); - QTest::qWait(50); - QBENCHMARK { - for (int i = 0; i < AddRemoveCount; ++i) - delete list->takeItem(0); - } - } else { - ItemRecyclingList *list = new ItemRecyclingList; - fillList(mDataGenerator, listSize, list); - setTestWidget(list, listSize, listType); - QTest::qWait(50); - QBENCHMARK { - for (int i = 0; i < AddRemoveCount; ++i) - delete list->takeItem(0); - } - } - - resetView(); -} - -void tst_GraphicsViewBenchmark::deleteList_data() -{ - insertListData(); - QTest::newRow("Simple list containing 1000 items") << 1000 << Simple; - QTest::newRow("Recycling list containing 1000 items") << 1000 << Recycling; -} - -void tst_GraphicsViewBenchmark::deleteList() -{ - QFETCH(int, listSize); - QFETCH(ListType, listType); - - if (listSize < 500) - return; // Too small to measure. - - QGraphicsWidget *list = 0; - if (listType == Simple) - list = new SimpleList; - else - list = new ItemRecyclingList; - fillList(mDataGenerator, listSize, list); - QTest::qWait(20); - - QBENCHMARK_ONCE { - delete list; - } -} - -void tst_GraphicsViewBenchmark::themeChange_data() -{ - QTest::addColumn<int>("listSize"); - QTest::addColumn<ListType>("listType"); - QTest::addColumn<Theme::Themes>("fromTheme"); - QTest::addColumn<Theme::Themes>("toTheme"); - - QTest::newRow("From Blue to Lime, simple list containing 10 items") << 10 << Simple << Theme::Blue << Theme::Lime; - QTest::newRow("From Lime to Blue, simple list containing 10 items") << 10 << Simple << Theme::Lime << Theme::Blue; - - QTest::newRow("From Blue to Lime, recycling list containing 10 items") << 10 << Recycling << Theme::Blue << Theme::Lime; - QTest::newRow("From Lime to Blue, recycling list containing 10 items") << 10 << Recycling << Theme::Lime << Theme::Blue; - - QTest::newRow("From Blue to Lime, simple list containing 50 items") << 50 << Simple << Theme::Blue << Theme::Lime; - QTest::newRow("From Lime to Blue, simple list containing 50 items") << 50 << Simple << Theme::Lime << Theme::Blue; - - QTest::newRow("From Blue to Lime, recycling list containing 50 items") << 50 << Recycling << Theme::Blue << Theme::Lime; - QTest::newRow("From Lime to Blue, recycling list containing 50 items") << 50 << Recycling << Theme::Lime << Theme::Blue; - - QTest::newRow("From Blue to Lime, simple list containing 500 items") << 500 << Simple << Theme::Blue << Theme::Lime; - QTest::newRow("From Lime to Blue, simple list containing 500 items") << 500 << Simple << Theme::Lime << Theme::Blue; - - QTest::newRow("From Blue to Lime, recycling list containing 500 items") << 500 << Recycling << Theme::Blue << Theme::Lime; - QTest::newRow("From Lime to Blue, recycling list containing 500 items") << 500 << Recycling << Theme::Lime << Theme::Blue; -} - -void tst_GraphicsViewBenchmark::themeChange() -{ - QFETCH(int, listSize); - QFETCH(ListType, listType); - QFETCH(Theme::Themes, fromTheme); - QFETCH(Theme::Themes, toTheme); - - if (fromTheme == toTheme) - qFatal("tst_GraphicsViewBenchmark::themeChange: to and from theme is the same"); - - ensureListSizeAndType(listSize, listType); - ensureTheme(fromTheme); - - QBENCHMARK { - Theme::p()->setTheme(toTheme); - } -} - -static inline QLatin1String stringForTheme(Theme::Themes theme) -{ - if (theme == Theme::Blue) - return QLatin1String("Blue"); - return QLatin1String("Lime"); -} - -static inline QLatin1String stringForListType(tst_GraphicsViewBenchmark::ListType type) -{ - if (type == tst_GraphicsViewBenchmark::Simple) - return QLatin1String("Simple"); - if (type == tst_GraphicsViewBenchmark::Recycling) - return QLatin1String("Recycling"); - return QLatin1String("None"); -} - -static inline QLatin1String stringForScrollStep(tst_GraphicsViewBenchmark::ScrollStep step) -{ - if (step == tst_GraphicsViewBenchmark::Slow) - return QLatin1String("Slow"); - if (step == tst_GraphicsViewBenchmark::Normal) - return QLatin1String("Normal"); - return QLatin1String("Fast"); -} - -static inline QString rowString(int listSize, tst_GraphicsViewBenchmark::ListType listType, - Theme::Themes theme, int toImage, int cache, int angle) -{ - return QString("Items=%1, List=%2, Theme=%3, RenderToImage=%4, Cache=%5, RotAngle=%6") - .arg(QString::number(listSize)).arg(stringForListType(listType)) - .arg(stringForTheme(theme)).arg(QString::number(toImage)) - .arg(QString::number(cache)).arg(QString::number(angle)); -} - -static inline QString rowString(int listSize, tst_GraphicsViewBenchmark::ListType listType, - Theme::Themes theme, int cache, int angle, - tst_GraphicsViewBenchmark::ScrollStep step) -{ - return QString("Items=%1, List=%2, Theme=%3, Cache=%4, RotAngle=%5, Speed=%6") - .arg(QString::number(listSize)).arg(stringForListType(listType)) - .arg(stringForTheme(theme)).arg(QString::number(cache)) - .arg(QString::number(angle)).arg(stringForScrollStep(step)); -} - -void tst_GraphicsViewBenchmark::update_data() -{ - QTest::addColumn<int>("listSize"); - QTest::addColumn<ListType>("listType"); - QTest::addColumn<Theme::Themes>("theme"); - QTest::addColumn<bool>("renderToImage"); - QTest::addColumn<bool>("subtreeCache"); - QTest::addColumn<int>("rotationAngle"); - - QList<ListType> listTypes; - listTypes << Simple << Recycling; - - QList<int> listSizes; - listSizes << 10 << 50 << 500; - - QList<Theme::Themes> themes; - themes << Theme::Blue << Theme::Lime; - - QList<int> rotationAngles; - rotationAngles << 0 << 90; - - // Generate rows: - foreach (ListType listType, listTypes) { - foreach (int listSize, listSizes) { - foreach (int angle, rotationAngles) { - foreach (Theme::Themes theme, themes) { - for (int toImage = 0; toImage < 2; ++toImage) { - for (int cache = 0; cache < 2; ++cache) { - QString string = rowString(listSize, listType, theme, toImage, cache, angle); - QTest::newRow(string.toLatin1()) << listSize << listType << theme << bool(toImage) - << bool(cache) << angle; - } - } - } - } - } - } -} - -void tst_GraphicsViewBenchmark::update() -{ - QFETCH(int, listSize); - QFETCH(ListType, listType); - QFETCH(Theme::Themes, theme); - QFETCH(bool, renderToImage); - QFETCH(bool, subtreeCache); - QFETCH(int, rotationAngle); - - mMainView->viewport()->setUpdatesEnabled(false); - - ensureListSizeAndType(listSize, listType); - ensureTheme(theme); - ensureRotationAngle(rotationAngle); - ensureSubtreeCache(subtreeCache); - ensureImageBasedRendering(renderToImage); - - QEventLoop loop; - QObject::connect(mMainView, SIGNAL(repainted()), &loop, SLOT(quit())); - QTimer::singleShot(4000, &loop, SLOT(quit())); - // Dry run (especially important when cache is enabled). - // NB! setUpdatesEnabled triggers an update(). - mMainView->viewport()->setUpdatesEnabled(true); - loop.exec(QEventLoop::AllEvents | QEventLoop::ExcludeUserInputEvents| QEventLoop::ExcludeSocketNotifiers); - QTest::qWait(50); - - QTimer::singleShot(4000, &loop, SLOT(quit())); - QBENCHMARK { - mMainView->viewport()->update(); - loop.exec(QEventLoop::AllEvents | QEventLoop::ExcludeUserInputEvents| QEventLoop::ExcludeSocketNotifiers); - } -} - -void tst_GraphicsViewBenchmark::scroll_data() -{ - QTest::addColumn<int>("listSize"); - QTest::addColumn<ListType>("listType"); - QTest::addColumn<Theme::Themes>("theme"); - QTest::addColumn<bool>("subtreeCache"); - QTest::addColumn<int>("rotationAngle"); - QTest::addColumn<ScrollStep>("scrollStep"); - - QList<ListType> listTypes; - listTypes << Simple << Recycling; - - QList<int> listSizes; - listSizes << 10 << 50 << 500; - - QList<Theme::Themes> themes; - themes << Theme::Blue << Theme::Lime; - - QList<int> rotationAngles; - rotationAngles << 0 << 90; - - QList<ScrollStep> scrollSteps; - scrollSteps << Slow << Normal << Fast; - - // Generate rows: - foreach (ListType listType, listTypes) { - foreach (int listSize, listSizes) { - foreach (int angle, rotationAngles) { - foreach (ScrollStep step, scrollSteps) { - foreach (Theme::Themes theme, themes) { - for (int cache = 0; cache < 2; ++cache) { - QString string = rowString(listSize, listType, theme, cache, angle, step); - QTest::newRow(string.toLatin1()) << listSize << listType << theme - << bool(cache) << angle << step; - } - } - } - } - } - } -} - -void tst_GraphicsViewBenchmark::scroll() -{ - QFETCH(int, listSize); - QFETCH(ListType, listType); - QFETCH(Theme::Themes, theme); - QFETCH(bool, subtreeCache); - QFETCH(int, rotationAngle); - QFETCH(ScrollStep, scrollStep); - - mMainView->viewport()->setUpdatesEnabled(false); - - ensureListSizeAndType(listSize, listType); - ensureTheme(theme); - ensureRotationAngle(rotationAngle); - ensureSubtreeCache(subtreeCache); - ensureImageBasedRendering(false); - - ScrollBar *sb = 0; - if (listType == Simple) - sb = static_cast<SimpleList *>(mMainView->testWidget())->verticalScrollBar(); - else - sb = static_cast<ItemRecyclingList *>(mMainView->testWidget())->verticalScrollBar(); - const qreal sliderStart = sb->sliderSize() / qreal(2.0); - const qreal sliderTarget = sliderStart + qreal(scrollStep); - sb->setSliderPosition(sliderStart); - - QEventLoop loop; - QObject::connect(mMainView, SIGNAL(repainted()), &loop, SLOT(quit())); - QTimer::singleShot(4000, &loop, SLOT(quit())); - // Dry run (especially important when cache is enabled). - // NB! setUpdatesEnabled triggers an update(). - mMainView->viewport()->setUpdatesEnabled(true); - loop.exec(QEventLoop::AllEvents | QEventLoop::ExcludeUserInputEvents| QEventLoop::ExcludeSocketNotifiers); - QTest::qWait(50); - - QTimer::singleShot(4000, &loop, SLOT(quit())); - QBENCHMARK { - sb->setSliderPosition(sliderTarget); - loop.exec(QEventLoop::AllEvents | QEventLoop::ExcludeUserInputEvents| QEventLoop::ExcludeSocketNotifiers); - } -} - -int main(int argc, char *argv[]) -{ - Settings settings; - if (!readSettingsFromCommandLine(argc, argv, settings)) - return 1; - - // Eat command line arguments. - int aargc = 0; - for (int i = 0; i < argc; ++i) { - if (argv[i]) - ++aargc; - } - char **aargv = new char*[aargc]; - aargc = 0; - for (int i = 0; i < argc; ++i) { - if (argv[i]) - aargv[aargc++] = argv[i]; - } - - QApplication app(aargc, aargv); - - int returnValue = 0; - if (settings.options() & Settings::ManualTest) { - MainView view(settings.options() & Settings::UseOpenGL, settings.options() & Settings::OutputFps); - - DummyDataGenerator dataGenerator; - dataGenerator.Reset(); - - SimpleList *list = new SimpleList; - if (settings.options() & Settings::UseListItemCache) - list->setListItemCaching(true); - else - list->setListItemCaching(false); - - if (settings.listItemCount()) - fillList(dataGenerator, settings.listItemCount(), list); - else - fillList(dataGenerator, 500, list); - - view.setTestWidget(list); - - if ((settings.angle() % 360) != 0) - view.rotateContent(settings.angle()); - - if (settings.size().width() > 0 && settings.size().height() > 0) { - view.resize(settings.size().width(), settings.size().height()); - view.show(); - } else if (QApplication::desktop()->width() < 360 || QApplication::desktop()->height() < 640) { - view.showFullScreen(); - } else { - view.resize(360, 640); - view.show(); - } - returnValue = app.exec(); - } else { - QTEST_DISABLE_KEYPAD_NAVIGATION - tst_GraphicsViewBenchmark tc(&settings); - returnValue = QTest::qExec(&tc, aargc, aargv); - } - - delete [] aargv; - return returnValue; -} - -#include "main.moc" diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_001_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_001_58x58.png Binary files differdeleted file mode 100644 index 525b5559a0..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_001_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_002_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_002_58x58.png Binary files differdeleted file mode 100644 index 3d932985a6..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_002_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_003_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_003_58x58.png Binary files differdeleted file mode 100644 index 556cfcba6a..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_003_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_004_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_004_58x58.png Binary files differdeleted file mode 100644 index 94acf9e669..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_004_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_005_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_005_58x58.png Binary files differdeleted file mode 100644 index ed0c7c42f0..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_005_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_006_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_006_58x58.png Binary files differdeleted file mode 100644 index d4b4dc3a8e..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_006_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_007_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_007_58x58.png Binary files differdeleted file mode 100644 index 0e45d18e4d..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_007_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_008_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_008_58x58.png Binary files differdeleted file mode 100644 index 0c25540ac9..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_008_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_009_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_009_58x58.png Binary files differdeleted file mode 100644 index ce435ea537..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_009_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_010_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_010_58x58.png Binary files differdeleted file mode 100644 index 021db25882..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_man_010_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_001_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_001_58x58.png Binary files differdeleted file mode 100644 index 0051da326f..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_001_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_002_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_002_58x58.png Binary files differdeleted file mode 100644 index e8a946a8ba..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_002_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_003_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_003_58x58.png Binary files differdeleted file mode 100644 index b2bb851f69..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_003_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_004_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_004_58x58.png Binary files differdeleted file mode 100644 index 871c075d05..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_004_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_005_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_005_58x58.png Binary files differdeleted file mode 100644 index d4c18b8bb0..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_picture_005_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_001_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_001_58x58.png Binary files differdeleted file mode 100644 index 10a5947234..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_001_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_002_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_002_58x58.png Binary files differdeleted file mode 100644 index 65b4e03c5b..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_002_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_003_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_003_58x58.png Binary files differdeleted file mode 100644 index 935ec07171..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_003_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_004_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_004_58x58.png Binary files differdeleted file mode 100644 index fbc1a937fd..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_004_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_005_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_005_58x58.png Binary files differdeleted file mode 100644 index af96d3e149..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_005_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_006_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_006_58x58.png Binary files differdeleted file mode 100644 index fb4192d35f..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_006_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_007_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_007_58x58.png Binary files differdeleted file mode 100644 index f5d6dea0b0..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_007_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_008_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_008_58x58.png Binary files differdeleted file mode 100644 index d08b8dc364..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_008_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_009_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_009_58x58.png Binary files differdeleted file mode 100644 index 768b97de6e..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_009_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_010_58x58.png b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_010_58x58.png Binary files differdeleted file mode 100644 index d1fe28e61e..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/avatars/avatar_woman_010_58x58.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_background_360x640px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_background_360x640px.svg deleted file mode 100644 index 1552bafa17..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_background_360x640px.svg +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="360px" height="640px" viewBox="0 0 360 640" enable-background="new 0 0 360 640" xml:space="preserve"> -<g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-3.5137" y1="2.1079" x2="363.6142" y2="637.9921"> - <stop offset="0.1538" style="stop-color:#2BD5FF"/> - <stop offset="0.4396" style="stop-color:#80E6FF"/> - <stop offset="0.7253" style="stop-color:#29CAF2"/> - </linearGradient> - <rect x="0.05" y="0.05" fill="url(#SVGID_1_)" width="360" height="640"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_background_horisontal_640x360px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_background_horisontal_640x360px.svg deleted file mode 100644 index 5589110950..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_background_horisontal_640x360px.svg +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="640px" height="360px" viewBox="0 0 640 360" enable-background="new 0 0 640 360" xml:space="preserve"> -<g> - <rect x="-0.5" y="-0.5" fill="#FFFFFF" width="640" height="360"/> - - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="1580.5244" y1="-287.7886" x2="1038.1285" y2="-600.9408" gradientTransform="matrix(0 -1 -1 0 -124.8652 1488.8262)"> - <stop offset="0.2527" style="stop-color:#2BD5FF"/> - <stop offset="0.5989" style="stop-color:#80E6FF"/> - <stop offset="0.9396" style="stop-color:#29CAF2"/> - </linearGradient> - <rect x="1.5" y="1.5" fill="url(#SVGID_1_)" width="636" height="356"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_default_icon_52x52px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_default_icon_52x52px.svg deleted file mode 100644 index 665675b1e8..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_default_icon_52x52px.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="52px" height="52px" viewBox="0 0 52 52" enable-background="new 0 0 52 52" xml:space="preserve"> -<g> - <path fill="#29CAF2" d="M52.07,48.77c0,1.79-1.46,3.25-3.25,3.25H3.32c-1.79,0-3.25-1.46-3.25-3.25V3.27 - c0-1.79,1.46-3.25,3.25-3.25h45.5c1.79,0,3.25,1.46,3.25,3.25V48.77z"/> - <g> - <rect x="3.37" y="3.69" fill="#2BD5FF" width="44.69" height="44.69"/> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="6.8594" y1="27.8086" x2="48.0244" y2="27.8086"> - <stop offset="0.1538" style="stop-color:#27C0E6"/> - <stop offset="0.4396" style="stop-color:#25B7DB"/> - <stop offset="0.7253" style="stop-color:#22A5C4"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M47.95,48.31c0.12-3.35,0.15-8.17-0.43-9.12c-2.87-4.64-11.55-3.61-14.02-3.22 - c0-1.17-0.01-2.19-0.01-2.96c0.5-0.52,0.96-1.11,1.39-1.76l0.06,0.19c3.57,0.51,4.02-11.16,4.02-11.16 - C39.21,3.66,28.83,7.47,27.18,8.18c-3.05-0.78-10.3-1.3-10.09,11.2c0,0-0.53,11.06,3.52,11.38c0.5,0.85,1.07,1.6,1.69,2.25 - c-0.01,0.72-0.04,1.65-0.08,2.71c-5.32-0.36-14.73-0.08-15.35,6.39c-0.06,0.62,0.12,3.69,0.28,6.2L47.95,48.31z"/> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_list_divider_360x76px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_list_divider_360x76px.svg deleted file mode 100644 index db9fc7af33..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_list_divider_360x76px.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="360px" height="76px" viewBox="0 0 360 76" enable-background="new 0 0 360 76" xml:space="preserve"> -<rect x="0.01" y="0.35" opacity="0.2" fill="#FFFFFF" width="360" height="76"/> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_list_highlighter_360x76px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_list_highlighter_360x76px.svg deleted file mode 100644 index dae2bd4842..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_list_highlighter_360x76px.svg +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="360px" height="76px" viewBox="0 0 360 76" enable-background="new 0 0 360 76" xml:space="preserve"> -<rect x="0.02" y="0.05" opacity="0.4" fill="#FFFFFF" fill-opacity="0.8" width="360" height="76"/> -<g> - <path fill="#FFFFFF" d="M360.02,0.05v76h-360v-76H360.02 M359.02,1.05h-358v74h358V1.05L359.02,1.05z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_status_idle_33x33px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_status_idle_33x33px.svg deleted file mode 100644 index fe12e782a6..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_status_idle_33x33px.svg +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="33px" height="33px" viewBox="0 0 33 33" enable-background="new 0 0 33 33" xml:space="preserve"> -<g> - <path fill="#29CAF2" d="M33.03,16.58c0,9.11-7.39,16.5-16.5,16.5c-9.12,0-16.5-7.39-16.5-16.5c0-9.11,7.38-16.5,16.5-16.5 - C25.63,0.08,33.03,7.47,33.03,16.58z"/> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="16.5249" y1="29.1172" x2="16.5249" y2="4.0435"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M16.52,29.12c-6.91,0-12.54-5.62-12.54-12.54c0-6.91,5.62-12.54,12.54-12.54 - s12.54,5.62,12.54,12.54C29.06,23.49,23.44,29.12,16.52,29.12L16.52,29.12z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="6.875" y1="9.8242" x2="26.1715" y2="23.3358"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_2_)" cx="16.52" cy="16.58" r="11.78"/> - <g> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="8.6343" y1="11.1309" x2="24.2014" y2="22.0311"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M16.42,26.08c-5.24,0-9.51-4.26-9.51-9.5c0-5.24,4.26-9.51,9.51-9.51c5.24,0,9.5,4.26,9.5,9.51 - C25.92,21.82,21.66,26.08,16.42,26.08L16.42,26.08z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="23.0186" y1="22.1201" x2="9.8155" y2="11.0414"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_4_)" cx="16.42" cy="16.58" r="8.62"/> - <path fill="#FF901F" d="M16.42,24.06c-4.12,0-7.48-3.35-7.48-7.47c0-4.12,3.36-7.48,7.48-7.48c4.12,0,7.47,3.36,7.47,7.48 - C23.89,20.7,20.54,24.06,16.42,24.06L16.42,24.06z"/> - <g> - <path fill="#FFD06B" d="M14.09,14.25c2.1-2.1,5.31-2.41,7.75-0.94c-0.26-0.43-0.57-0.84-0.94-1.21c-2.47-2.47-6.49-2.47-8.96,0 - c-2.47,2.47-2.47,6.49,0,8.96c0.37,0.37,0.78,0.68,1.21,0.94C11.68,19.56,11.99,16.35,14.09,14.25z"/> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-122.4058" y1="66.873" x2="-127.2734" y2="58.442" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#FF901F"/> - <stop offset="1" style="stop-color:#FFB81F"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M20.9,21.06c2.1-2.1,2.41-5.31,0.94-7.75c-2.43-1.47-5.65-1.16-7.75,0.94 - c-2.1,2.1-2.41,5.31-0.94,7.75C15.58,23.47,18.8,23.16,20.9,21.06z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_status_offline_33x33px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_status_offline_33x33px.svg deleted file mode 100644 index 0c973f1bc9..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_status_offline_33x33px.svg +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="33px" height="33px" viewBox="0 0 33 33" enable-background="new 0 0 33 33" xml:space="preserve"> -<g> - <circle fill="#29CAF2" cx="16.46" cy="16.52" r="16.5"/> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="16.4624" y1="29.0566" x2="16.4624" y2="3.9829"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M16.46,29.06c-6.91,0-12.54-5.62-12.54-12.54c0-6.91,5.62-12.54,12.54-12.54S29,9.61,29,16.52 - C29,23.43,23.37,29.06,16.46,29.06L16.46,29.06z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="6.814" y1="9.7637" x2="26.1096" y2="23.2746"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_2_)" d="M28.24,16.52c0,6.51-5.27,11.78-11.78,11.78c-6.5,0-11.78-5.27-11.78-11.78 - c0-6.5,5.27-11.78,11.78-11.78C22.97,4.74,28.24,10.02,28.24,16.52z"/> - <g> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="8.5713" y1="11.0693" x2="24.1392" y2="21.9701"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M16.36,26.02c-5.24,0-9.51-4.26-9.51-9.5c0-5.24,4.26-9.51,9.51-9.51c5.24,0,9.5,4.27,9.5,9.51 - C25.86,21.76,21.6,26.02,16.36,26.02L16.36,26.02z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="22.9561" y1="22.0576" x2="9.7545" y2="10.9802"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_4_)" cx="16.36" cy="16.52" r="8.62"/> - <path fill="#BD0700" d="M16.36,24c-4.12,0-7.48-3.35-7.48-7.48c0-4.12,3.36-7.48,7.48-7.48c4.12,0,7.47,3.36,7.47,7.48 - C23.83,20.64,20.48,24,16.36,24L16.36,24z"/> - <g> - <path fill="#F25757" d="M14.03,14.19c2.1-2.1,5.31-2.41,7.75-0.94c-0.26-0.43-0.57-0.84-0.94-1.21c-2.47-2.47-6.49-2.47-8.96,0 - c-2.47,2.47-2.47,6.49,0,8.96c0.37,0.37,0.78,0.68,1.21,0.94C11.62,19.5,11.93,16.29,14.03,14.19z"/> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-122.4668" y1="66.8125" x2="-127.3345" y2="58.3814" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#BD0700"/> - <stop offset="1" style="stop-color:#E35D58"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M20.83,21c2.1-2.1,2.41-5.31,0.94-7.75c-2.43-1.47-5.65-1.16-7.75,0.94 - c-2.1,2.1-2.41,5.31-0.94,7.75C15.52,23.4,18.74,23.1,20.83,21z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_status_online_33x33px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_status_online_33x33px.svg deleted file mode 100644 index fcb434afda..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_contact_status_online_33x33px.svg +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="33px" height="33px" viewBox="0 0 33 33" enable-background="new 0 0 33 33" xml:space="preserve"> -<g> - <path fill="#29CAF2" d="M32.96,16.59c0,9.11-7.39,16.5-16.5,16.5c-9.12,0-16.5-7.39-16.5-16.5c0-9.11,7.38-16.5,16.5-16.5 - C25.57,0.09,32.96,7.47,32.96,16.59z"/> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="16.4624" y1="29.123" x2="16.4624" y2="4.0493"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M16.46,29.12c-6.91,0-12.54-5.62-12.54-12.54c0-6.91,5.62-12.54,12.54-12.54S29,9.67,29,16.58 - C29,23.5,23.37,29.12,16.46,29.12L16.46,29.12z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="6.813" y1="9.8301" x2="26.1095" y2="23.3416"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_2_)" d="M28.24,16.58c0,6.51-5.27,11.78-11.78,11.78S4.68,23.09,4.68,16.58c0-6.5,5.27-11.78,11.78-11.78 - S28.24,10.08,28.24,16.58z"/> - <g> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="8.5723" y1="11.1362" x2="24.1386" y2="22.0359"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M16.36,26.09c-5.24,0-9.51-4.26-9.51-9.5c0-5.24,4.26-9.51,9.51-9.51c5.24,0,9.5,4.27,9.5,9.51 - C25.86,21.83,21.6,26.09,16.36,26.09L16.36,26.09z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="22.9561" y1="22.125" x2="9.753" y2="11.0463"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_4_)" cx="16.35" cy="16.58" r="8.62"/> - <path fill="#09B300" d="M16.36,24.06c-4.12,0-7.48-3.35-7.48-7.48c0-4.12,3.36-7.48,7.48-7.48c4.12,0,7.47,3.36,7.47,7.48 - C23.83,20.71,20.48,24.06,16.36,24.06L16.36,24.06z"/> - <g> - <path fill="#57EB51" d="M14.03,14.25c2.1-2.1,5.31-2.41,7.75-0.94c-0.26-0.43-0.57-0.84-0.94-1.21c-2.47-2.47-6.49-2.47-8.96,0 - c-2.47,2.47-2.47,6.49,0,8.96c0.37,0.37,0.78,0.68,1.21,0.94C11.62,19.57,11.93,16.35,14.03,14.25z"/> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-122.4678" y1="66.8789" x2="-127.3354" y2="58.4478" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#09AA00"/> - <stop offset="1" style="stop-color:#4DCC46"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M20.83,21.06c2.1-2.1,2.41-5.31,0.94-7.75c-2.43-1.47-5.65-1.16-7.75,0.94 - c-2.1,2.1-2.41,5.31-0.94,7.75C15.52,23.47,18.73,23.16,20.83,21.06z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_scroll_16x80px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_scroll_16x80px.svg deleted file mode 100644 index 897be81dc5..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_scroll_16x80px.svg +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="16px" height="80px" viewBox="0 0 16 80" enable-background="new 0 0 16 80" xml:space="preserve"> -<g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="0.1045" y1="40.0293" x2="16.1045" y2="40.0293"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M12.22,80.03c2.15,0,3.89-1.74,3.89-3.88V3.91c0-2.14-1.74-3.88-3.89-3.88H3.99 - c-2.15,0-3.88,1.74-3.88,3.88c0,0,1.94,16.34,1.94,36.4c0,20.06-1.94,35.84-1.94,35.84c0,2.14,1.74,3.88,3.88,3.88H12.22z"/> - <path fill="#29CAF2" d="M12.22,78.09H3.99c-1.04,0-1.89-0.82-1.94-1.84c0.19-1.62,1.94-16.98,1.94-35.94 - c0-18.96-1.75-34.84-1.94-36.49c0.05-1.03,0.9-1.85,1.94-1.85h8.23c1.04,0,1.89,0.82,1.94,1.84c-0.19,1.62-0.19,70.78,0,72.42 - C14.11,77.27,13.26,78.09,12.22,78.09L12.22,78.09z"/> - <g> - <g> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="10.7334" y1="51.3867" x2="7.417" y2="45.6425"> - <stop offset="0" style="stop-color:#E6E6E6"/> - <stop offset="0.6978" style="stop-color:#BFBFBF"/> - <stop offset="1" style="stop-color:#F2F2F2"/> - </linearGradient> - <polygon fill="url(#SVGID_2_)" points="7.42,51.39 5.76,48.52 7.42,45.64 10.73,45.64 12.39,48.52 10.73,51.39 "/> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="10.7344" y1="42.9014" x2="7.4175" y2="37.1563"> - <stop offset="0" style="stop-color:#E6E6E6"/> - <stop offset="0.6978" style="stop-color:#BFBFBF"/> - <stop offset="1" style="stop-color:#F2F2F2"/> - </linearGradient> - <polygon fill="url(#SVGID_3_)" points="7.42,42.9 5.76,40.03 7.42,37.16 10.73,37.16 12.39,40.03 10.73,42.9 "/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="10.7334" y1="34.4131" x2="7.4175" y2="28.6697"> - <stop offset="0" style="stop-color:#E6E6E6"/> - <stop offset="0.6978" style="stop-color:#BFBFBF"/> - <stop offset="1" style="stop-color:#F2F2F2"/> - </linearGradient> - <polygon fill="url(#SVGID_4_)" points="7.42,34.41 5.76,31.54 7.42,28.67 10.73,28.67 12.39,31.54 10.73,34.41 "/> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_scrollbar_7x14px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_scrollbar_7x14px.svg deleted file mode 100644 index 3baec2f4b6..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_scrollbar_7x14px.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="7px" height="14px" viewBox="0 0 7 14" enable-background="new 0 0 7 14" xml:space="preserve"> -<rect x="0.01" y="0.01" fill="#2BD5FF" width="7" height="14"/> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_status_field_left_14x24px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_status_field_left_14x24px.svg deleted file mode 100644 index dd6fb70a8d..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_status_field_left_14x24px.svg +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="14px" height="24px" viewBox="0 0 14 24" enable-background="new 0 0 14 24" xml:space="preserve"> -<g> - <path fill="none" d="M4.92,21.95c-0.28-0.33-0.53-0.67-0.77-1.03C4.39,21.28,4.64,21.63,4.92,21.95z"/> - <path fill="none" d="M2.11,15.42c-0.05-0.46-0.09-0.92-0.09-1.39C2.02,14.5,2.06,14.97,2.11,15.42z"/> - <path fill="none" d="M4.08,20.82c-0.23-0.35-0.45-0.71-0.64-1.08C3,18.9,2.65,18.01,2.41,17.07C2.76,18.43,3.33,19.7,4.08,20.82z" - /> - <path fill="none" d="M2.37,16.92c-0.09-0.38-0.16-0.77-0.22-1.17C2.21,16.14,2.28,16.54,2.37,16.92z"/> - <path fill="#29CAF2" d="M4.13,20.82c-0.74-1.13-1.3-2.39-1.64-3.75c-0.01-0.05-0.02-0.1-0.04-0.16c-0.09-0.38-0.16-0.77-0.22-1.17 - c-0.01-0.11-0.03-0.22-0.04-0.33c-0.05-0.46-0.08-0.92-0.08-1.39c0-6.63,5.57-12,11.86-12l0,0v-2h-2.61 - c-6.29,0-11.39,5.37-11.39,12c0,4.13,1.98,7.76,4.99,9.92c-0.27-0.33-0.52-0.67-0.76-1.03C4.17,20.89,4.15,20.86,4.13,20.82z"/> - <path fill="#80E6FF" d="M10.17,22.03c-2.5,0-4.8-0.86-6.68-2.29c0.19,0.37,0.41,0.73,0.63,1.08c0.02,0.03,0.04,0.07,0.07,0.1 - c0.24,0.36,0.49,0.7,0.76,1.03c1.82,1.31,4.03,2.08,6.4,2.08h2.61v-2H10.17z"/> - <path fill="#80E6FF" d="M4.08,20.82c0.02,0.04,0.04,0.07,0.07,0.1C4.12,20.89,4.1,20.86,4.08,20.82z"/> - <path fill="#2BD5FF" d="M13.97,2.03c-6.29,0-11.86,5.37-11.86,12c0,0.47,0.03,0.93,0.08,1.39c0.01,0.11,0.03,0.22,0.04,0.33 - c0.06,0.4,0.12,0.79,0.22,1.17c0.01,0.05,0.02,0.1,0.04,0.16c0.24,0.94,0.58,1.83,1.01,2.67c1.88,1.44,4.18,2.29,6.68,2.29h3.8 - V2.03L13.97,2.03z"/> - <path fill="#2BD5FF" d="M2.41,17.07c-0.01-0.05-0.02-0.1-0.04-0.16C2.39,16.97,2.4,17.02,2.41,17.07z"/> - <path fill="#2BD5FF" d="M2.15,15.75c-0.01-0.11-0.03-0.22-0.04-0.33C2.12,15.53,2.14,15.64,2.15,15.75z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_status_field_middle_14x24px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_status_field_middle_14x24px.svg deleted file mode 100644 index cabf9285a7..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_status_field_middle_14x24px.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="10px" height="24px" viewBox="0 0 10 24" enable-background="new 0 0 10 24" xml:space="preserve"> -<g> - <rect y="1" fill="#2BD5FF" width="10" height="22"/> - <rect fill="#29CAF2" width="10" height="2"/> - <rect y="22" fill="#80E6FF" width="10" height="2"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_status_field_right_14x24px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_status_field_right_14x24px.svg deleted file mode 100644 index f3a795b88d..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_status_field_right_14x24px.svg +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="14px" height="24px" viewBox="0 0 14 24" enable-background="new 0 0 14 24" xml:space="preserve"> -<g> - <path fill="#29CAF2" d="M4.59,2C7,2,9.25,2.77,11.1,4.08C8.98,1.58,5.88,0,2.42,0H0v2H4.59z"/> - <path fill="#80E6FF" d="M11.6,4.71c0.76,1.6,1.2,3.39,1.2,5.29c0,6.63-5.19,12-11.59,12H0v2h2.41C8.82,24,14,18.63,14,12 - C14,9.25,13.1,6.73,11.6,4.71z"/> - <path fill="#2BD5FF" d="M0,2v20h1.21c6.4,0,11.59-5.37,11.59-12c0-1.9-0.44-3.69-1.2-5.29c-0.16-0.22-0.32-0.43-0.5-0.64 - C9.25,2.77,7,2,4.59,2H0z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_topbar_356x96px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_topbar_356x96px.svg deleted file mode 100644 index a0efd347fb..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_topbar_356x96px.svg +++ /dev/null @@ -1,2007 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="356px" height="96px" viewBox="0 0 356 96" enable-background="new 0 0 356 96" xml:space="preserve"> -<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-182.1821" y1="-52.7012" x2="-115.6673" y2="130.047" gradientTransform="matrix(-1 0 0 1 29.2188 0)"> - <stop offset="0" style="stop-color:#2BD5FF"/> - <stop offset="0.3516" style="stop-color:#80E6FF"/> - <stop offset="0.9176" style="stop-color:#28C4EB"/> -</linearGradient> -<path fill="url(#SVGID_1_)" d="M356.19,76.95V0H0.24v77.4c0,0,82.53,12.07,184.11,12.07C184.34,89.46,277.67,90.39,356.19,76.95z"/> -<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-327.1934" y1="86.1738" x2="28.8057" y2="86.1738" gradientTransform="matrix(-1 0 0 1 29.2188 0)"> - <stop offset="0" style="stop-color:#2BD5FF"/> - <stop offset="0.9176" style="stop-color:#28C6ED"/> -</linearGradient> -<path fill="url(#SVGID_2_)" d="M184.54,89.13C82.96,89.13,0.43,77.06,0.43,77.06l-0.02,4.56c0,0,82.53,14.04,184.11,14.04h171.39 - l0.1-18.98C277.57,90.05,184.54,89.13,184.54,89.13z"/> -<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-365.623" y1="-266.3726" x2="-362.1982" y2="-260.4406" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_3_)" d="M353.52,73.18c-0.71-1-1.42-2.02-2.14-3.03c-1.43,0.19-2.85,0.38-4.27,0.56 - c-0.71,1.21-1.42,2.43-2.13,3.65C347.82,73.98,350.67,73.58,353.52,73.18z"/> -<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-365.6025" y1="-276.23" x2="-361.4175" y2="-268.9812" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_4_)" d="M351.38,66.97c0.71-1.2,1.42-2.4,2.14-3.59c-0.71-1.02-1.42-2.04-2.14-3.07 - c-1.42,0.16-2.85,0.32-4.28,0.48c-0.71,1.2-1.42,2.4-2.14,3.61c0.71,1.04,1.43,2.08,2.14,3.11 - C348.53,67.33,349.95,67.15,351.38,66.97z"/> -<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-365.5835" y1="-286.0889" x2="-361.4316" y2="-278.8976" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_5_)" d="M351.38,57.12c0.71-1.19,1.43-2.37,2.14-3.55c-0.71-1.03-1.43-2.07-2.14-3.11 - c-1.43,0.14-2.85,0.27-4.28,0.4c-0.71,1.18-1.43,2.37-2.14,3.57c0.71,1.05,1.43,2.1,2.14,3.15 - C348.53,57.43,349.95,57.27,351.38,57.12z"/> -<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-365.5649" y1="-295.9473" x2="-361.4463" y2="-288.8135" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_6_)" d="M351.38,47.27c0.71-1.17,1.42-2.34,2.14-3.51c-0.71-1.04-1.43-2.1-2.14-3.15 - c-1.43,0.11-2.85,0.22-4.28,0.33c-0.71,1.17-1.43,2.35-2.14,3.53c0.71,1.07,1.43,2.13,2.14,3.18 - C348.52,47.52,349.95,47.4,351.38,47.27z"/> -<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-365.5439" y1="-305.8047" x2="-361.4585" y2="-298.7285" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_7_)" d="M351.37,37.43c0.71-1.16,1.43-2.32,2.14-3.47c-0.71-1.06-1.43-2.12-2.14-3.19 - c-1.43,0.08-2.86,0.17-4.29,0.25c-0.71,1.16-1.43,2.32-2.14,3.49c0.72,1.08,1.43,2.16,2.14,3.23 - C348.52,37.63,349.95,37.52,351.37,37.43z"/> -<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-365.5264" y1="-315.6636" x2="-361.4736" y2="-308.644" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_8_)" d="M351.37,27.58c0.71-1.15,1.43-2.29,2.14-3.43c-0.71-1.07-1.43-2.15-2.14-3.23 - c-1.43,0.06-2.86,0.11-4.29,0.17c-0.71,1.15-1.43,2.3-2.14,3.45c0.72,1.09,1.43,2.18,2.15,3.26 - C348.51,27.72,349.94,27.65,351.37,27.58z"/> -<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-365.5044" y1="-325.519" x2="-361.4858" y2="-318.5587" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_9_)" d="M351.37,17.73c0.71-1.14,1.43-2.27,2.14-3.39c-0.72-1.08-1.43-2.18-2.15-3.27 - c-1.43,0.03-2.86,0.06-4.29,0.09c-0.71,1.13-1.43,2.27-2.14,3.41c0.72,1.11,1.43,2.21,2.15,3.3 - C348.51,17.82,349.94,17.78,351.37,17.73z"/> -<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-365.4863" y1="-335.3774" x2="-361.501" y2="-328.4746" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_10_)" d="M351.37,7.88c0.72-1.12,1.43-2.23,2.15-3.35c-0.72-1.1-1.43-2.2-2.15-3.31 - c-1.43,0-2.86,0.01-4.3,0.01c-0.71,1.12-1.43,2.25-2.15,3.37c0.72,1.12,1.43,2.23,2.15,3.34C348.51,7.92,349.94,7.9,351.37,7.88z"/> -<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="-354.4824" y1="-269.5742" x2="-350.2368" y2="-262.2206" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_11_)" d="M340.23,73.74c0.71-1.22,1.42-2.45,2.13-3.66c-0.72-1.04-1.43-2.09-2.14-3.14 - c-1.42,0.17-2.85,0.33-4.28,0.49c-0.71,1.22-1.42,2.45-2.13,3.68c0.71,1.06,1.43,2.12,2.14,3.17 - C337.38,74.1,338.8,73.92,340.23,73.74z"/> -<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="-354.4536" y1="-279.6323" x2="-350.2397" y2="-272.3337" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_12_)" d="M340.22,63.69c0.71-1.21,1.42-2.42,2.13-3.62c-0.71-1.05-1.43-2.11-2.14-3.17 - c-1.43,0.14-2.85,0.28-4.28,0.42c-0.71,1.21-1.43,2.42-2.14,3.64c0.71,1.07,1.43,2.14,2.14,3.21C337.37,64,338.8,63.85,340.22,63.69 - z"/> -<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="-354.4287" y1="-289.6929" x2="-350.2451" y2="-282.4467" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_13_)" d="M340.21,53.64c0.71-1.2,1.43-2.39,2.14-3.59c-0.71-1.06-1.43-2.14-2.14-3.21 - c-1.43,0.12-2.86,0.23-4.29,0.34c-0.71,1.2-1.42,2.4-2.14,3.6c0.71,1.08,1.43,2.17,2.15,3.24 - C337.36,53.91,338.78,53.78,340.21,53.64z"/> -<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="-354.4023" y1="-299.7485" x2="-350.2505" y2="-292.5573" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_14_)" d="M340.2,43.59c0.71-1.19,1.43-2.37,2.14-3.55c-0.72-1.08-1.43-2.16-2.15-3.25 - c-1.43,0.09-2.86,0.18-4.29,0.27c-0.71,1.19-1.43,2.37-2.14,3.57c0.71,1.1,1.43,2.19,2.15,3.28 - C337.34,43.81,338.77,43.7,340.2,43.59z"/> -<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="-354.376" y1="-309.8076" x2="-350.2554" y2="-302.6705" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_15_)" d="M340.19,33.54c0.71-1.17,1.43-2.34,2.14-3.51c-0.72-1.09-1.43-2.19-2.15-3.29 - c-1.43,0.07-2.86,0.13-4.29,0.2c-0.71,1.17-1.43,2.35-2.14,3.53c0.72,1.11,1.43,2.21,2.15,3.31 - C337.33,33.71,338.76,33.63,340.19,33.54z"/> -<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="-354.3486" y1="-319.8672" x2="-350.2593" y2="-312.7842" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_16_)" d="M340.18,23.5c0.71-1.16,1.43-2.32,2.14-3.47c-0.71-1.1-1.43-2.21-2.15-3.32 - c-1.43,0.04-2.86,0.08-4.29,0.12c-0.71,1.16-1.43,2.33-2.14,3.5c0.72,1.12,1.43,2.24,2.15,3.35 - C337.32,23.61,338.75,23.55,340.18,23.5z"/> -<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="-354.3242" y1="-329.9253" x2="-350.2656" y2="-322.8956" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_17_)" d="M340.17,13.45c0.71-1.15,1.43-2.29,2.15-3.43c-0.72-1.12-1.44-2.24-2.15-3.36 - c-1.43,0.02-2.86,0.03-4.29,0.05c-0.71,1.15-1.43,2.3-2.14,3.46c0.72,1.13,1.43,2.26,2.15,3.39 - C337.31,13.51,338.74,13.48,340.17,13.45z"/> -<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="-353.3623" y1="-338.3662" x2="-350.2695" y2="-333.0094" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_18_)" d="M333.71,0c0.72,1.15,1.43,2.29,2.15,3.42c1.43-0.01,2.86-0.01,4.3-0.02 - c0.71-1.14,1.43-2.27,2.15-3.4C339.44,0,336.58,0,333.71,0z"/> -<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="-343.7051" y1="-263.6235" x2="-340.2715" y2="-257.6764" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_19_)" d="M331.57,76.08c-0.71-1.06-1.43-2.13-2.14-3.2c-1.43,0.17-2.86,0.33-4.28,0.49 - c-0.71,1.24-1.42,2.49-2.13,3.73C325.87,76.78,328.72,76.43,331.57,76.08z"/> -<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="-343.6792" y1="-273.8569" x2="-339.4126" y2="-266.4669" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_20_)" d="M329.42,69.57c0.71-1.23,1.42-2.46,2.13-3.69c-0.71-1.07-1.43-2.15-2.15-3.23 - c-1.43,0.14-2.86,0.28-4.28,0.42c-0.71,1.23-1.43,2.46-2.14,3.7c0.72,1.09,1.43,2.18,2.15,3.27C326.57,69.89,328,69.73,329.42,69.57 - z"/> -<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="-343.6494" y1="-284.0972" x2="-339.4106" y2="-276.7554" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_21_)" d="M329.41,59.34c0.71-1.22,1.42-2.44,2.14-3.65c-0.72-1.09-1.43-2.18-2.15-3.27 - c-1.43,0.12-2.86,0.24-4.29,0.35c-0.71,1.22-1.42,2.44-2.14,3.67c0.72,1.1,1.43,2.21,2.15,3.3 - C326.55,59.61,327.98,59.48,329.41,59.34z"/> -<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="-343.6177" y1="-294.3369" x2="-339.4092" y2="-287.0476" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_22_)" d="M329.39,49.11c0.71-1.21,1.42-2.42,2.14-3.62c-0.72-1.1-1.43-2.2-2.15-3.3 - c-1.43,0.1-2.86,0.19-4.29,0.28c-0.71,1.21-1.42,2.42-2.14,3.63c0.72,1.11,1.43,2.23,2.15,3.33 - C326.53,49.33,327.96,49.22,329.39,49.11z"/> -<linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="-343.5854" y1="-304.5762" x2="-339.4058" y2="-297.3367" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_23_)" d="M329.38,38.88c0.71-1.2,1.43-2.39,2.14-3.58c-0.72-1.11-1.43-2.22-2.15-3.34 - c-1.43,0.07-2.86,0.14-4.29,0.21c-0.71,1.2-1.42,2.4-2.14,3.6c0.72,1.13,1.43,2.25,2.15,3.37 - C326.52,39.06,327.95,38.97,329.38,38.88z"/> -<linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="-343.5562" y1="-314.8164" x2="-339.4053" y2="-307.6269" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_24_)" d="M329.36,28.65c0.71-1.19,1.43-2.37,2.14-3.55c-0.72-1.12-1.43-2.24-2.15-3.37 - c-1.43,0.05-2.86,0.1-4.29,0.15c-0.71,1.19-1.43,2.38-2.14,3.57c0.72,1.14,1.43,2.27,2.15,3.4 - C326.5,28.78,327.93,28.71,329.36,28.65z"/> -<linearGradient id="SVGID_25_" gradientUnits="userSpaceOnUse" x1="-343.5239" y1="-325.0557" x2="-339.4028" y2="-317.9177" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_25_)" d="M329.34,18.42c0.71-1.17,1.43-2.34,2.14-3.51c-0.72-1.13-1.44-2.27-2.15-3.41 - c-1.43,0.03-2.86,0.05-4.29,0.08c-0.71,1.17-1.43,2.35-2.14,3.53c0.72,1.15,1.44,2.29,2.15,3.44 - C326.48,18.5,327.91,18.46,329.34,18.42z"/> -<linearGradient id="SVGID_26_" gradientUnits="userSpaceOnUse" x1="-343.4932" y1="-335.2979" x2="-339.4009" y2="-328.2098" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_26_)" d="M329.33,8.19c0.71-1.16,1.43-2.32,2.14-3.48c-0.72-1.14-1.44-2.29-2.15-3.45 - c-1.43,0-2.87,0.01-4.3,0.01c-0.71,1.16-1.43,2.33-2.14,3.5c0.72,1.16,1.44,2.32,2.15,3.47C326.46,8.22,327.89,8.21,329.33,8.19z"/> -<linearGradient id="SVGID_27_" gradientUnits="userSpaceOnUse" x1="-332.5376" y1="-267.1743" x2="-328.2202" y2="-259.6964" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_27_)" d="M318.26,76.36c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.09-1.43-2.19-2.15-3.29 - c-1.43,0.14-2.86,0.28-4.29,0.42c-0.71,1.25-1.42,2.5-2.14,3.76c0.72,1.11,1.44,2.22,2.15,3.32 - C315.4,76.67,316.83,76.52,318.26,76.36z"/> -<linearGradient id="SVGID_28_" gradientUnits="userSpaceOnUse" x1="-332.502" y1="-277.5903" x2="-328.2109" y2="-270.1581" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_28_)" d="M318.24,65.96c0.71-1.24,1.42-2.48,2.14-3.71c-0.71-1.1-1.43-2.21-2.15-3.32 - c-1.43,0.12-2.86,0.24-4.29,0.36c-0.71,1.24-1.42,2.48-2.14,3.73c0.72,1.12,1.44,2.24,2.15,3.36 - C315.38,66.23,316.81,66.09,318.24,65.96z"/> -<linearGradient id="SVGID_29_" gradientUnits="userSpaceOnUse" x1="-332.4697" y1="-288.0034" x2="-328.2061" y2="-280.6185" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_29_)" d="M318.22,55.55c0.71-1.23,1.42-2.46,2.14-3.68c-0.72-1.12-1.44-2.23-2.15-3.36 - c-1.43,0.1-2.86,0.2-4.29,0.3c-0.71,1.23-1.43,2.46-2.14,3.7c0.72,1.13,1.44,2.26,2.15,3.39C315.36,55.78,316.79,55.66,318.22,55.55 - z"/> -<linearGradient id="SVGID_30_" gradientUnits="userSpaceOnUse" x1="-332.4331" y1="-298.416" x2="-328.1973" y2="-291.0793" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_30_)" d="M318.2,45.14c0.71-1.22,1.42-2.44,2.14-3.65c-0.72-1.13-1.43-2.26-2.15-3.39 - c-1.43,0.08-2.86,0.16-4.29,0.23c-0.71,1.22-1.42,2.44-2.14,3.67c0.72,1.14,1.44,2.28,2.15,3.42 - C315.34,45.33,316.77,45.24,318.2,45.14z"/> -<linearGradient id="SVGID_31_" gradientUnits="userSpaceOnUse" x1="-332.3999" y1="-308.8311" x2="-328.1904" y2="-301.54" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_31_)" d="M318.18,34.74c0.71-1.21,1.43-2.42,2.14-3.62c-0.72-1.14-1.44-2.28-2.15-3.42 - c-1.43,0.06-2.86,0.11-4.29,0.17c-0.71,1.21-1.43,2.42-2.14,3.63c0.72,1.16,1.44,2.3,2.15,3.45 - C315.31,34.88,316.75,34.81,318.18,34.74z"/> -<linearGradient id="SVGID_32_" gradientUnits="userSpaceOnUse" x1="-332.3647" y1="-319.2437" x2="-328.1831" y2="-312.0008" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_32_)" d="M318.15,24.33c0.71-1.2,1.43-2.39,2.14-3.58c-0.72-1.15-1.44-2.3-2.15-3.45 - c-1.43,0.04-2.86,0.07-4.29,0.11c-0.71,1.2-1.43,2.4-2.14,3.6c0.72,1.16,1.44,2.32,2.15,3.48 - C315.29,24.43,316.72,24.38,318.15,24.33z"/> -<linearGradient id="SVGID_33_" gradientUnits="userSpaceOnUse" x1="-332.3286" y1="-329.6587" x2="-328.1729" y2="-322.4607" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_33_)" d="M318.13,13.92c0.72-1.19,1.43-2.37,2.14-3.55c-0.72-1.16-1.44-2.32-2.15-3.49 - c-1.43,0.01-2.86,0.03-4.3,0.04c-0.71,1.19-1.43,2.38-2.14,3.57c0.72,1.18,1.44,2.34,2.15,3.51 - C315.27,13.98,316.7,13.95,318.13,13.92z"/> -<linearGradient id="SVGID_34_" gradientUnits="userSpaceOnUse" x1="-331.3086" y1="-338.3657" x2="-328.166" y2="-332.9226" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_34_)" d="M311.66,0c0.72,1.18,1.44,2.37,2.16,3.54c1.43-0.01,2.87-0.01,4.3-0.02 - c0.71-1.18,1.42-2.35,2.14-3.52C317.39,0,314.53,0,311.66,0z"/> -<linearGradient id="SVGID_35_" gradientUnits="userSpaceOnUse" x1="-321.7275" y1="-261.2515" x2="-318.2925" y2="-255.3018" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_35_)" d="M309.59,78.59c-0.72-1.11-1.43-2.23-2.15-3.35c-1.43,0.14-2.86,0.28-4.29,0.42 - c-0.71,1.26-1.43,2.54-2.14,3.81C303.87,79.19,306.73,78.89,309.59,78.59z"/> -<linearGradient id="SVGID_36_" gradientUnits="userSpaceOnUse" x1="-321.7114" y1="-271.8086" x2="-317.377" y2="-264.3011" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_36_)" d="M307.43,71.83c0.71-1.26,1.42-2.51,2.14-3.77c-0.72-1.12-1.44-2.25-2.15-3.38 - c-1.43,0.12-2.86,0.24-4.29,0.36c-0.71,1.26-1.43,2.51-2.14,3.77c0.72,1.14,1.44,2.28,2.15,3.41C304.57,72.1,306,71.96,307.43,71.83 - z"/> -<linearGradient id="SVGID_37_" gradientUnits="userSpaceOnUse" x1="-321.6733" y1="-282.3789" x2="-317.3638" y2="-274.9145" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_37_)" d="M307.41,61.27c0.71-1.25,1.42-2.49,2.13-3.74c-0.72-1.13-1.44-2.27-2.15-3.41 - c-1.43,0.1-2.86,0.2-4.29,0.3c-0.71,1.25-1.42,2.5-2.14,3.75c0.72,1.15,1.44,2.29,2.15,3.44C304.54,61.49,305.97,61.38,307.41,61.27 - z"/> -<linearGradient id="SVGID_38_" gradientUnits="userSpaceOnUse" x1="-321.6357" y1="-292.9482" x2="-317.3516" y2="-285.5278" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_38_)" d="M307.38,50.7c0.71-1.24,1.42-2.47,2.14-3.71c-0.72-1.14-1.44-2.29-2.15-3.44 - c-1.43,0.08-2.86,0.16-4.29,0.24c-0.71,1.24-1.43,2.48-2.14,3.72c0.72,1.16,1.44,2.31,2.15,3.46 - C304.52,50.89,305.95,50.8,307.38,50.7z"/> -<linearGradient id="SVGID_39_" gradientUnits="userSpaceOnUse" x1="-321.6011" y1="-303.5161" x2="-317.3418" y2="-296.1388" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_39_)" d="M307.35,40.14c0.71-1.23,1.43-2.45,2.14-3.68c-0.72-1.15-1.44-2.31-2.16-3.47 - c-1.43,0.06-2.86,0.12-4.29,0.18c-0.71,1.23-1.43,2.46-2.14,3.69c0.72,1.17,1.44,2.33,2.15,3.49 - C304.49,40.29,305.92,40.22,307.35,40.14z"/> -<linearGradient id="SVGID_40_" gradientUnits="userSpaceOnUse" x1="-321.5649" y1="-314.0874" x2="-317.3306" y2="-306.7532" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_40_)" d="M307.33,29.58c0.71-1.22,1.43-2.44,2.14-3.65c-0.72-1.16-1.44-2.33-2.15-3.5 - c-1.43,0.04-2.86,0.08-4.3,0.12c-0.71,1.22-1.42,2.44-2.14,3.66c0.72,1.18,1.44,2.35,2.15,3.52 - C304.47,29.69,305.9,29.63,307.33,29.58z"/> -<linearGradient id="SVGID_41_" gradientUnits="userSpaceOnUse" x1="-321.5269" y1="-324.6572" x2="-317.3169" y2="-317.3654" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_41_)" d="M307.3,19.02c0.71-1.21,1.43-2.41,2.14-3.62c-0.72-1.17-1.44-2.35-2.16-3.53 - c-1.43,0.02-2.86,0.04-4.3,0.07c-0.71,1.21-1.43,2.42-2.14,3.63c0.72,1.19,1.44,2.37,2.16,3.55 - C304.44,19.09,305.87,19.05,307.3,19.02z"/> -<linearGradient id="SVGID_42_" gradientUnits="userSpaceOnUse" x1="-321.4897" y1="-335.2251" x2="-317.3062" y2="-327.9789" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_42_)" d="M307.28,8.45c0.71-1.2,1.43-2.39,2.14-3.59c-0.72-1.18-1.44-2.37-2.16-3.56 - c-1.43,0-2.86,0.01-4.3,0.01c-0.71,1.2-1.43,2.4-2.14,3.61c0.72,1.2,1.44,2.39,2.16,3.58C304.42,8.48,305.85,8.47,307.28,8.45z"/> -<linearGradient id="SVGID_43_" gradientUnits="userSpaceOnUse" x1="-310.5508" y1="-265.1279" x2="-306.1753" y2="-257.5493" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_43_)" d="M296.25,78.6c0.71-1.27,1.43-2.54,2.14-3.81c-0.72-1.14-1.44-2.29-2.15-3.43 - c-1.43,0.12-2.86,0.24-4.29,0.35c-0.71,1.27-1.43,2.55-2.14,3.82c0.72,1.16,1.44,2.31,2.16,3.46 - C293.39,78.86,294.82,78.73,296.25,78.6z"/> -<linearGradient id="SVGID_44_" gradientUnits="userSpaceOnUse" x1="-310.5122" y1="-275.8442" x2="-306.1597" y2="-268.3054" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_44_)" d="M296.22,67.89c0.71-1.26,1.42-2.53,2.14-3.79c-0.72-1.15-1.44-2.3-2.16-3.46 - c-1.43,0.1-2.86,0.2-4.29,0.3c-0.71,1.26-1.42,2.53-2.14,3.79c0.72,1.17,1.44,2.33,2.15,3.49C293.36,68.12,294.79,68,296.22,67.89z" - /> -<linearGradient id="SVGID_45_" gradientUnits="userSpaceOnUse" x1="-310.4736" y1="-286.5635" x2="-306.144" y2="-279.0644" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_45_)" d="M296.2,57.18c0.71-1.25,1.43-2.51,2.14-3.76c-0.72-1.16-1.44-2.32-2.16-3.49 - c-1.43,0.09-2.86,0.17-4.29,0.25c-0.71,1.25-1.42,2.51-2.14,3.77c0.72,1.17,1.44,2.34,2.16,3.51 - C293.33,57.37,294.76,57.27,296.2,57.18z"/> -<linearGradient id="SVGID_46_" gradientUnits="userSpaceOnUse" x1="-310.4351" y1="-297.2803" x2="-306.1279" y2="-289.8201" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_46_)" d="M296.17,46.46c0.71-1.25,1.42-2.49,2.14-3.73c-0.72-1.17-1.44-2.34-2.16-3.51 - c-1.43,0.07-2.86,0.13-4.3,0.19c-0.71,1.25-1.42,2.49-2.14,3.74c0.72,1.18,1.44,2.36,2.16,3.54 - C293.31,46.62,294.74,46.54,296.17,46.46z"/> -<linearGradient id="SVGID_47_" gradientUnits="userSpaceOnUse" x1="-310.3955" y1="-307.9976" x2="-306.1123" y2="-300.5788" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_47_)" d="M296.14,35.75c0.71-1.24,1.43-2.47,2.14-3.71c-0.72-1.18-1.44-2.36-2.16-3.54 - c-1.43,0.05-2.86,0.09-4.3,0.14c-0.71,1.24-1.42,2.48-2.14,3.72c0.72,1.19,1.44,2.38,2.16,3.56 - C293.28,35.88,294.71,35.81,296.14,35.75z"/> -<linearGradient id="SVGID_48_" gradientUnits="userSpaceOnUse" x1="-310.3628" y1="-318.7153" x2="-306.1011" y2="-311.3338" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_48_)" d="M296.12,25.04c0.71-1.23,1.43-2.46,2.14-3.68c-0.72-1.19-1.44-2.38-2.16-3.57 - c-1.43,0.03-2.86,0.06-4.3,0.09c-0.71,1.23-1.42,2.46-2.14,3.69c0.72,1.2,1.44,2.4,2.16,3.59 - C293.25,25.13,294.68,25.09,296.12,25.04z"/> -<linearGradient id="SVGID_49_" gradientUnits="userSpaceOnUse" x1="-310.3232" y1="-329.4331" x2="-306.085" y2="-322.0922" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_49_)" d="M296.09,14.33c0.71-1.22,1.42-2.44,2.14-3.65c-0.72-1.19-1.44-2.39-2.16-3.6 - c-1.43,0.01-2.86,0.02-4.3,0.04c-0.71,1.22-1.42,2.44-2.14,3.67c0.72,1.21,1.44,2.41,2.16,3.62 - C293.22,14.38,294.66,14.36,296.09,14.33z"/> -<linearGradient id="SVGID_50_" gradientUnits="userSpaceOnUse" x1="-309.2559" y1="-338.3657" x2="-306.0708" y2="-332.849" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_50_)" d="M289.61,0c0.72,1.22,1.44,2.43,2.16,3.64c1.43-0.01,2.87-0.01,4.3-0.02 - c0.71-1.21,1.42-2.42,2.14-3.62C295.34,0,292.47,0,289.61,0z"/> -<linearGradient id="SVGID_51_" gradientUnits="userSpaceOnUse" x1="-299.7114" y1="-259.2568" x2="-296.2817" y2="-253.3164" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_51_)" d="M287.56,80.72c-0.72-1.16-1.44-2.32-2.16-3.48c-1.43,0.12-2.87,0.23-4.3,0.35 - c-0.71,1.28-1.42,2.57-2.14,3.86C281.84,81.21,284.7,80.97,287.56,80.72z"/> -<linearGradient id="SVGID_52_" gradientUnits="userSpaceOnUse" x1="-299.7036" y1="-270.0845" x2="-295.3149" y2="-262.4831" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_52_)" d="M285.4,73.73c0.71-1.28,1.42-2.55,2.14-3.83c-0.72-1.16-1.44-2.33-2.16-3.5 - c-1.43,0.1-2.87,0.2-4.3,0.3c-0.71,1.28-1.42,2.55-2.14,3.83c0.72,1.18,1.44,2.36,2.16,3.53C282.53,73.95,283.96,73.84,285.4,73.73z - "/> -<linearGradient id="SVGID_53_" gradientUnits="userSpaceOnUse" x1="-299.6655" y1="-280.9321" x2="-295.2988" y2="-273.3688" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_53_)" d="M285.37,62.89c0.71-1.27,1.42-2.54,2.14-3.8c-0.72-1.17-1.44-2.35-2.16-3.53 - c-1.43,0.08-2.87,0.17-4.3,0.25c-0.71,1.27-1.42,2.54-2.14,3.81c0.72,1.19,1.44,2.37,2.16,3.55 - C282.51,63.07,283.94,62.98,285.37,62.89z"/> -<linearGradient id="SVGID_54_" gradientUnits="userSpaceOnUse" x1="-299.627" y1="-291.7808" x2="-295.2812" y2="-284.2538" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_54_)" d="M285.34,52.04c0.71-1.26,1.42-2.52,2.14-3.78c-0.72-1.18-1.44-2.37-2.16-3.55 - c-1.43,0.07-2.87,0.13-4.3,0.2c-0.71,1.26-1.42,2.52-2.14,3.79c0.72,1.2,1.44,2.39,2.16,3.58C282.48,52.2,283.91,52.12,285.34,52.04 - z"/> -<linearGradient id="SVGID_55_" gradientUnits="userSpaceOnUse" x1="-299.5894" y1="-302.6265" x2="-295.2642" y2="-295.135" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_55_)" d="M285.31,41.2c0.71-1.25,1.42-2.5,2.14-3.75c-0.72-1.19-1.44-2.38-2.16-3.58 - c-1.43,0.05-2.87,0.1-4.3,0.15c-0.71,1.25-1.42,2.51-2.14,3.76c0.72,1.2,1.44,2.41,2.16,3.6C282.45,41.33,283.88,41.27,285.31,41.2z - "/> -<linearGradient id="SVGID_56_" gradientUnits="userSpaceOnUse" x1="-299.5508" y1="-313.4751" x2="-295.2466" y2="-306.02" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_56_)" d="M285.29,30.36c0.71-1.24,1.42-2.49,2.14-3.73c-0.72-1.2-1.44-2.4-2.16-3.61 - c-1.43,0.03-2.87,0.07-4.3,0.1c-0.71,1.25-1.42,2.49-2.14,3.74c0.72,1.21,1.44,2.42,2.16,3.63 - C282.42,30.45,283.85,30.41,285.29,30.36z"/> -<linearGradient id="SVGID_57_" gradientUnits="userSpaceOnUse" x1="-299.5132" y1="-324.3232" x2="-295.23" y2="-316.9045" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_57_)" d="M285.26,19.52c0.71-1.24,1.43-2.47,2.14-3.7c-0.72-1.21-1.44-2.42-2.16-3.63 - c-1.43,0.02-2.87,0.04-4.3,0.05c-0.71,1.24-1.42,2.48-2.14,3.72c0.72,1.22,1.44,2.44,2.16,3.65 - C282.39,19.58,283.83,19.55,285.26,19.52z"/> -<linearGradient id="SVGID_58_" gradientUnits="userSpaceOnUse" x1="-299.4771" y1="-335.1685" x2="-295.2153" y2="-327.787" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_58_)" d="M285.23,8.68c0.71-1.23,1.43-2.45,2.14-3.68c-0.72-1.21-1.44-2.43-2.16-3.66 - c-1.43,0-2.87,0-4.3,0.01c-0.71,1.23-1.42,2.46-2.14,3.69c0.72,1.23,1.44,2.45,2.16,3.67C282.36,8.7,283.8,8.69,285.23,8.68z"/> -<linearGradient id="SVGID_59_" gradientUnits="userSpaceOnUse" x1="-288.5273" y1="-263.4331" x2="-284.1084" y2="-255.7793" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_59_)" d="M274.2,80.45c0.71-1.29,1.43-2.58,2.14-3.87c-0.72-1.18-1.44-2.37-2.16-3.55 - c-1.43,0.1-2.87,0.19-4.3,0.29c-0.71,1.29-1.43,2.58-2.14,3.87c0.72,1.2,1.44,2.39,2.16,3.58C271.34,80.67,272.77,80.56,274.2,80.45 - z"/> -<linearGradient id="SVGID_60_" gradientUnits="userSpaceOnUse" x1="-288.4883" y1="-274.4014" x2="-284.0889" y2="-266.7814" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_60_)" d="M274.17,69.49c0.71-1.28,1.43-2.56,2.14-3.84c-0.72-1.19-1.44-2.38-2.16-3.57 - c-1.43,0.08-2.87,0.17-4.3,0.25c-0.71,1.28-1.43,2.56-2.14,3.85c0.72,1.2,1.44,2.4,2.16,3.6C271.31,69.67,272.74,69.58,274.17,69.49 - z"/> -<linearGradient id="SVGID_61_" gradientUnits="userSpaceOnUse" x1="-288.4507" y1="-285.3701" x2="-284.0698" y2="-277.7823" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_61_)" d="M274.15,58.52c0.71-1.28,1.43-2.55,2.14-3.82c-0.72-1.2-1.44-2.39-2.16-3.6 - c-1.43,0.07-2.86,0.14-4.3,0.2c-0.71,1.27-1.43,2.55-2.14,3.83c0.72,1.21,1.44,2.42,2.16,3.62 - C271.28,58.68,272.71,58.6,274.15,58.52z"/> -<linearGradient id="SVGID_62_" gradientUnits="userSpaceOnUse" x1="-288.4146" y1="-296.3384" x2="-284.0527" y2="-288.7835" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_62_)" d="M274.12,47.56c0.71-1.27,1.43-2.53,2.14-3.8c-0.72-1.21-1.44-2.41-2.16-3.62 - c-1.43,0.05-2.86,0.11-4.3,0.16c-0.71,1.27-1.43,2.53-2.14,3.8c0.72,1.22,1.44,2.43,2.16,3.64 - C271.25,47.69,272.69,47.63,274.12,47.56z"/> -<linearGradient id="SVGID_63_" gradientUnits="userSpaceOnUse" x1="-288.3774" y1="-307.3091" x2="-284.0327" y2="-299.7838" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_63_)" d="M274.09,36.6c0.71-1.26,1.43-2.52,2.14-3.78c-0.72-1.21-1.44-2.42-2.16-3.64 - c-1.43,0.04-2.87,0.08-4.3,0.12c-0.71,1.26-1.43,2.52-2.14,3.78c0.72,1.22,1.44,2.44,2.16,3.66 - C271.23,36.7,272.66,36.65,274.09,36.6z"/> -<linearGradient id="SVGID_64_" gradientUnits="userSpaceOnUse" x1="-288.3389" y1="-318.2759" x2="-284.0146" y2="-310.7861" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_64_)" d="M274.06,25.63c0.71-1.25,1.43-2.5,2.14-3.75c-0.72-1.22-1.44-2.44-2.16-3.66 - c-1.43,0.02-2.87,0.05-4.3,0.07c-0.71,1.25-1.42,2.51-2.14,3.76c0.72,1.23,1.44,2.46,2.16,3.68 - C271.2,25.7,272.63,25.67,274.06,25.63z"/> -<linearGradient id="SVGID_65_" gradientUnits="userSpaceOnUse" x1="-288.3022" y1="-329.2456" x2="-283.9971" y2="-321.7888" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_65_)" d="M274.04,14.67c0.71-1.25,1.43-2.49,2.14-3.73c-0.72-1.23-1.44-2.46-2.16-3.69 - c-1.43,0.01-2.86,0.02-4.3,0.03c-0.71,1.24-1.42,2.49-2.14,3.74c0.72,1.24,1.44,2.47,2.16,3.7 - C271.17,14.71,272.61,14.69,274.04,14.67z"/> -<linearGradient id="SVGID_66_" gradientUnits="userSpaceOnUse" x1="-287.2036" y1="-338.3652" x2="-283.9824" y2="-332.786" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_66_)" d="M267.55,0c0.72,1.24,1.44,2.48,2.16,3.72c1.43-0.01,2.86-0.01,4.3-0.01 - c0.71-1.24,1.43-2.48,2.14-3.71C273.28,0,270.42,0,267.55,0z"/> -<linearGradient id="SVGID_67_" gradientUnits="userSpaceOnUse" x1="-277.6582" y1="-257.6323" x2="-274.2441" y2="-251.719" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_67_)" d="M265.5,82.45c-0.72-1.2-1.44-2.4-2.16-3.6c-1.43,0.09-2.87,0.18-4.3,0.27 - c-0.71,1.29-1.43,2.59-2.14,3.89C259.77,82.84,262.64,82.65,265.5,82.45z"/> -<linearGradient id="SVGID_68_" gradientUnits="userSpaceOnUse" x1="-277.6636" y1="-268.6836" x2="-273.2383" y2="-261.0188" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_68_)" d="M263.34,75.27c0.71-1.29,1.43-2.58,2.14-3.87c-0.72-1.2-1.44-2.41-2.16-3.62 - c-1.43,0.08-2.87,0.16-4.3,0.23c-0.71,1.29-1.43,2.58-2.14,3.87c0.72,1.22,1.44,2.43,2.16,3.64 - C260.47,75.45,261.91,75.36,263.34,75.27z"/> -<linearGradient id="SVGID_69_" gradientUnits="userSpaceOnUse" x1="-277.6289" y1="-279.7568" x2="-273.2192" y2="-272.1191" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_69_)" d="M263.31,64.2c0.71-1.29,1.43-2.57,2.14-3.85c-0.72-1.21-1.44-2.42-2.16-3.64 - c-1.43,0.07-2.87,0.13-4.3,0.2c-0.71,1.28-1.43,2.57-2.14,3.86c0.72,1.22,1.44,2.44,2.16,3.66 - C260.44,64.35,261.88,64.28,263.31,64.2z"/> -<linearGradient id="SVGID_70_" gradientUnits="userSpaceOnUse" x1="-277.5923" y1="-290.8296" x2="-273.2012" y2="-283.224" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_70_)" d="M263.28,53.13c0.71-1.28,1.43-2.56,2.14-3.83c-0.72-1.22-1.44-2.43-2.16-3.66 - c-1.43,0.05-2.87,0.11-4.3,0.16c-0.71,1.28-1.43,2.56-2.14,3.84c0.72,1.23,1.44,2.45,2.16,3.67 - C260.42,53.26,261.85,53.2,263.28,53.13z"/> -<linearGradient id="SVGID_71_" gradientUnits="userSpaceOnUse" x1="-277.5586" y1="-301.9033" x2="-273.1826" y2="-294.3239" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_71_)" d="M263.26,42.06c0.71-1.27,1.43-2.54,2.14-3.81c-0.72-1.22-1.44-2.45-2.16-3.68 - c-1.43,0.04-2.87,0.08-4.3,0.12c-0.71,1.27-1.43,2.54-2.14,3.82c0.72,1.23,1.44,2.47,2.16,3.69 - C260.39,42.16,261.82,42.11,263.26,42.06z"/> -<linearGradient id="SVGID_72_" gradientUnits="userSpaceOnUse" x1="-277.5239" y1="-312.9766" x2="-273.1646" y2="-305.4259" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_72_)" d="M263.23,31c0.71-1.27,1.43-2.53,2.14-3.79c-0.72-1.23-1.44-2.46-2.16-3.69 - c-1.43,0.03-2.87,0.05-4.3,0.08c-0.71,1.27-1.43,2.53-2.14,3.8c0.72,1.24,1.44,2.48,2.16,3.71C260.36,31.07,261.8,31.03,263.23,31z" - /> -<linearGradient id="SVGID_73_" gradientUnits="userSpaceOnUse" x1="-277.4893" y1="-324.0508" x2="-273.1465" y2="-316.5289" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_73_)" d="M263.2,19.93c0.71-1.26,1.43-2.52,2.14-3.77c-0.72-1.24-1.44-2.47-2.16-3.71 - c-1.43,0.01-2.87,0.03-4.3,0.04c-0.71,1.26-1.43,2.52-2.14,3.78c0.72,1.25,1.44,2.49,2.16,3.73 - C260.34,19.97,261.77,19.95,263.2,19.93z"/> -<linearGradient id="SVGID_74_" gradientUnits="userSpaceOnUse" x1="-277.4536" y1="-335.1245" x2="-273.1274" y2="-327.6313" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_74_)" d="M263.18,8.86c0.71-1.25,1.43-2.5,2.14-3.75c-0.72-1.24-1.44-2.49-2.16-3.74c-1.43,0-2.87,0-4.3,0.01 - c-0.71,1.25-1.43,2.51-2.14,3.76c0.72,1.25,1.44,2.5,2.16,3.75C260.31,8.88,261.74,8.87,263.18,8.86z"/> -<linearGradient id="SVGID_75_" gradientUnits="userSpaceOnUse" x1="-266.4678" y1="-262.0903" x2="-262.0205" y2="-254.3874" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_75_)" d="M252.13,81.92c0.71-1.3,1.43-2.6,2.14-3.9c-0.72-1.22-1.44-2.44-2.16-3.66 - c-1.44,0.08-2.87,0.15-4.3,0.22c-0.71,1.3-1.43,2.6-2.14,3.9c0.72,1.23,1.44,2.45,2.16,3.68C249.26,82.09,250.7,82.01,252.13,81.92z - "/> -<linearGradient id="SVGID_76_" gradientUnits="userSpaceOnUse" x1="-266.4355" y1="-273.2568" x2="-262.0034" y2="-265.5802" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_76_)" d="M252.11,70.76c0.71-1.29,1.43-2.59,2.14-3.88c-0.72-1.22-1.44-2.44-2.16-3.67 - c-1.43,0.06-2.87,0.12-4.3,0.19c-0.71,1.29-1.43,2.58-2.14,3.88c0.72,1.23,1.44,2.46,2.16,3.69 - C249.24,70.9,250.67,70.83,252.11,70.76z"/> -<linearGradient id="SVGID_77_" gradientUnits="userSpaceOnUse" x1="-266.4038" y1="-284.4263" x2="-261.9854" y2="-276.7733" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_77_)" d="M252.08,59.59c0.71-1.29,1.43-2.58,2.14-3.86c-0.72-1.23-1.44-2.46-2.16-3.69 - c-1.43,0.05-2.87,0.1-4.3,0.15c-0.71,1.29-1.43,2.58-2.14,3.87c0.72,1.24,1.44,2.47,2.16,3.71 - C249.21,59.71,250.65,59.66,252.08,59.59z"/> -<linearGradient id="SVGID_78_" gradientUnits="userSpaceOnUse" x1="-266.3706" y1="-295.5933" x2="-261.9673" y2="-287.9665" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_78_)" d="M252.05,48.43c0.71-1.28,1.43-2.56,2.14-3.84c-0.72-1.23-1.44-2.47-2.16-3.71 - c-1.43,0.04-2.87,0.08-4.3,0.12c-0.71,1.28-1.43,2.56-2.14,3.85c0.72,1.24,1.44,2.49,2.16,3.72 - C249.19,48.53,250.62,48.48,252.05,48.43z"/> -<linearGradient id="SVGID_79_" gradientUnits="userSpaceOnUse" x1="-266.3398" y1="-306.7612" x2="-261.9517" y2="-299.1607" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_79_)" d="M252.03,37.27c0.71-1.28,1.43-2.55,2.14-3.83c-0.72-1.24-1.44-2.48-2.16-3.73 - c-1.43,0.03-2.87,0.06-4.3,0.09c-0.71,1.28-1.43,2.56-2.14,3.83c0.72,1.25,1.44,2.5,2.16,3.74 - C249.17,37.34,250.6,37.31,252.03,37.27z"/> -<linearGradient id="SVGID_80_" gradientUnits="userSpaceOnUse" x1="-266.3076" y1="-317.9287" x2="-261.9336" y2="-310.3527" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_80_)" d="M252,26.1c0.71-1.27,1.43-2.54,2.14-3.81c-0.72-1.25-1.44-2.49-2.16-3.74 - c-1.43,0.02-2.87,0.04-4.3,0.06c-0.71,1.27-1.43,2.54-2.14,3.82c0.72,1.25,1.44,2.51,2.16,3.76C249.14,26.16,250.57,26.13,252,26.1z - "/> -<linearGradient id="SVGID_81_" gradientUnits="userSpaceOnUse" x1="-266.2759" y1="-329.0972" x2="-261.9165" y2="-321.5465" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_81_)" d="M251.98,14.94c0.71-1.27,1.43-2.53,2.14-3.79c-0.72-1.25-1.44-2.5-2.16-3.76 - c-1.43,0.01-2.86,0.02-4.3,0.02c-0.71,1.26-1.43,2.53-2.14,3.8c0.72,1.26,1.44,2.52,2.16,3.77 - C249.11,14.97,250.55,14.96,251.98,14.94z"/> -<linearGradient id="SVGID_82_" gradientUnits="userSpaceOnUse" x1="-265.1641" y1="-338.3574" x2="-261.9146" y2="-332.7291" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_82_)" d="M245.5,0c0.72,1.26,1.44,2.53,2.16,3.79c1.43,0,2.87-0.01,4.3-0.01c0.71-1.26,1.43-2.52,2.14-3.78 - C251.23,0,248.37,0,245.5,0z"/> -<linearGradient id="SVGID_83_" gradientUnits="userSpaceOnUse" x1="-255.5791" y1="-256.3857" x2="-252.186" y2="-250.5088" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_83_)" d="M243.42,83.79c-0.72-1.23-1.44-2.46-2.16-3.69c-1.43,0.07-2.87,0.14-4.31,0.2 - c-0.71,1.3-1.43,2.61-2.14,3.91C237.68,84.08,240.55,83.94,243.42,83.79z"/> -<linearGradient id="SVGID_84_" gradientUnits="userSpaceOnUse" x1="-255.5938" y1="-267.6055" x2="-251.1465" y2="-259.9026" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_84_)" d="M241.26,76.46c0.71-1.3,1.43-2.6,2.14-3.9c-0.72-1.23-1.44-2.47-2.16-3.71 - c-1.43,0.06-2.87,0.12-4.3,0.17c-0.71,1.3-1.43,2.6-2.14,3.9c0.72,1.24,1.44,2.49,2.16,3.73C238.39,76.59,239.82,76.53,241.26,76.46 - z"/> -<linearGradient id="SVGID_85_" gradientUnits="userSpaceOnUse" x1="-255.5659" y1="-278.8545" x2="-251.1294" y2="-271.1702" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_85_)" d="M241.23,65.22c0.72-1.3,1.43-2.59,2.14-3.88c-0.72-1.24-1.44-2.48-2.16-3.72 - c-1.43,0.05-2.87,0.1-4.3,0.14c-0.71,1.29-1.43,2.59-2.14,3.89c0.72,1.25,1.44,2.49,2.16,3.74 - C238.36,65.33,239.8,65.27,241.23,65.22z"/> -<linearGradient id="SVGID_86_" gradientUnits="userSpaceOnUse" x1="-255.5381" y1="-290.1001" x2="-251.1147" y2="-282.4387" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_86_)" d="M241.21,53.97c0.71-1.29,1.43-2.58,2.14-3.87c-0.72-1.24-1.44-2.49-2.16-3.74 - c-1.43,0.04-2.87,0.08-4.3,0.12c-0.71,1.29-1.43,2.58-2.15,3.87c0.72,1.25,1.44,2.5,2.16,3.75 - C238.34,54.06,239.78,54.02,241.21,53.97z"/> -<linearGradient id="SVGID_87_" gradientUnits="userSpaceOnUse" x1="-255.5098" y1="-301.3467" x2="-251.0991" y2="-293.7072" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_87_)" d="M241.19,42.73c0.71-1.29,1.43-2.57,2.14-3.85c-0.72-1.25-1.44-2.5-2.16-3.75 - c-1.43,0.03-2.87,0.06-4.3,0.09c-0.71,1.29-1.43,2.57-2.14,3.86c0.72,1.26,1.44,2.51,2.16,3.77 - C238.32,42.8,239.75,42.77,241.19,42.73z"/> -<linearGradient id="SVGID_88_" gradientUnits="userSpaceOnUse" x1="-255.4805" y1="-312.5938" x2="-251.0825" y2="-304.9763" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_88_)" d="M241.17,31.49c0.72-1.28,1.43-2.56,2.14-3.84c-0.72-1.25-1.44-2.51-2.16-3.77 - c-1.43,0.02-2.87,0.04-4.3,0.06c-0.71,1.28-1.43,2.56-2.14,3.85c0.72,1.26,1.44,2.52,2.16,3.78 - C238.3,31.54,239.73,31.51,241.17,31.49z"/> -<linearGradient id="SVGID_89_" gradientUnits="userSpaceOnUse" x1="-255.4521" y1="-323.8418" x2="-251.0654" y2="-316.2438" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_89_)" d="M241.14,20.24c0.71-1.28,1.43-2.55,2.14-3.82c-0.72-1.26-1.43-2.52-2.16-3.78 - c-1.43,0.01-2.87,0.02-4.3,0.03c-0.71,1.28-1.43,2.55-2.14,3.83c0.72,1.27,1.44,2.53,2.16,3.79 - C238.28,20.28,239.71,20.26,241.14,20.24z"/> -<linearGradient id="SVGID_90_" gradientUnits="userSpaceOnUse" x1="-255.4238" y1="-335.0898" x2="-251.0493" y2="-327.513" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_90_)" d="M241.12,9c0.71-1.27,1.43-2.54,2.14-3.81c-0.72-1.26-1.43-2.53-2.15-3.8c-1.43,0-2.87,0-4.3,0 - c-0.71,1.27-1.43,2.55-2.14,3.82c0.72,1.27,1.44,2.54,2.15,3.8C238.25,9.01,239.69,9.01,241.12,9z"/> -<linearGradient id="SVGID_91_" gradientUnits="userSpaceOnUse" x1="-244.3813" y1="-261.1006" x2="-239.9204" y2="-253.374" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_91_)" d="M230.04,83.01c0.72-1.3,1.43-2.61,2.15-3.91c-0.72-1.25-1.44-2.49-2.16-3.74 - c-1.44,0.05-2.87,0.1-4.31,0.15c-0.71,1.3-1.43,2.61-2.15,3.91c0.72,1.26,1.44,2.51,2.16,3.76 - C227.16,83.13,228.6,83.07,230.04,83.01z"/> -<linearGradient id="SVGID_92_" gradientUnits="userSpaceOnUse" x1="-244.356" y1="-272.4121" x2="-239.9077" y2="-264.7075" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_92_)" d="M230.02,71.7c0.71-1.3,1.43-2.6,2.15-3.9c-0.72-1.25-1.44-2.5-2.16-3.75 - c-1.43,0.04-2.87,0.09-4.3,0.13c-0.72,1.3-1.43,2.6-2.15,3.9c0.72,1.26,1.44,2.52,2.16,3.77C227.15,71.8,228.58,71.75,230.02,71.7z" - /> -<linearGradient id="SVGID_93_" gradientUnits="userSpaceOnUse" x1="-244.3325" y1="-283.729" x2="-239.8931" y2="-276.0396" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_93_)" d="M230,60.39c0.71-1.3,1.43-2.59,2.14-3.89c-0.72-1.25-1.44-2.51-2.16-3.77 - c-1.43,0.04-2.87,0.07-4.3,0.11c-0.71,1.29-1.43,2.59-2.14,3.89c0.72,1.26,1.44,2.52,2.16,3.78C227.13,60.47,228.56,60.43,230,60.39 - z"/> -<linearGradient id="SVGID_94_" gradientUnits="userSpaceOnUse" x1="-244.3091" y1="-295.0435" x2="-239.8799" y2="-287.3719" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_94_)" d="M229.98,49.08c0.71-1.29,1.43-2.58,2.14-3.88c-0.72-1.26-1.44-2.52-2.16-3.78 - c-1.44,0.03-2.87,0.06-4.3,0.08c-0.71,1.29-1.43,2.58-2.14,3.88c0.72,1.27,1.44,2.53,2.16,3.79 - C227.11,49.14,228.54,49.11,229.98,49.08z"/> -<linearGradient id="SVGID_95_" gradientUnits="userSpaceOnUse" x1="-244.2842" y1="-306.3579" x2="-239.8657" y2="-298.7049" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_95_)" d="M229.96,37.76c0.71-1.29,1.43-2.58,2.14-3.86c-0.72-1.26-1.44-2.53-2.16-3.79 - c-1.43,0.02-2.87,0.04-4.3,0.06c-0.71,1.29-1.43,2.58-2.14,3.87c0.72,1.27,1.44,2.54,2.16,3.8 - C227.09,37.81,228.52,37.79,229.96,37.76z"/> -<linearGradient id="SVGID_96_" gradientUnits="userSpaceOnUse" x1="-244.2607" y1="-317.6738" x2="-239.8521" y2="-310.0378" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_96_)" d="M229.94,26.45c0.71-1.28,1.43-2.57,2.14-3.85c-0.72-1.27-1.44-2.53-2.16-3.8 - c-1.43,0.01-2.87,0.03-4.3,0.04c-0.71,1.28-1.43,2.57-2.14,3.85c0.72,1.27,1.44,2.54,2.16,3.81 - C227.07,26.49,228.5,26.47,229.94,26.45z"/> -<linearGradient id="SVGID_97_" gradientUnits="userSpaceOnUse" x1="-244.2373" y1="-328.9888" x2="-239.8394" y2="-321.3713" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_97_)" d="M229.92,15.14c0.71-1.28,1.43-2.56,2.14-3.84c-0.72-1.27-1.44-2.54-2.16-3.82 - c-1.43,0-2.86,0.01-4.3,0.01c-0.71,1.28-1.43,2.56-2.14,3.85c0.72,1.28,1.44,2.55,2.16,3.82C227.05,15.16,228.49,15.15,229.92,15.14 - z"/> -<linearGradient id="SVGID_98_" gradientUnits="userSpaceOnUse" x1="-243.1221" y1="-338.3506" x2="-239.853" y2="-332.6884" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_98_)" d="M223.45,0c0.72,1.28,1.43,2.56,2.15,3.83c1.43,0,2.86,0,4.3-0.01c0.71-1.28,1.43-2.55,2.14-3.83 - C229.18,0,226.31,0,223.45,0z"/> -<linearGradient id="SVGID_99_" gradientUnits="userSpaceOnUse" x1="-233.478" y1="-255.5127" x2="-230.1138" y2="-249.6856" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_99_)" d="M221.32,84.74c-0.72-1.26-1.44-2.51-2.16-3.77c-1.44,0.04-2.87,0.09-4.31,0.13 - c-0.72,1.3-1.43,2.61-2.15,3.91C215.58,84.93,218.45,84.84,221.32,84.74z"/> -<linearGradient id="SVGID_100_" gradientUnits="userSpaceOnUse" x1="-233.5024" y1="-266.855" x2="-229.0454" y2="-259.1352" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_100_)" d="M219.16,77.29c0.71-1.3,1.43-2.61,2.14-3.91c-0.72-1.26-1.44-2.52-2.16-3.78 - c-1.44,0.04-2.87,0.08-4.31,0.11c-0.72,1.3-1.43,2.6-2.15,3.9c0.72,1.27,1.44,2.53,2.16,3.8C216.29,77.38,217.72,77.34,219.16,77.29 - z"/> -<linearGradient id="SVGID_101_" gradientUnits="userSpaceOnUse" x1="-233.4824" y1="-278.2231" x2="-229.0342" y2="-270.5186" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_101_)" d="M219.14,65.93c0.72-1.3,1.43-2.6,2.15-3.9c-0.72-1.26-1.44-2.53-2.16-3.79 - c-1.44,0.03-2.87,0.06-4.31,0.09c-0.72,1.3-1.43,2.6-2.15,3.9c0.72,1.27,1.44,2.54,2.16,3.81C216.27,66,217.71,65.97,219.14,65.93z" - /> -<linearGradient id="SVGID_102_" gradientUnits="userSpaceOnUse" x1="-233.4624" y1="-289.5913" x2="-229.0225" y2="-281.9011" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_102_)" d="M219.12,54.56c0.71-1.29,1.43-2.59,2.15-3.89c-0.72-1.27-1.44-2.53-2.16-3.8 - c-1.43,0.03-2.87,0.05-4.3,0.07c-0.71,1.29-1.43,2.59-2.15,3.89c0.72,1.27,1.44,2.54,2.16,3.81 - C216.25,54.62,217.69,54.59,219.12,54.56z"/> -<linearGradient id="SVGID_103_" gradientUnits="userSpaceOnUse" x1="-233.4443" y1="-300.959" x2="-229.0122" y2="-293.2823" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_103_)" d="M219.11,43.2c0.71-1.29,1.43-2.59,2.15-3.88c-0.72-1.27-1.44-2.54-2.16-3.81 - c-1.43,0.02-2.87,0.04-4.3,0.06c-0.72,1.29-1.43,2.59-2.15,3.88c0.72,1.28,1.44,2.55,2.16,3.82 - C216.24,43.24,217.67,43.22,219.11,43.2z"/> -<linearGradient id="SVGID_104_" gradientUnits="userSpaceOnUse" x1="-233.4233" y1="-312.3262" x2="-229.0005" y2="-304.6656" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_104_)" d="M219.09,31.83c0.71-1.29,1.43-2.58,2.14-3.87c-0.72-1.27-1.44-2.54-2.16-3.82 - c-1.43,0.01-2.87,0.02-4.3,0.04c-0.71,1.29-1.43,2.58-2.14,3.87c0.72,1.28,1.44,2.55,2.16,3.83 - C216.23,31.86,217.66,31.85,219.09,31.83z"/> -<linearGradient id="SVGID_105_" gradientUnits="userSpaceOnUse" x1="-233.4058" y1="-323.6953" x2="-228.9893" y2="-316.0457" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_105_)" d="M219.08,20.46c0.71-1.29,1.43-2.57,2.14-3.86c-0.72-1.28-1.43-2.55-2.15-3.83 - c-1.43,0.01-2.87,0.01-4.3,0.02c-0.71,1.29-1.43,2.57-2.14,3.86c0.72,1.28,1.44,2.56,2.15,3.84 - C216.21,20.49,217.64,20.47,219.08,20.46z"/> -<linearGradient id="SVGID_106_" gradientUnits="userSpaceOnUse" x1="-233.3862" y1="-335.063" x2="-228.979" y2="-327.4294" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_106_)" d="M219.06,9.1c0.71-1.29,1.43-2.57,2.14-3.85c-0.72-1.28-1.44-2.56-2.15-3.84c-1.43,0-2.86,0-4.3,0 - c-0.71,1.29-1.43,2.57-2.14,3.86c0.72,1.28,1.44,2.56,2.15,3.85C216.2,9.11,217.63,9.1,219.06,9.1z"/> -<linearGradient id="SVGID_107_" gradientUnits="userSpaceOnUse" x1="-222.2739" y1="-260.4614" x2="-217.8154" y2="-252.7391" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_107_)" d="M207.93,83.72c0.72-1.3,1.43-2.61,2.15-3.91c-0.72-1.27-1.44-2.54-2.16-3.81 - c-1.44,0.03-2.88,0.06-4.31,0.08c-0.71,1.3-1.43,2.6-2.15,3.9c0.72,1.28,1.44,2.55,2.16,3.82 - C205.05,83.78,206.49,83.75,207.93,83.72z"/> -<linearGradient id="SVGID_108_" gradientUnits="userSpaceOnUse" x1="-222.2593" y1="-271.8691" x2="-217.8081" y2="-264.1595" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_108_)" d="M207.92,72.31c0.72-1.3,1.43-2.6,2.15-3.9c-0.72-1.27-1.44-2.54-2.16-3.82 - c-1.44,0.03-2.87,0.05-4.3,0.07c-0.72,1.3-1.43,2.6-2.15,3.9c0.72,1.28,1.44,2.55,2.16,3.83C205.04,72.37,206.48,72.34,207.92,72.31 - z"/> -<linearGradient id="SVGID_109_" gradientUnits="userSpaceOnUse" x1="-222.2451" y1="-283.2788" x2="-217.7993" y2="-275.5785" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_109_)" d="M207.9,60.9c0.72-1.3,1.43-2.6,2.15-3.9c-0.72-1.27-1.44-2.55-2.16-3.82 - c-1.43,0.02-2.87,0.04-4.3,0.06c-0.72,1.3-1.43,2.59-2.15,3.89c0.72,1.28,1.44,2.56,2.16,3.84C205.03,60.95,206.47,60.92,207.9,60.9 - z"/> -<linearGradient id="SVGID_110_" gradientUnits="userSpaceOnUse" x1="-222.231" y1="-294.6875" x2="-217.792" y2="-286.999" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_110_)" d="M207.89,49.49c0.72-1.3,1.43-2.59,2.15-3.89c-0.72-1.27-1.44-2.55-2.16-3.83 - c-1.43,0.02-2.87,0.03-4.3,0.04c-0.71,1.29-1.43,2.59-2.15,3.88c0.72,1.28,1.44,2.56,2.16,3.84 - C205.02,49.53,206.46,49.51,207.89,49.49z"/> -<linearGradient id="SVGID_111_" gradientUnits="userSpaceOnUse" x1="-222.2173" y1="-306.0991" x2="-217.7837" y2="-298.4199" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_111_)" d="M207.88,38.08c0.71-1.29,1.43-2.59,2.15-3.88c-0.72-1.28-1.44-2.56-2.15-3.84 - c-1.43,0.01-2.87,0.02-4.3,0.03c-0.71,1.29-1.43,2.59-2.15,3.88c0.72,1.28,1.44,2.57,2.15,3.85 - C205.01,38.11,206.45,38.1,207.88,38.08z"/> -<linearGradient id="SVGID_112_" gradientUnits="userSpaceOnUse" x1="-222.2036" y1="-317.5083" x2="-217.7754" y2="-309.8384" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_112_)" d="M207.87,26.68c0.72-1.29,1.43-2.58,2.15-3.87c-0.72-1.28-1.44-2.56-2.15-3.84 - c-1.43,0.01-2.87,0.02-4.3,0.02c-0.72,1.29-1.43,2.58-2.15,3.87c0.72,1.29,1.44,2.57,2.15,3.85C205,26.7,206.43,26.69,207.87,26.68z - "/> -<linearGradient id="SVGID_113_" gradientUnits="userSpaceOnUse" x1="-222.1899" y1="-328.9189" x2="-217.7681" y2="-321.26" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_113_)" d="M207.86,15.27c0.71-1.29,1.43-2.58,2.14-3.87c-0.72-1.28-1.44-2.57-2.15-3.85 - c-1.43,0-2.87,0-4.3,0.01c-0.72,1.29-1.43,2.58-2.15,3.87c0.72,1.29,1.43,2.57,2.15,3.86C204.99,15.28,206.42,15.27,207.86,15.27z" - /> -<linearGradient id="SVGID_114_" gradientUnits="userSpaceOnUse" x1="-221.0752" y1="-338.3481" x2="-217.7915" y2="-332.6606" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_114_)" d="M201.39,0c0.72,1.29,1.43,2.58,2.15,3.86c1.43,0,2.86,0,4.3,0c0.71-1.29,1.43-2.58,2.14-3.86 - C207.12,0,204.26,0,201.39,0z"/> -<linearGradient id="SVGID_115_" gradientUnits="userSpaceOnUse" x1="-211.3623" y1="-255.0103" x2="-208.0376" y2="-249.2517" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_115_)" d="M199.21,85.31c-0.72-1.28-1.44-2.55-2.16-3.83c-1.44,0.02-2.87,0.04-4.31,0.05 - c-0.72,1.3-1.43,2.6-2.15,3.89C193.46,85.39,196.33,85.36,199.21,85.31z"/> -<linearGradient id="SVGID_116_" gradientUnits="userSpaceOnUse" x1="-211.3921" y1="-266.4248" x2="-206.9434" y2="-258.7194" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_116_)" d="M197.05,77.77c0.72-1.3,1.43-2.6,2.15-3.9c-0.72-1.28-1.44-2.56-2.16-3.84 - c-1.44,0.02-2.87,0.03-4.31,0.04c-0.72,1.3-1.43,2.59-2.15,3.89c0.72,1.29,1.44,2.57,2.16,3.85 - C194.18,77.81,195.61,77.79,197.05,77.77z"/> -<linearGradient id="SVGID_117_" gradientUnits="userSpaceOnUse" x1="-211.3843" y1="-277.8638" x2="-206.939" y2="-270.1643" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_117_)" d="M197.04,66.34c0.72-1.3,1.43-2.6,2.15-3.89c-0.72-1.28-1.44-2.56-2.15-3.84 - c-1.44,0.02-2.87,0.03-4.31,0.04c-0.72,1.3-1.43,2.59-2.15,3.89c0.72,1.29,1.44,2.57,2.16,3.85 - C194.17,66.37,195.6,66.35,197.04,66.34z"/> -<linearGradient id="SVGID_118_" gradientUnits="userSpaceOnUse" x1="-211.3745" y1="-289.2998" x2="-206.9336" y2="-281.6079" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_118_)" d="M197.03,54.9c0.71-1.29,1.43-2.59,2.15-3.89c-0.72-1.28-1.43-2.56-2.15-3.85 - c-1.44,0.01-2.87,0.02-4.3,0.03c-0.72,1.29-1.43,2.59-2.15,3.88c0.72,1.29,1.44,2.57,2.15,3.86 - C194.16,54.93,195.6,54.91,197.03,54.9z"/> -<linearGradient id="SVGID_119_" gradientUnits="userSpaceOnUse" x1="-211.3662" y1="-300.7378" x2="-206.9287" y2="-293.0518" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_119_)" d="M197.03,43.46c0.72-1.29,1.43-2.59,2.15-3.88c-0.72-1.28-1.44-2.57-2.15-3.85 - c-1.43,0.01-2.87,0.02-4.3,0.03c-0.71,1.29-1.43,2.59-2.15,3.88c0.72,1.29,1.43,2.57,2.15,3.86 - C194.16,43.48,195.59,43.48,197.03,43.46z"/> -<linearGradient id="SVGID_120_" gradientUnits="userSpaceOnUse" x1="-211.3569" y1="-312.1753" x2="-206.9238" y2="-304.4969" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_120_)" d="M197.02,32.03c0.71-1.29,1.43-2.59,2.15-3.88c-0.72-1.28-1.43-2.57-2.15-3.86 - c-1.43,0.01-2.87,0.01-4.3,0.02c-0.71,1.29-1.43,2.59-2.15,3.88c0.72,1.29,1.43,2.58,2.15,3.86 - C194.15,32.04,195.58,32.03,197.02,32.03z"/> -<linearGradient id="SVGID_121_" gradientUnits="userSpaceOnUse" x1="-211.3491" y1="-323.6118" x2="-206.9189" y2="-315.9385" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_121_)" d="M197.01,20.59c0.71-1.29,1.43-2.58,2.14-3.88c-0.72-1.29-1.43-2.57-2.15-3.86 - c-1.43,0-2.87,0.01-4.3,0.01c-0.72,1.29-1.43,2.58-2.15,3.88c0.72,1.29,1.43,2.58,2.15,3.87C194.14,20.6,195.58,20.6,197.01,20.59z" - /> -<linearGradient id="SVGID_122_" gradientUnits="userSpaceOnUse" x1="-211.3398" y1="-335.0503" x2="-206.9136" y2="-327.3838" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_122_)" d="M197,9.15c0.71-1.29,1.43-2.58,2.15-3.87c-0.72-1.29-1.44-2.58-2.15-3.87c-1.43,0-2.87,0-4.3,0 - c-0.71,1.29-1.43,2.58-2.15,3.87c0.72,1.29,1.43,2.58,2.15,3.87C194.13,9.16,195.57,9.16,197,9.15z"/> -<linearGradient id="SVGID_123_" gradientUnits="userSpaceOnUse" x1="-200.1514" y1="-260.1733" x2="-195.7119" y2="-252.484" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_123_)" d="M185.81,84.04c0.72-1.3,1.43-2.59,2.15-3.89c-0.72-1.29-1.44-2.57-2.15-3.86 - c-1.44,0.01-2.87,0.01-4.31,0.02c-0.72,1.29-1.44,2.59-2.15,3.88c0.72,1.29,1.43,2.58,2.15,3.87 - C182.94,84.05,184.37,84.05,185.81,84.04z"/> -<linearGradient id="SVGID_124_" gradientUnits="userSpaceOnUse" x1="-200.1489" y1="-271.625" x2="-195.7109" y2="-263.9382" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_124_)" d="M185.81,72.59c0.72-1.29,1.44-2.59,2.15-3.89c-0.72-1.29-1.44-2.57-2.15-3.86 - c-1.43,0.01-2.87,0.01-4.31,0.02c-0.72,1.29-1.44,2.58-2.15,3.88c0.72,1.29,1.44,2.58,2.15,3.87 - C182.93,72.6,184.37,72.6,185.81,72.59z"/> -<linearGradient id="SVGID_125_" gradientUnits="userSpaceOnUse" x1="-200.146" y1="-283.0791" x2="-195.7095" y2="-275.3948" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_125_)" d="M185.8,61.13c0.72-1.29,1.43-2.59,2.15-3.88c-0.72-1.29-1.44-2.58-2.15-3.86 - c-1.44,0-2.87,0.01-4.31,0.01c-0.72,1.29-1.43,2.59-2.15,3.88c0.72,1.29,1.43,2.58,2.15,3.87C182.93,61.15,184.37,61.14,185.8,61.13 - z"/> -<linearGradient id="SVGID_126_" gradientUnits="userSpaceOnUse" x1="-200.1416" y1="-294.5293" x2="-195.7075" y2="-286.8492" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_126_)" d="M185.8,49.68c0.72-1.29,1.43-2.59,2.15-3.88c-0.72-1.29-1.44-2.58-2.15-3.86 - c-1.43,0-2.87,0.01-4.3,0.01c-0.72,1.29-1.43,2.58-2.15,3.87c0.72,1.29,1.43,2.58,2.15,3.87C182.93,49.69,184.37,49.69,185.8,49.68z - "/> -<linearGradient id="SVGID_127_" gradientUnits="userSpaceOnUse" x1="-200.1396" y1="-305.9839" x2="-195.7061" y2="-298.3047" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_127_)" d="M185.8,38.23c0.72-1.29,1.43-2.59,2.15-3.88c-0.72-1.29-1.44-2.58-2.15-3.87 - c-1.43,0-2.87,0.01-4.3,0.01c-0.72,1.29-1.43,2.58-2.15,3.88c0.72,1.29,1.43,2.58,2.15,3.87C182.93,38.24,184.36,38.24,185.8,38.23z - "/> -<linearGradient id="SVGID_128_" gradientUnits="userSpaceOnUse" x1="-200.1367" y1="-317.4355" x2="-195.7051" y2="-309.7597" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_128_)" d="M185.79,26.78c0.71-1.29,1.43-2.59,2.15-3.88c-0.72-1.29-1.43-2.58-2.15-3.87c-1.43,0-2.87,0-4.3,0 - c-0.72,1.29-1.43,2.58-2.15,3.88c0.72,1.29,1.43,2.58,2.15,3.87C182.93,26.78,184.36,26.78,185.79,26.78z"/> -<linearGradient id="SVGID_129_" gradientUnits="userSpaceOnUse" x1="-200.1338" y1="-328.8887" x2="-195.7036" y2="-321.2154" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_129_)" d="M185.79,15.32c0.72-1.29,1.43-2.58,2.15-3.87c-0.72-1.29-1.43-2.58-2.15-3.87c-1.43,0-2.87,0-4.3,0 - c-0.72,1.29-1.43,2.58-2.15,3.88c0.72,1.29,1.43,2.58,2.15,3.87C182.92,15.33,184.36,15.33,185.79,15.32z"/> -<linearGradient id="SVGID_130_" gradientUnits="userSpaceOnUse" x1="-199.0234" y1="-338.3462" x2="-195.7349" y2="-332.6502" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_130_)" d="M179.34,0c0.71,1.29,1.43,2.58,2.15,3.88c1.43,0,2.86,0,4.3,0c0.72-1.29,1.43-2.58,2.15-3.87 - C185.07,0,182.21,0,179.34,0z"/> -<linearGradient id="SVGID_131_" gradientUnits="userSpaceOnUse" x1="-189.2378" y1="-254.8848" x2="-185.9585" y2="-249.2048" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_131_)" d="M177.09,85.48c-0.72-1.29-1.44-2.59-2.15-3.88c-1.44,0-2.87-0.01-4.31-0.02 - c-0.72,1.29-1.44,2.57-2.16,3.86C171.34,85.47,174.21,85.48,177.09,85.48z"/> -<linearGradient id="SVGID_132_" gradientUnits="userSpaceOnUse" x1="-189.2686" y1="-266.3203" x2="-184.8442" y2="-258.6572" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_132_)" d="M174.93,77.9c0.72-1.29,1.44-2.58,2.16-3.87c-0.72-1.29-1.44-2.58-2.15-3.88 - c-1.44,0-2.87-0.01-4.31-0.02c-0.72,1.29-1.44,2.58-2.15,3.86c0.71,1.3,1.43,2.59,2.15,3.89C172.06,77.89,173.5,77.9,174.93,77.9z" - /> -<linearGradient id="SVGID_133_" gradientUnits="userSpaceOnUse" x1="-189.272" y1="-277.7749" x2="-184.8457" y2="-270.1084" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_133_)" d="M174.93,66.44c0.72-1.29,1.44-2.58,2.15-3.87c-0.72-1.29-1.44-2.58-2.15-3.88 - c-1.43,0-2.87-0.01-4.31-0.01c-0.72,1.29-1.44,2.58-2.15,3.86c0.72,1.29,1.43,2.59,2.15,3.88C172.06,66.44,173.5,66.44,174.93,66.44 - z"/> -<linearGradient id="SVGID_134_" gradientUnits="userSpaceOnUse" x1="-189.2744" y1="-289.2305" x2="-184.8472" y2="-281.5623" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_134_)" d="M174.93,54.99c0.72-1.29,1.43-2.58,2.15-3.87c-0.72-1.29-1.44-2.59-2.15-3.88 - c-1.43,0-2.87-0.01-4.3-0.01c-0.72,1.29-1.43,2.58-2.15,3.87c0.72,1.29,1.44,2.59,2.15,3.88C172.06,54.98,173.5,54.98,174.93,54.99z - "/> -<linearGradient id="SVGID_135_" gradientUnits="userSpaceOnUse" x1="-189.2773" y1="-300.6846" x2="-184.8496" y2="-293.0155" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_135_)" d="M174.94,43.53c0.72-1.29,1.43-2.58,2.15-3.87c-0.72-1.29-1.43-2.58-2.15-3.88 - c-1.43,0-2.87,0-4.3-0.01c-0.72,1.29-1.43,2.58-2.15,3.87c0.71,1.29,1.43,2.59,2.15,3.88C172.07,43.53,173.5,43.53,174.94,43.53z"/> -<linearGradient id="SVGID_136_" gradientUnits="userSpaceOnUse" x1="-189.2793" y1="-312.1377" x2="-184.8516" y2="-304.4686" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_136_)" d="M174.94,32.08c0.72-1.29,1.43-2.58,2.15-3.87c-0.72-1.29-1.43-2.58-2.15-3.88 - c-1.43,0-2.87,0-4.3-0.01c-0.71,1.29-1.43,2.58-2.15,3.87c0.71,1.29,1.43,2.59,2.15,3.88C172.07,32.08,173.5,32.08,174.94,32.08z"/> -<linearGradient id="SVGID_137_" gradientUnits="userSpaceOnUse" x1="-189.2822" y1="-323.5933" x2="-184.853" y2="-315.9217" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_137_)" d="M174.94,20.62c0.72-1.29,1.43-2.58,2.15-3.88c-0.71-1.29-1.43-2.58-2.15-3.88c-1.43,0-2.87,0-4.3,0 - c-0.72,1.29-1.43,2.58-2.15,3.87c0.72,1.29,1.43,2.59,2.15,3.88C172.07,20.62,173.5,20.62,174.94,20.62z"/> -<linearGradient id="SVGID_138_" gradientUnits="userSpaceOnUse" x1="-189.2852" y1="-335.0493" x2="-184.855" y2="-327.376" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_138_)" d="M174.94,9.17c0.72-1.29,1.43-2.58,2.15-3.87c-0.72-1.29-1.43-2.59-2.15-3.88c-1.43,0-2.87,0-4.3,0 - c-0.72,1.29-1.43,2.58-2.15,3.87c0.71,1.29,1.43,2.58,2.15,3.87C172.07,9.17,173.51,9.17,174.94,9.17z"/> -<linearGradient id="SVGID_139_" gradientUnits="userSpaceOnUse" x1="-178.0176" y1="-260.2373" x2="-173.6118" y2="-252.6063" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_139_)" d="M163.69,83.98c0.72-1.28,1.44-2.56,2.16-3.85c-0.72-1.3-1.43-2.6-2.15-3.89 - c-1.44-0.02-2.87-0.03-4.31-0.05c-0.72,1.28-1.44,2.56-2.16,3.84c0.72,1.3,1.44,2.6,2.15,3.9 - C160.82,83.94,162.25,83.96,163.69,83.98z"/> -<linearGradient id="SVGID_140_" gradientUnits="userSpaceOnUse" x1="-178.0269" y1="-271.6807" x2="-173.6177" y2="-264.0437" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_140_)" d="M163.7,72.54c0.72-1.28,1.43-2.57,2.15-3.85c-0.72-1.3-1.43-2.59-2.15-3.89 - c-1.44-0.01-2.87-0.03-4.31-0.04c-0.72,1.28-1.43,2.56-2.15,3.84c0.72,1.3,1.43,2.6,2.15,3.9C160.82,72.5,162.26,72.52,163.7,72.54z - "/> -<linearGradient id="SVGID_141_" gradientUnits="userSpaceOnUse" x1="-178.0342" y1="-283.124" x2="-173.6226" y2="-275.4829" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_141_)" d="M163.7,61.09c0.72-1.28,1.44-2.57,2.15-3.86c-0.72-1.3-1.43-2.59-2.15-3.89 - c-1.43-0.01-2.87-0.02-4.31-0.04c-0.72,1.28-1.43,2.57-2.15,3.85c0.72,1.3,1.43,2.59,2.15,3.89 - C160.83,61.07,162.26,61.08,163.7,61.09z"/> -<linearGradient id="SVGID_142_" gradientUnits="userSpaceOnUse" x1="-178.043" y1="-294.5679" x2="-173.6274" y2="-286.92" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_142_)" d="M163.71,49.65c0.72-1.28,1.44-2.57,2.15-3.86c-0.72-1.29-1.43-2.59-2.15-3.88 - c-1.43-0.01-2.87-0.02-4.31-0.03c-0.72,1.29-1.43,2.57-2.15,3.85c0.72,1.3,1.43,2.59,2.15,3.89 - C160.84,49.63,162.27,49.64,163.71,49.65z"/> -<linearGradient id="SVGID_143_" gradientUnits="userSpaceOnUse" x1="-178.0522" y1="-306.0107" x2="-173.6338" y2="-298.3578" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_143_)" d="M163.71,38.2c0.72-1.29,1.44-2.58,2.15-3.86c-0.72-1.29-1.43-2.59-2.15-3.88 - c-1.44-0.01-2.87-0.01-4.3-0.02c-0.72,1.29-1.43,2.57-2.15,3.86c0.72,1.29,1.43,2.59,2.15,3.88 - C160.84,38.19,162.28,38.2,163.71,38.2z"/> -<linearGradient id="SVGID_144_" gradientUnits="userSpaceOnUse" x1="-178.0601" y1="-317.4526" x2="-173.6396" y2="-309.7963" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_144_)" d="M163.72,26.76c0.72-1.29,1.43-2.58,2.15-3.86c-0.72-1.29-1.43-2.58-2.15-3.88 - c-1.43,0-2.87-0.01-4.3-0.01c-0.72,1.29-1.43,2.57-2.15,3.86c0.72,1.29,1.43,2.58,2.15,3.88C160.85,26.75,162.28,26.75,163.72,26.76 - z"/> -<linearGradient id="SVGID_145_" gradientUnits="userSpaceOnUse" x1="-178.0693" y1="-328.8984" x2="-173.644" y2="-321.2336" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_145_)" d="M163.72,15.31c0.72-1.29,1.43-2.58,2.15-3.87c-0.72-1.29-1.43-2.58-2.15-3.88c-1.43,0-2.87,0-4.3,0 - c-0.72,1.29-1.43,2.58-2.15,3.86c0.71,1.29,1.43,2.58,2.14,3.87C160.86,15.31,162.29,15.31,163.72,15.31z"/> -<linearGradient id="SVGID_146_" gradientUnits="userSpaceOnUse" x1="-176.9688" y1="-338.3462" x2="-173.6821" y2="-332.6536" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_146_)" d="M157.29,0c0.71,1.29,1.43,2.58,2.14,3.87c1.43,0,2.87,0,4.3,0c0.72-1.29,1.43-2.58,2.15-3.87 - C163.02,0,160.15,0,157.29,0z"/> -<linearGradient id="SVGID_147_" gradientUnits="userSpaceOnUse" x1="-167.1094" y1="-255.1313" x2="-163.8838" y2="-249.5445" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_147_)" d="M154.97,85.27c-0.72-1.3-1.43-2.6-2.15-3.9c-1.44-0.03-2.87-0.06-4.31-0.09 - c-0.72,1.27-1.44,2.54-2.16,3.81C149.22,85.15,152.09,85.21,154.97,85.27z"/> -<linearGradient id="SVGID_148_" gradientUnits="userSpaceOnUse" x1="-167.1416" y1="-266.5391" x2="-162.7549" y2="-258.941" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_148_)" d="M152.82,77.67c0.72-1.27,1.44-2.55,2.16-3.83c-0.72-1.3-1.43-2.6-2.15-3.9 - c-1.44-0.02-2.87-0.05-4.31-0.08c-0.72,1.27-1.44,2.54-2.16,3.81c0.72,1.3,1.43,2.6,2.15,3.9 - C149.95,77.61,151.38,77.64,152.82,77.67z"/> -<linearGradient id="SVGID_149_" gradientUnits="userSpaceOnUse" x1="-167.1562" y1="-277.959" x2="-162.7646" y2="-270.3525" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_149_)" d="M152.83,66.25c0.72-1.28,1.44-2.55,2.16-3.83c-0.72-1.3-1.43-2.6-2.15-3.89 - c-1.43-0.02-2.87-0.04-4.3-0.06c-0.72,1.27-1.44,2.55-2.16,3.82c0.72,1.3,1.43,2.6,2.15,3.9C149.96,66.2,151.39,66.23,152.83,66.25z - "/> -<linearGradient id="SVGID_150_" gradientUnits="userSpaceOnUse" x1="-167.168" y1="-289.3774" x2="-162.772" y2="-281.7634" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_150_)" d="M152.84,54.83c0.72-1.28,1.44-2.56,2.15-3.84c-0.71-1.29-1.43-2.59-2.15-3.89 - c-1.43-0.02-2.87-0.04-4.3-0.05c-0.72,1.28-1.44,2.55-2.16,3.83c0.72,1.3,1.43,2.59,2.15,3.89 - C149.97,54.79,151.4,54.81,152.84,54.83z"/> -<linearGradient id="SVGID_151_" gradientUnits="userSpaceOnUse" x1="-167.1821" y1="-300.7969" x2="-162.7808" y2="-293.1735" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_151_)" d="M152.85,43.4c0.72-1.28,1.44-2.56,2.15-3.84c-0.71-1.3-1.43-2.59-2.15-3.88 - c-1.43-0.01-2.87-0.03-4.3-0.04c-0.72,1.28-1.44,2.56-2.16,3.83c0.71,1.3,1.43,2.59,2.15,3.88 - C149.98,43.37,151.41,43.39,152.85,43.4z"/> -<linearGradient id="SVGID_152_" gradientUnits="userSpaceOnUse" x1="-167.1958" y1="-312.2178" x2="-162.7891" y2="-304.5851" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_152_)" d="M152.86,31.98c0.72-1.28,1.44-2.57,2.15-3.85c-0.71-1.29-1.43-2.59-2.15-3.88 - c-1.43-0.01-2.87-0.02-4.3-0.03c-0.72,1.28-1.44,2.56-2.15,3.84c0.72,1.29,1.43,2.58,2.15,3.88 - C149.99,31.96,151.42,31.97,152.86,31.98z"/> -<linearGradient id="SVGID_153_" gradientUnits="userSpaceOnUse" x1="-167.21" y1="-323.6357" x2="-162.7969" y2="-315.9921" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_153_)" d="M152.87,20.56c0.72-1.29,1.43-2.57,2.15-3.86c-0.72-1.29-1.43-2.58-2.15-3.87 - c-1.43,0-2.87-0.01-4.3-0.01c-0.72,1.28-1.44,2.57-2.15,3.85c0.71,1.29,1.43,2.58,2.14,3.87C150,20.55,151.44,20.56,152.87,20.56z" - /> -<linearGradient id="SVGID_154_" gradientUnits="userSpaceOnUse" x1="-167.2231" y1="-335.0566" x2="-162.8057" y2="-327.4053" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_154_)" d="M152.88,9.14c0.72-1.29,1.43-2.57,2.15-3.86c-0.71-1.29-1.43-2.58-2.14-3.87c-1.43,0-2.86,0-4.3,0 - c-0.72,1.29-1.43,2.57-2.15,3.86c0.72,1.29,1.43,2.57,2.15,3.86C150.01,9.13,151.45,9.14,152.88,9.14z"/> -<linearGradient id="SVGID_155_" gradientUnits="userSpaceOnUse" x1="-155.8848" y1="-260.6543" x2="-151.5269" y2="-253.1062" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_155_)" d="M141.58,83.54c0.72-1.26,1.44-2.53,2.16-3.79c-0.72-1.31-1.43-2.61-2.15-3.91 - c-1.44-0.04-2.87-0.08-4.31-0.12c-0.72,1.26-1.44,2.52-2.16,3.78c0.72,1.3,1.43,2.61,2.15,3.91 - C138.7,83.45,140.14,83.5,141.58,83.54z"/> -<linearGradient id="SVGID_156_" gradientUnits="userSpaceOnUse" x1="-155.9028" y1="-272.0366" x2="-151.5381" y2="-264.4767" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_156_)" d="M141.59,72.15c0.72-1.27,1.44-2.53,2.16-3.8c-0.71-1.3-1.43-2.6-2.15-3.9 - c-1.44-0.03-2.87-0.07-4.31-0.1c-0.72,1.26-1.44,2.52-2.16,3.78c0.71,1.3,1.43,2.6,2.15,3.9C138.72,72.08,140.15,72.12,141.59,72.15 - z"/> -<linearGradient id="SVGID_157_" gradientUnits="userSpaceOnUse" x1="-155.9214" y1="-283.4185" x2="-151.5493" y2="-275.8458" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_157_)" d="M141.6,60.77c0.72-1.27,1.44-2.54,2.16-3.81c-0.71-1.3-1.43-2.6-2.15-3.89 - c-1.43-0.03-2.87-0.05-4.3-0.08c-0.72,1.27-1.44,2.53-2.16,3.8c0.71,1.3,1.43,2.6,2.15,3.89C138.73,60.71,140.17,60.74,141.6,60.77z - "/> -<linearGradient id="SVGID_158_" gradientUnits="userSpaceOnUse" x1="-155.9399" y1="-294.7988" x2="-151.5601" y2="-287.2126" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_158_)" d="M141.62,49.39c0.72-1.27,1.44-2.54,2.16-3.82c-0.72-1.29-1.43-2.59-2.15-3.88 - c-1.44-0.02-2.87-0.04-4.3-0.07c-0.72,1.27-1.44,2.54-2.16,3.81c0.71,1.29,1.43,2.59,2.14,3.88 - C138.75,49.33,140.18,49.36,141.62,49.39z"/> -<linearGradient id="SVGID_159_" gradientUnits="userSpaceOnUse" x1="-155.9604" y1="-306.1821" x2="-151.5728" y2="-298.5824" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_159_)" d="M141.63,38c0.72-1.27,1.44-2.55,2.16-3.83c-0.72-1.29-1.43-2.59-2.15-3.88 - c-1.44-0.01-2.87-0.03-4.3-0.05c-0.72,1.27-1.44,2.54-2.16,3.82c0.71,1.29,1.43,2.58,2.15,3.87C138.76,37.96,140.2,37.98,141.63,38z - "/> -<linearGradient id="SVGID_160_" gradientUnits="userSpaceOnUse" x1="-155.9785" y1="-317.5605" x2="-151.5845" y2="-309.9498" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_160_)" d="M141.65,26.62c0.72-1.28,1.44-2.55,2.16-3.83c-0.72-1.29-1.43-2.58-2.15-3.87 - c-1.43-0.01-2.87-0.02-4.3-0.03c-0.72,1.28-1.44,2.55-2.15,3.82c0.71,1.29,1.43,2.57,2.14,3.86 - C138.78,26.59,140.21,26.6,141.65,26.62z"/> -<linearGradient id="SVGID_161_" gradientUnits="userSpaceOnUse" x1="-155.9971" y1="-328.9438" x2="-151.5952" y2="-321.3196" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_161_)" d="M141.66,15.24c0.72-1.28,1.44-2.56,2.16-3.84c-0.71-1.29-1.43-2.57-2.14-3.86 - c-1.43,0-2.87-0.01-4.3-0.01c-0.72,1.28-1.44,2.56-2.15,3.83c0.71,1.28,1.43,2.57,2.14,3.85C138.79,15.22,140.23,15.23,141.66,15.24 - z"/> -<linearGradient id="SVGID_162_" gradientUnits="userSpaceOnUse" x1="-154.9106" y1="-338.3506" x2="-151.6333" y2="-332.6741" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_162_)" d="M135.24,0c0.71,1.28,1.43,2.56,2.14,3.84c1.43,0,2.87,0,4.3,0.01c0.72-1.28,1.44-2.57,2.15-3.85 - C140.96,0,138.1,0,135.24,0z"/> -<linearGradient id="SVGID_163_" gradientUnits="userSpaceOnUse" x1="-144.9844" y1="-255.7524" x2="-141.8208" y2="-250.273" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_163_)" d="M132.85,84.67c-0.72-1.31-1.43-2.61-2.15-3.91c-1.44-0.05-2.87-0.11-4.31-0.16 - c-0.72,1.25-1.44,2.49-2.16,3.74C127.11,84.45,129.98,84.56,132.85,84.67z"/> -<linearGradient id="SVGID_164_" gradientUnits="userSpaceOnUse" x1="-145.0103" y1="-267.0806" x2="-140.6787" y2="-259.5781" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_164_)" d="M130.71,77.08c0.72-1.25,1.44-2.51,2.16-3.76c-0.72-1.3-1.43-2.6-2.15-3.9 - c-1.44-0.05-2.87-0.09-4.31-0.14c-0.72,1.25-1.44,2.5-2.16,3.75c0.71,1.3,1.43,2.6,2.14,3.91 - C127.84,76.98,129.28,77.03,130.71,77.08z"/> -<linearGradient id="SVGID_165_" gradientUnits="userSpaceOnUse" x1="-145.0361" y1="-278.4165" x2="-140.6929" y2="-270.8938" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_165_)" d="M130.73,65.75c0.72-1.26,1.44-2.51,2.16-3.78c-0.72-1.3-1.43-2.59-2.15-3.89 - c-1.44-0.04-2.87-0.07-4.31-0.12c-0.72,1.25-1.44,2.51-2.16,3.76c0.71,1.29,1.43,2.59,2.15,3.89 - C127.86,65.66,129.29,65.71,130.73,65.75z"/> -<linearGradient id="SVGID_166_" gradientUnits="userSpaceOnUse" x1="-145.0601" y1="-289.7476" x2="-140.7085" y2="-282.2104" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_166_)" d="M130.75,54.41c0.72-1.26,1.44-2.52,2.16-3.79c-0.71-1.3-1.43-2.59-2.14-3.88 - c-1.44-0.03-2.87-0.06-4.3-0.09c-0.72,1.26-1.44,2.52-2.16,3.77c0.71,1.29,1.43,2.58,2.14,3.88 - C127.88,54.34,129.31,54.38,130.75,54.41z"/> -<linearGradient id="SVGID_167_" gradientUnits="userSpaceOnUse" x1="-145.0835" y1="-301.0791" x2="-140.7217" y2="-293.5242" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_167_)" d="M130.77,43.08c0.72-1.26,1.44-2.53,2.16-3.8c-0.71-1.29-1.43-2.58-2.14-3.87 - c-1.43-0.02-2.87-0.05-4.3-0.07c-0.72,1.26-1.44,2.52-2.16,3.79c0.71,1.29,1.43,2.58,2.14,3.87 - C127.9,43.02,129.33,43.05,130.77,43.08z"/> -<linearGradient id="SVGID_168_" gradientUnits="userSpaceOnUse" x1="-145.1064" y1="-312.4102" x2="-140.7358" y2="-304.8401" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_168_)" d="M130.79,31.74c0.72-1.27,1.44-2.54,2.16-3.81c-0.72-1.29-1.43-2.58-2.14-3.86 - c-1.43-0.02-2.87-0.03-4.3-0.05c-0.72,1.27-1.44,2.53-2.16,3.8c0.71,1.28,1.43,2.57,2.14,3.86 - C127.92,31.7,129.35,31.72,130.79,31.74z"/> -<linearGradient id="SVGID_169_" gradientUnits="userSpaceOnUse" x1="-145.1304" y1="-323.7427" x2="-140.75" y2="-316.1556" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_169_)" d="M130.8,20.41c0.72-1.27,1.44-2.54,2.15-3.82c-0.71-1.28-1.43-2.57-2.14-3.85 - c-1.43-0.01-2.87-0.02-4.3-0.03c-0.72,1.27-1.44,2.54-2.16,3.81c0.72,1.28,1.43,2.56,2.14,3.84 - C127.94,20.38,129.37,20.39,130.8,20.41z"/> -<linearGradient id="SVGID_170_" gradientUnits="userSpaceOnUse" x1="-145.1538" y1="-335.0757" x2="-140.7642" y2="-327.4726" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_170_)" d="M130.82,9.07c0.72-1.27,1.44-2.55,2.15-3.83c-0.71-1.28-1.43-2.56-2.14-3.84c-1.43,0-2.86,0-4.3,0 - c-0.72,1.28-1.44,2.55-2.16,3.82c0.71,1.27,1.43,2.55,2.14,3.83C127.95,9.06,129.39,9.07,130.82,9.07z"/> -<linearGradient id="SVGID_171_" gradientUnits="userSpaceOnUse" x1="-133.7466" y1="-261.4253" x2="-129.4541" y2="-253.9905" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_171_)" d="M119.47,82.71c0.72-1.24,1.44-2.48,2.16-3.72c-0.71-1.3-1.43-2.6-2.14-3.91 - c-1.43-0.06-2.87-0.12-4.3-0.19c-0.72,1.24-1.44,2.47-2.16,3.7c0.71,1.3,1.43,2.6,2.14,3.91C116.6,82.58,118.03,82.65,119.47,82.71z - "/> -<linearGradient id="SVGID_172_" gradientUnits="userSpaceOnUse" x1="-133.7759" y1="-272.6929" x2="-129.4712" y2="-265.2369" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_172_)" d="M119.49,71.44c0.72-1.24,1.44-2.48,2.16-3.73c-0.72-1.3-1.43-2.59-2.15-3.89 - c-1.43-0.05-2.87-0.1-4.3-0.16c-0.72,1.24-1.44,2.48-2.16,3.71c0.71,1.3,1.43,2.59,2.14,3.89 - C116.62,71.33,118.06,71.38,119.49,71.44z"/> -<linearGradient id="SVGID_173_" gradientUnits="userSpaceOnUse" x1="-133.8062" y1="-283.9609" x2="-129.4893" y2="-276.4839" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_173_)" d="M119.51,60.17c0.72-1.25,1.44-2.5,2.16-3.75c-0.71-1.3-1.43-2.59-2.14-3.88 - c-1.43-0.04-2.87-0.08-4.3-0.13c-0.72,1.25-1.44,2.49-2.16,3.73c0.71,1.29,1.43,2.58,2.14,3.88 - C116.64,60.07,118.08,60.12,119.51,60.17z"/> -<linearGradient id="SVGID_174_" gradientUnits="userSpaceOnUse" x1="-133.8359" y1="-295.2256" x2="-129.5078" y2="-287.7291" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_174_)" d="M119.53,48.9c0.72-1.25,1.44-2.5,2.16-3.76c-0.71-1.29-1.43-2.58-2.14-3.87 - c-1.43-0.03-2.87-0.07-4.3-0.1c-0.72,1.25-1.44,2.5-2.16,3.74c0.71,1.29,1.43,2.57,2.14,3.86C116.66,48.82,118.1,48.86,119.53,48.9z - "/> -<linearGradient id="SVGID_175_" gradientUnits="userSpaceOnUse" x1="-133.8643" y1="-306.4946" x2="-129.5234" y2="-298.9761" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_175_)" d="M119.56,37.63c0.72-1.25,1.44-2.51,2.15-3.77c-0.71-1.29-1.43-2.57-2.14-3.85 - c-1.43-0.02-2.87-0.05-4.3-0.07c-0.72,1.26-1.44,2.51-2.16,3.76c0.71,1.28,1.43,2.56,2.14,3.85 - C116.69,37.56,118.12,37.6,119.56,37.63z"/> -<linearGradient id="SVGID_176_" gradientUnits="userSpaceOnUse" x1="-133.8916" y1="-317.7617" x2="-129.5396" y2="-310.2238" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_176_)" d="M119.58,26.35c0.72-1.26,1.44-2.52,2.16-3.79c-0.71-1.28-1.43-2.56-2.14-3.84 - c-1.43-0.02-2.87-0.03-4.3-0.05c-0.72,1.26-1.44,2.52-2.16,3.78c0.71,1.28,1.43,2.55,2.14,3.83 - C116.71,26.31,118.14,26.33,119.58,26.35z"/> -<linearGradient id="SVGID_177_" gradientUnits="userSpaceOnUse" x1="-133.9194" y1="-329.0303" x2="-129.5552" y2="-321.4712" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_177_)" d="M119.6,15.08c0.72-1.27,1.44-2.53,2.16-3.8c-0.71-1.28-1.43-2.55-2.14-3.83 - c-1.43,0-2.87-0.01-4.3-0.02c-0.72,1.27-1.44,2.53-2.15,3.79c0.71,1.27,1.43,2.54,2.14,3.82C116.73,15.06,118.16,15.07,119.6,15.08z - "/> -<linearGradient id="SVGID_178_" gradientUnits="userSpaceOnUse" x1="-132.8477" y1="-338.3555" x2="-129.5874" y2="-332.7086" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_178_)" d="M113.18,0c0.71,1.27,1.42,2.53,2.14,3.8c1.43,0,2.87,0,4.3,0.01c0.72-1.27,1.44-2.54,2.16-3.81 - C118.91,0,116.05,0,113.18,0z"/> -<linearGradient id="SVGID_179_" gradientUnits="userSpaceOnUse" x1="-122.8516" y1="-256.7583" x2="-119.7583" y2="-251.4006" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_179_)" d="M110.75,83.67c-0.72-1.3-1.43-2.61-2.14-3.9c-1.43-0.08-2.87-0.15-4.3-0.24 - c-0.72,1.22-1.44,2.44-2.16,3.65C105.01,83.35,107.88,83.52,110.75,83.67z"/> -<linearGradient id="SVGID_180_" gradientUnits="userSpaceOnUse" x1="-122.8828" y1="-267.9502" x2="-118.6206" y2="-260.5678" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_180_)" d="M108.62,76.14c0.72-1.23,1.44-2.46,2.16-3.69c-0.71-1.3-1.43-2.59-2.14-3.89 - c-1.44-0.07-2.87-0.13-4.3-0.2c-0.72,1.22-1.44,2.45-2.16,3.67c0.72,1.29,1.43,2.59,2.14,3.89C105.75,76,107.18,76.07,108.62,76.14z - "/> -<linearGradient id="SVGID_181_" gradientUnits="userSpaceOnUse" x1="-122.916" y1="-279.1445" x2="-118.6392" y2="-271.7368" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_181_)" d="M108.64,64.95c0.72-1.23,1.44-2.47,2.16-3.7c-0.71-1.29-1.43-2.59-2.14-3.88 - c-1.43-0.05-2.87-0.11-4.3-0.17c-0.72,1.23-1.44,2.46-2.16,3.68c0.71,1.29,1.43,2.58,2.14,3.87 - C105.77,64.82,107.21,64.89,108.64,64.95z"/> -<linearGradient id="SVGID_182_" gradientUnits="userSpaceOnUse" x1="-122.9473" y1="-290.3364" x2="-118.6567" y2="-282.905" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_182_)" d="M108.67,53.75c0.72-1.24,1.44-2.48,2.16-3.72c-0.71-1.29-1.43-2.57-2.14-3.86 - c-1.43-0.04-2.87-0.09-4.3-0.13c-0.72,1.24-1.44,2.47-2.16,3.7c0.71,1.28,1.43,2.57,2.14,3.85C105.8,53.65,107.23,53.7,108.67,53.75 - z"/> -<linearGradient id="SVGID_183_" gradientUnits="userSpaceOnUse" x1="-122.98" y1="-301.5293" x2="-118.6748" y2="-294.0725" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_183_)" d="M108.69,42.55c0.72-1.24,1.44-2.49,2.16-3.73c-0.71-1.28-1.43-2.56-2.14-3.84 - c-1.43-0.03-2.87-0.07-4.3-0.1c-0.72,1.24-1.44,2.48-2.16,3.72c0.71,1.28,1.43,2.55,2.14,3.84 - C105.82,42.47,107.25,42.51,108.69,42.55z"/> -<linearGradient id="SVGID_184_" gradientUnits="userSpaceOnUse" x1="-123.0132" y1="-312.7188" x2="-118.6953" y2="-305.24" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_184_)" d="M108.71,31.35c0.72-1.25,1.44-2.5,2.16-3.75c-0.71-1.28-1.43-2.55-2.14-3.82 - c-1.43-0.02-2.87-0.05-4.3-0.07c-0.72,1.25-1.44,2.49-2.16,3.73c0.71,1.27,1.43,2.54,2.14,3.82 - C105.85,31.29,107.28,31.33,108.71,31.35z"/> -<linearGradient id="SVGID_185_" gradientUnits="userSpaceOnUse" x1="-123.0459" y1="-323.9121" x2="-118.7134" y2="-316.408" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_185_)" d="M108.74,20.16c0.72-1.25,1.44-2.51,2.16-3.76c-0.71-1.27-1.43-2.54-2.14-3.81 - c-1.43-0.01-2.87-0.02-4.3-0.04c-0.72,1.26-1.44,2.5-2.16,3.75c0.71,1.26,1.43,2.53,2.14,3.8C105.87,20.12,107.3,20.14,108.74,20.16 - z"/> -<linearGradient id="SVGID_186_" gradientUnits="userSpaceOnUse" x1="-123.0781" y1="-335.1045" x2="-118.7324" y2="-327.5775" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_186_)" d="M108.76,8.96c0.72-1.26,1.44-2.52,2.16-3.78c-0.71-1.26-1.43-2.53-2.14-3.79c-1.43,0-2.87,0-4.3,0 - c-0.72,1.26-1.44,2.51-2.16,3.77c0.71,1.26,1.43,2.52,2.14,3.78C105.9,8.94,107.33,8.95,108.76,8.96z"/> -<linearGradient id="SVGID_187_" gradientUnits="userSpaceOnUse" x1="-111.6235" y1="-262.5454" x2="-107.4111" y2="-255.2493" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_187_)" d="M97.38,81.5c0.72-1.21,1.44-2.41,2.16-3.63c-0.71-1.3-1.43-2.59-2.14-3.88 - c-1.44-0.08-2.87-0.17-4.3-0.25c-0.72,1.21-1.44,2.41-2.16,3.61c0.71,1.29,1.42,2.59,2.14,3.88C94.51,81.32,95.95,81.41,97.38,81.5z - "/> -<linearGradient id="SVGID_188_" gradientUnits="userSpaceOnUse" x1="-111.6582" y1="-273.647" x2="-107.4292" y2="-266.3221" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_188_)" d="M97.41,70.4c0.72-1.21,1.44-2.43,2.16-3.65c-0.71-1.29-1.43-2.58-2.14-3.87 - c-1.43-0.07-2.87-0.14-4.3-0.22c-0.72,1.21-1.44,2.42-2.16,3.62c0.71,1.29,1.43,2.57,2.14,3.86C94.54,70.24,95.97,70.32,97.41,70.4z - "/> -<linearGradient id="SVGID_189_" gradientUnits="userSpaceOnUse" x1="-111.6929" y1="-284.749" x2="-107.4473" y2="-277.3954" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_189_)" d="M97.43,59.29c0.72-1.22,1.44-2.44,2.16-3.67c-0.71-1.28-1.43-2.57-2.14-3.85 - c-1.43-0.06-2.87-0.12-4.3-0.18c-0.72,1.22-1.44,2.43-2.16,3.65c0.71,1.28,1.43,2.56,2.14,3.84C94.57,59.16,96,59.22,97.43,59.29z" - /> -<linearGradient id="SVGID_190_" gradientUnits="userSpaceOnUse" x1="-111.7285" y1="-295.8501" x2="-107.4668" y2="-288.4686" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_190_)" d="M97.46,48.18c0.72-1.22,1.44-2.45,2.16-3.68c-0.71-1.28-1.43-2.55-2.14-3.83 - c-1.43-0.05-2.87-0.09-4.3-0.14c-0.72,1.22-1.44,2.45-2.16,3.67c0.71,1.27,1.43,2.55,2.14,3.82C94.59,48.07,96.03,48.13,97.46,48.18 - z"/> -<linearGradient id="SVGID_191_" gradientUnits="userSpaceOnUse" x1="-111.7642" y1="-306.9541" x2="-107.4854" y2="-299.543" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_191_)" d="M97.49,37.08c0.72-1.23,1.44-2.46,2.16-3.7c-0.71-1.27-1.42-2.54-2.14-3.81 - c-1.43-0.03-2.87-0.06-4.3-0.1c-0.72,1.23-1.44,2.46-2.16,3.68c0.71,1.27,1.43,2.53,2.14,3.8C94.62,36.99,96.05,37.04,97.49,37.08z" - /> -<linearGradient id="SVGID_192_" gradientUnits="userSpaceOnUse" x1="-111.7983" y1="-318.0527" x2="-107.5044" y2="-310.6154" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_192_)" d="M97.51,25.97c0.72-1.24,1.44-2.48,2.16-3.72c-0.72-1.27-1.43-2.53-2.14-3.79 - c-1.43-0.02-2.87-0.04-4.3-0.06c-0.72,1.24-1.44,2.47-2.16,3.7c0.71,1.26,1.43,2.52,2.14,3.78C94.65,25.91,96.08,25.94,97.51,25.97z - "/> -<linearGradient id="SVGID_193_" gradientUnits="userSpaceOnUse" x1="-111.8354" y1="-329.1562" x2="-107.5239" y2="-321.6885" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_193_)" d="M97.54,14.86c0.72-1.25,1.44-2.49,2.16-3.74c-0.71-1.26-1.43-2.52-2.14-3.78 - c-1.43-0.01-2.87-0.01-4.3-0.02c-0.72,1.24-1.44,2.49-2.16,3.72c0.71,1.25,1.42,2.51,2.14,3.76C94.67,14.83,96.11,14.85,97.54,14.86 - z"/> -<linearGradient id="SVGID_194_" gradientUnits="userSpaceOnUse" x1="-110.7812" y1="-338.3633" x2="-107.5464" y2="-332.7603" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_194_)" d="M91.13,0c0.71,1.25,1.43,2.5,2.14,3.74c1.43,0,2.87,0.01,4.3,0.01C98.28,2.51,99,1.25,99.72,0 - C96.86,0,93.99,0,91.13,0z"/> -<linearGradient id="SVGID_195_" gradientUnits="userSpaceOnUse" x1="-100.7314" y1="-258.1406" x2="-97.7163" y2="-252.9183" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_195_)" d="M88.67,82.29c-0.71-1.3-1.43-2.59-2.14-3.88c-1.43-0.1-2.87-0.2-4.3-0.31 - c-0.72,1.18-1.44,2.37-2.16,3.54C82.94,81.87,85.8,82.08,88.67,82.29z"/> -<linearGradient id="SVGID_196_" gradientUnits="userSpaceOnUse" x1="-100.7686" y1="-269.1406" x2="-96.5928" y2="-261.908" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_196_)" d="M86.54,74.85c0.72-1.19,1.44-2.39,2.16-3.59c-0.71-1.29-1.43-2.57-2.14-3.86 - c-1.43-0.09-2.87-0.17-4.3-0.26c-0.72,1.19-1.44,2.38-2.16,3.56c0.71,1.28,1.43,2.57,2.14,3.85C83.67,74.66,85.11,74.75,86.54,74.85 - z"/> -<linearGradient id="SVGID_197_" gradientUnits="userSpaceOnUse" x1="-100.8052" y1="-280.1421" x2="-96.6094" y2="-272.8748" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_197_)" d="M86.57,63.84c0.72-1.2,1.44-2.4,2.16-3.61c-0.71-1.28-1.43-2.56-2.14-3.84 - c-1.43-0.07-2.87-0.15-4.3-0.22c-0.72,1.2-1.44,2.39-2.16,3.59c0.71,1.27,1.43,2.55,2.14,3.83C83.7,63.68,85.13,63.76,86.57,63.84z" - /> -<linearGradient id="SVGID_198_" gradientUnits="userSpaceOnUse" x1="-100.8433" y1="-291.1426" x2="-96.6304" y2="-283.8456" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_198_)" d="M86.6,52.84c0.72-1.21,1.44-2.42,2.16-3.63c-0.71-1.27-1.43-2.54-2.14-3.82 - c-1.43-0.06-2.87-0.12-4.3-0.18c-0.72,1.21-1.44,2.41-2.16,3.61c0.71,1.27,1.43,2.54,2.14,3.81C83.73,52.7,85.16,52.77,86.6,52.84z" - /> -<linearGradient id="SVGID_199_" gradientUnits="userSpaceOnUse" x1="-100.8804" y1="-302.145" x2="-96.6479" y2="-294.8142" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_199_)" d="M86.62,41.83c0.72-1.21,1.44-2.43,2.16-3.65c-0.71-1.27-1.43-2.53-2.14-3.8 - c-1.43-0.04-2.87-0.09-4.3-0.13c-0.72,1.21-1.44,2.43-2.16,3.63c0.71,1.26,1.43,2.52,2.14,3.79C83.76,41.72,85.19,41.78,86.62,41.83 - z"/> -<linearGradient id="SVGID_200_" gradientUnits="userSpaceOnUse" x1="-100.9175" y1="-313.145" x2="-96.667" y2="-305.783" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_200_)" d="M86.65,30.82c0.72-1.22,1.44-2.44,2.16-3.67c-0.71-1.26-1.43-2.52-2.14-3.78 - c-1.43-0.03-2.87-0.06-4.3-0.09c-0.72,1.22-1.44,2.44-2.16,3.65c0.71,1.25,1.43,2.51,2.14,3.76C83.79,30.74,85.22,30.78,86.65,30.82 - z"/> -<linearGradient id="SVGID_201_" gradientUnits="userSpaceOnUse" x1="-100.9561" y1="-324.1465" x2="-96.6865" y2="-316.7514" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_201_)" d="M86.68,19.82c0.72-1.23,1.44-2.46,2.16-3.69c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.02-2.87-0.03-4.3-0.05c-0.72,1.23-1.44,2.46-2.16,3.67c0.71,1.25,1.43,2.49,2.14,3.74C83.81,19.77,85.25,19.79,86.68,19.82 - z"/> -<linearGradient id="SVGID_202_" gradientUnits="userSpaceOnUse" x1="-100.9922" y1="-335.146" x2="-96.7056" y2="-327.7213" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_202_)" d="M86.71,8.81c0.72-1.24,1.44-2.47,2.16-3.71c-0.71-1.25-1.43-2.49-2.14-3.73 - c-1.43,0-2.86,0-4.3-0.01c-0.72,1.23-1.44,2.47-2.16,3.7c0.71,1.24,1.42,2.48,2.14,3.72C83.84,8.79,85.27,8.8,86.71,8.81z"/> -<linearGradient id="SVGID_203_" gradientUnits="userSpaceOnUse" x1="-89.5137" y1="-264.0156" x2="-85.3979" y2="-256.887" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_203_)" d="M75.32,79.91c0.72-1.17,1.44-2.34,2.16-3.52c-0.71-1.28-1.43-2.57-2.14-3.85 - c-1.43-0.11-2.87-0.21-4.3-0.32c-0.72,1.17-1.44,2.33-2.16,3.49c0.71,1.28,1.42,2.56,2.14,3.84C72.45,79.68,73.88,79.8,75.32,79.91z - "/> -<linearGradient id="SVGID_204_" gradientUnits="userSpaceOnUse" x1="-89.5513" y1="-274.9004" x2="-85.4146" y2="-267.7354" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_204_)" d="M75.34,69.02c0.72-1.18,1.44-2.36,2.16-3.54c-0.71-1.28-1.42-2.55-2.14-3.82 - c-1.43-0.09-2.87-0.18-4.3-0.27c-0.72,1.17-1.44,2.35-2.16,3.52c0.71,1.27,1.42,2.54,2.14,3.82C72.48,68.82,73.91,68.92,75.34,69.02 - z"/> -<linearGradient id="SVGID_205_" gradientUnits="userSpaceOnUse" x1="-89.5903" y1="-285.7837" x2="-85.4336" y2="-278.584" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_205_)" d="M75.37,58.13c0.72-1.19,1.44-2.37,2.16-3.57c-0.71-1.27-1.43-2.54-2.14-3.8 - c-1.43-0.08-2.86-0.15-4.3-0.23c-0.72,1.18-1.44,2.37-2.16,3.54c0.71,1.26,1.43,2.53,2.14,3.79C72.51,57.96,73.94,58.05,75.37,58.13 - z"/> -<linearGradient id="SVGID_206_" gradientUnits="userSpaceOnUse" x1="-89.6284" y1="-296.668" x2="-85.4502" y2="-289.4311" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_206_)" d="M75.4,47.24c0.72-1.19,1.44-2.39,2.16-3.59c-0.71-1.26-1.43-2.52-2.14-3.78 - c-1.43-0.06-2.86-0.12-4.3-0.18c-0.72,1.19-1.44,2.38-2.16,3.57c0.71,1.25,1.43,2.51,2.14,3.77C72.53,47.1,73.97,47.17,75.4,47.24z" - /> -<linearGradient id="SVGID_207_" gradientUnits="userSpaceOnUse" x1="-89.6689" y1="-307.5522" x2="-85.4692" y2="-300.2781" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_207_)" d="M75.43,36.35c0.72-1.2,1.44-2.41,2.16-3.61c-0.71-1.25-1.42-2.51-2.14-3.75 - c-1.43-0.04-2.87-0.08-4.3-0.13c-0.72,1.2-1.44,2.4-2.16,3.59c0.71,1.25,1.42,2.49,2.14,3.74C72.56,36.25,73.99,36.3,75.43,36.35z" - /> -<linearGradient id="SVGID_208_" gradientUnits="userSpaceOnUse" x1="-89.7065" y1="-318.436" x2="-85.4863" y2="-311.1264" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_208_)" d="M75.46,25.46c0.72-1.21,1.44-2.42,2.16-3.64c-0.71-1.24-1.43-2.49-2.14-3.73 - c-1.43-0.02-2.87-0.05-4.3-0.08c-0.72,1.21-1.44,2.41-2.16,3.61c0.71,1.24,1.43,2.48,2.14,3.72C72.59,25.39,74.02,25.43,75.46,25.46 - z"/> -<linearGradient id="SVGID_209_" gradientUnits="userSpaceOnUse" x1="-89.7466" y1="-329.3203" x2="-85.5044" y2="-321.9726" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_209_)" d="M75.48,14.57c0.72-1.22,1.44-2.44,2.16-3.66c-0.71-1.24-1.43-2.47-2.14-3.71 - c-1.43-0.01-2.87-0.02-4.3-0.03c-0.72,1.22-1.44,2.43-2.16,3.64c0.71,1.23,1.43,2.46,2.14,3.69C72.62,14.53,74.05,14.55,75.48,14.57 - z"/> -<linearGradient id="SVGID_210_" gradientUnits="userSpaceOnUse" x1="-88.7231" y1="-338.3652" x2="-85.522" y2="-332.8206" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_210_)" d="M69.07,0c0.71,1.22,1.43,2.44,2.14,3.67c1.43,0.01,2.87,0.01,4.3,0.02 - c0.72-1.23,1.44-2.45,2.16-3.68C74.8,0,71.94,0,69.07,0z"/> -<linearGradient id="SVGID_211_" gradientUnits="userSpaceOnUse" x1="-78.6309" y1="-259.8955" x2="-75.7031" y2="-254.8245" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_211_)" d="M66.62,80.52c-0.71-1.28-1.43-2.56-2.14-3.83c-1.43-0.13-2.86-0.25-4.29-0.38 - c-0.72,1.14-1.44,2.28-2.15,3.42C60.89,80,63.75,80.26,66.62,80.52z"/> -<linearGradient id="SVGID_212_" gradientUnits="userSpaceOnUse" x1="-78.6694" y1="-270.6533" x2="-74.5952" y2="-263.5966" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_212_)" d="M64.49,73.2c0.72-1.15,1.44-2.31,2.16-3.47c-0.71-1.27-1.43-2.54-2.14-3.81 - c-1.43-0.11-2.86-0.21-4.29-0.33c-0.72,1.15-1.44,2.3-2.15,3.45c0.71,1.26,1.42,2.53,2.14,3.8C61.63,72.96,63.06,73.08,64.49,73.2z" - /> -<linearGradient id="SVGID_213_" gradientUnits="userSpaceOnUse" x1="-78.7085" y1="-281.4111" x2="-74.6104" y2="-274.3129" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_213_)" d="M64.52,62.44c0.72-1.16,1.44-2.33,2.16-3.5c-0.71-1.26-1.42-2.52-2.14-3.78 - c-1.43-0.09-2.86-0.18-4.3-0.27c-0.72,1.16-1.44,2.32-2.15,3.47c0.71,1.25,1.42,2.51,2.14,3.77C61.65,62.23,63.08,62.33,64.52,62.44 - z"/> -<linearGradient id="SVGID_214_" gradientUnits="userSpaceOnUse" x1="-78.7466" y1="-292.1685" x2="-74.6265" y2="-285.0322" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_214_)" d="M64.54,51.67c0.72-1.17,1.44-2.35,2.16-3.53c-0.71-1.25-1.42-2.51-2.14-3.75 - c-1.43-0.07-2.86-0.15-4.3-0.22c-0.72,1.17-1.44,2.34-2.16,3.5c0.71,1.24,1.42,2.49,2.14,3.75C61.68,51.5,63.11,51.59,64.54,51.67z" - /> -<linearGradient id="SVGID_215_" gradientUnits="userSpaceOnUse" x1="-78.7861" y1="-302.9268" x2="-74.6421" y2="-295.7491" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_215_)" d="M64.57,40.91c0.72-1.18,1.44-2.36,2.16-3.55c-0.71-1.25-1.43-2.49-2.14-3.73 - c-1.43-0.05-2.86-0.11-4.29-0.17c-0.72,1.18-1.44,2.36-2.16,3.53c0.71,1.24,1.43,2.48,2.14,3.72 - C61.71,40.77,63.14,40.84,64.57,40.91z"/> -<linearGradient id="SVGID_216_" gradientUnits="userSpaceOnUse" x1="-78.8252" y1="-313.6831" x2="-74.6592" y2="-306.4673" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_216_)" d="M64.6,30.14c0.72-1.19,1.44-2.38,2.16-3.58c-0.71-1.24-1.43-2.47-2.14-3.7 - c-1.43-0.04-2.86-0.08-4.3-0.11c-0.72,1.19-1.44,2.37-2.16,3.55c0.71,1.23,1.42,2.46,2.14,3.69C61.74,30.04,63.17,30.09,64.6,30.14z - "/> -<linearGradient id="SVGID_217_" gradientUnits="userSpaceOnUse" x1="-78.8643" y1="-324.4409" x2="-74.6738" y2="-317.1829" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_217_)" d="M64.63,19.38c0.72-1.2,1.44-2.4,2.16-3.6c-0.71-1.23-1.43-2.46-2.14-3.68 - c-1.43-0.02-2.86-0.04-4.3-0.06c-0.72,1.2-1.44,2.39-2.16,3.58c0.71,1.22,1.43,2.44,2.14,3.66C61.76,19.32,63.19,19.35,64.63,19.38z - "/> -<linearGradient id="SVGID_218_" gradientUnits="userSpaceOnUse" x1="-78.9038" y1="-335.1973" x2="-74.6914" y2="-327.9012" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_218_)" d="M64.65,8.62c0.72-1.21,1.44-2.42,2.16-3.63c-0.71-1.22-1.43-2.44-2.14-3.65 - c-1.43,0-2.87,0-4.3-0.01c-0.72,1.21-1.44,2.41-2.16,3.61c0.71,1.21,1.42,2.42,2.14,3.63C61.79,8.59,63.22,8.6,64.65,8.62z"/> -<linearGradient id="SVGID_219_" gradientUnits="userSpaceOnUse" x1="-67.4243" y1="-265.8389" x2="-63.4219" y2="-258.9064" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_219_)" d="M53.28,77.94c0.72-1.13,1.44-2.26,2.15-3.39c-0.71-1.27-1.42-2.53-2.14-3.79 - c-1.43-0.13-2.86-0.26-4.29-0.39c-0.72,1.13-1.43,2.25-2.15,3.36c0.71,1.26,1.42,2.52,2.14,3.78C50.42,77.66,51.85,77.8,53.28,77.94 - z"/> -<linearGradient id="SVGID_220_" gradientUnits="userSpaceOnUse" x1="-67.4619" y1="-276.4507" x2="-63.4351" y2="-269.476" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_220_)" d="M53.3,67.32c0.72-1.14,1.44-2.28,2.15-3.42c-0.71-1.26-1.43-2.51-2.14-3.76 - c-1.43-0.11-2.86-0.22-4.29-0.33c-0.72,1.13-1.44,2.27-2.15,3.39c0.71,1.25,1.42,2.5,2.13,3.75C50.44,67.07,51.88,67.2,53.3,67.32z" - /> -<linearGradient id="SVGID_221_" gradientUnits="userSpaceOnUse" x1="-67.4995" y1="-287.0659" x2="-63.4458" y2="-280.0447" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_221_)" d="M53.33,56.7c0.72-1.15,1.44-2.3,2.15-3.45c-0.71-1.25-1.42-2.49-2.14-3.73 - c-1.43-0.09-2.86-0.18-4.29-0.27c-0.72,1.14-1.44,2.28-2.15,3.42c0.71,1.24,1.43,2.48,2.14,3.72C50.47,56.49,51.9,56.59,53.33,56.7z - "/> -<linearGradient id="SVGID_222_" gradientUnits="userSpaceOnUse" x1="-67.5376" y1="-297.6787" x2="-63.46" y2="-290.616" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_222_)" d="M53.36,46.08c0.72-1.16,1.44-2.32,2.15-3.48c-0.71-1.24-1.43-2.47-2.14-3.71 - c-1.43-0.07-2.86-0.14-4.29-0.21c-0.72,1.16-1.44,2.31-2.16,3.45c0.71,1.23,1.42,2.46,2.14,3.69 - C50.49,45.91,51.93,45.99,53.36,46.08z"/> -<linearGradient id="SVGID_223_" gradientUnits="userSpaceOnUse" x1="-67.5767" y1="-308.2935" x2="-63.4722" y2="-301.1843" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_223_)" d="M53.38,35.46c0.72-1.17,1.44-2.33,2.16-3.51c-0.71-1.23-1.42-2.46-2.14-3.68 - c-1.43-0.05-2.86-0.1-4.29-0.15c-0.72,1.16-1.44,2.32-2.16,3.48c0.71,1.22,1.42,2.44,2.14,3.66C50.52,35.33,51.95,35.39,53.38,35.46 - z"/> -<linearGradient id="SVGID_224_" gradientUnits="userSpaceOnUse" x1="-67.6147" y1="-318.9062" x2="-63.4854" y2="-311.7539" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_224_)" d="M53.41,24.83c0.72-1.17,1.44-2.35,2.16-3.54c-0.71-1.22-1.42-2.43-2.14-3.65 - c-1.43-0.03-2.86-0.06-4.29-0.1c-0.72,1.17-1.44,2.34-2.16,3.51c0.71,1.21,1.43,2.42,2.14,3.63C50.54,24.74,51.98,24.79,53.41,24.83 - z"/> -<linearGradient id="SVGID_225_" gradientUnits="userSpaceOnUse" x1="-67.6523" y1="-329.52" x2="-63.4971" y2="-322.3229" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_225_)" d="M53.43,14.21c0.72-1.19,1.44-2.37,2.16-3.57c-0.71-1.21-1.42-2.42-2.14-3.62 - c-1.43-0.01-2.86-0.03-4.3-0.04c-0.72,1.19-1.44,2.37-2.16,3.54c0.71,1.2,1.43,2.4,2.14,3.6C50.57,14.16,52,14.19,53.43,14.21z"/> -<linearGradient id="SVGID_226_" gradientUnits="userSpaceOnUse" x1="-66.6709" y1="-338.3662" x2="-63.5103" y2="-332.8918" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_226_)" d="M47.02,0c0.71,1.19,1.43,2.38,2.14,3.57c1.43,0,2.87,0.01,4.3,0.02C54.18,2.4,54.89,1.2,55.62,0 - C52.75,0,49.89,0,47.02,0z"/> -<linearGradient id="SVGID_227_" gradientUnits="userSpaceOnUse" x1="-56.5552" y1="-262.0264" x2="-53.7236" y2="-257.122" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_227_)" d="M44.6,78.36c-0.71-1.26-1.42-2.52-2.14-3.77c-1.43-0.15-2.86-0.3-4.29-0.45 - c-0.72,1.1-1.43,2.19-2.15,3.28C38.88,77.73,41.74,78.05,44.6,78.36z"/> -<linearGradient id="SVGID_228_" gradientUnits="userSpaceOnUse" x1="-56.5918" y1="-272.4888" x2="-52.6367" y2="-265.6384" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_228_)" d="M42.47,71.2c0.72-1.11,1.43-2.22,2.15-3.34c-0.71-1.25-1.42-2.5-2.14-3.74 - c-1.43-0.13-2.86-0.26-4.29-0.39c-0.71,1.11-1.43,2.21-2.15,3.31c0.71,1.24,1.42,2.48,2.13,3.73C39.61,70.91,41.04,71.05,42.47,71.2 - z"/> -<linearGradient id="SVGID_229_" gradientUnits="userSpaceOnUse" x1="-56.627" y1="-282.9502" x2="-52.644" y2="-276.0516" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_229_)" d="M42.49,60.73c0.72-1.12,1.43-2.24,2.15-3.37c-0.71-1.24-1.42-2.48-2.14-3.71 - c-1.43-0.11-2.86-0.21-4.29-0.33c-0.71,1.12-1.43,2.23-2.15,3.34c0.71,1.23,1.42,2.46,2.13,3.7C39.63,60.48,41.06,60.6,42.49,60.73z - "/> -<linearGradient id="SVGID_230_" gradientUnits="userSpaceOnUse" x1="-56.6636" y1="-293.4126" x2="-52.6523" y2="-286.4649" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_230_)" d="M42.51,50.26c0.72-1.13,1.44-2.26,2.15-3.4c-0.71-1.23-1.43-2.46-2.14-3.68 - c-1.43-0.09-2.86-0.17-4.29-0.26c-0.72,1.13-1.43,2.25-2.15,3.38c0.71,1.22,1.43,2.44,2.14,3.66 - C39.65,50.05,41.08,50.16,42.51,50.26z"/> -<linearGradient id="SVGID_231_" gradientUnits="userSpaceOnUse" x1="-56.7002" y1="-303.875" x2="-52.6606" y2="-296.8783" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_231_)" d="M42.54,39.79c0.72-1.14,1.44-2.29,2.15-3.43c-0.71-1.22-1.42-2.44-2.14-3.65 - c-1.43-0.06-2.86-0.13-4.29-0.2c-0.72,1.14-1.43,2.28-2.15,3.41c0.71,1.21,1.42,2.42,2.14,3.63C39.68,39.63,41.11,39.71,42.54,39.79 - z"/> -<linearGradient id="SVGID_232_" gradientUnits="userSpaceOnUse" x1="-56.7358" y1="-314.3369" x2="-52.668" y2="-307.2912" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_232_)" d="M42.56,29.32c0.72-1.15,1.44-2.31,2.15-3.46c-0.71-1.21-1.43-2.41-2.14-3.62 - c-1.43-0.04-2.86-0.09-4.3-0.13c-0.72,1.15-1.43,2.3-2.15,3.44c0.71,1.2,1.43,2.4,2.14,3.6C39.7,29.2,41.13,29.26,42.56,29.32z"/> -<linearGradient id="SVGID_233_" gradientUnits="userSpaceOnUse" x1="-56.7715" y1="-324.7979" x2="-52.6758" y2="-317.7039" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_233_)" d="M42.58,18.85c0.72-1.16,1.44-2.33,2.15-3.5c-0.71-1.2-1.42-2.39-2.14-3.59 - c-1.43-0.02-2.87-0.05-4.3-0.07c-0.72,1.16-1.44,2.32-2.15,3.47c0.71,1.19,1.43,2.37,2.14,3.57C39.72,18.77,41.15,18.81,42.58,18.85 - z"/> -<linearGradient id="SVGID_234_" gradientUnits="userSpaceOnUse" x1="-56.8086" y1="-335.2598" x2="-52.686" y2="-328.1193" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_234_)" d="M42.6,8.38c0.72-1.17,1.44-2.35,2.16-3.53c-0.71-1.19-1.43-2.38-2.14-3.56c-1.43,0-2.86,0-4.3-0.01 - c-0.72,1.17-1.44,2.34-2.15,3.5c0.71,1.17,1.43,2.35,2.14,3.53C39.74,8.34,41.17,8.36,42.6,8.38z"/> -<linearGradient id="SVGID_235_" gradientUnits="userSpaceOnUse" x1="-45.3628" y1="-268.0112" x2="-41.4912" y2="-261.3055" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_235_)" d="M31.28,75.58c0.72-1.08,1.43-2.16,2.15-3.25c-0.71-1.24-1.42-2.48-2.14-3.72 - c-1.43-0.15-2.85-0.3-4.28-0.46c-0.72,1.08-1.43,2.15-2.14,3.21c0.71,1.23,1.42,2.47,2.13,3.71C28.43,75.25,29.85,75.42,31.28,75.58 - z"/> -<linearGradient id="SVGID_236_" gradientUnits="userSpaceOnUse" x1="-45.395" y1="-278.3027" x2="-41.4917" y2="-271.542" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_236_)" d="M31.3,65.28c0.72-1.09,1.43-2.18,2.15-3.28c-0.71-1.23-1.42-2.46-2.14-3.69 - c-1.43-0.13-2.86-0.26-4.29-0.39c-0.72,1.09-1.43,2.17-2.15,3.25c0.71,1.22,1.42,2.44,2.13,3.67C28.44,64.99,29.87,65.14,31.3,65.28 - z"/> -<linearGradient id="SVGID_237_" gradientUnits="userSpaceOnUse" x1="-45.4272" y1="-288.5952" x2="-41.4937" y2="-281.782" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_237_)" d="M31.32,54.98c0.72-1.1,1.43-2.21,2.15-3.32c-0.71-1.22-1.42-2.44-2.14-3.65 - c-1.43-0.11-2.86-0.21-4.29-0.32c-0.71,1.1-1.43,2.19-2.15,3.28c0.71,1.21,1.43,2.42,2.14,3.64C28.46,54.74,29.89,54.86,31.32,54.98 - z"/> -<linearGradient id="SVGID_238_" gradientUnits="userSpaceOnUse" x1="-45.459" y1="-298.8857" x2="-41.4961" y2="-292.0218" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_238_)" d="M31.33,44.68c0.72-1.11,1.43-2.23,2.15-3.35c-0.71-1.21-1.42-2.41-2.14-3.62 - c-1.43-0.08-2.86-0.17-4.29-0.25c-0.72,1.11-1.43,2.22-2.15,3.32c0.71,1.2,1.43,2.4,2.14,3.6C28.48,44.49,29.91,44.58,31.33,44.68z" - /> -<linearGradient id="SVGID_239_" gradientUnits="userSpaceOnUse" x1="-45.4922" y1="-309.1777" x2="-41.499" y2="-302.2614" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_239_)" d="M31.35,34.38c0.72-1.12,1.43-2.25,2.15-3.38c-0.71-1.2-1.43-2.39-2.14-3.58 - c-1.43-0.06-2.86-0.12-4.29-0.18c-0.72,1.12-1.43,2.24-2.15,3.36c0.71,1.18,1.43,2.37,2.14,3.56 - C28.49,34.23,29.92,34.31,31.35,34.38z"/> -<linearGradient id="SVGID_240_" gradientUnits="userSpaceOnUse" x1="-45.5244" y1="-319.4678" x2="-41.5015" y2="-312.4998" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_240_)" d="M31.37,24.08c0.71-1.13,1.43-2.27,2.15-3.42c-0.71-1.19-1.43-2.37-2.14-3.55 - c-1.43-0.04-2.86-0.07-4.29-0.11c-0.72,1.13-1.44,2.26-2.15,3.39c0.71,1.17,1.43,2.35,2.14,3.53 - C28.51,23.97,29.94,24.03,31.37,24.08z"/> -<linearGradient id="SVGID_241_" gradientUnits="userSpaceOnUse" x1="-45.5576" y1="-329.7598" x2="-41.5039" y2="-322.7385" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_241_)" d="M31.39,13.78c0.72-1.15,1.44-2.29,2.15-3.45c-0.71-1.17-1.43-2.35-2.14-3.52 - c-1.43-0.01-2.86-0.03-4.3-0.05c-0.72,1.15-1.44,2.29-2.15,3.43c0.71,1.16,1.43,2.33,2.14,3.5C28.53,13.72,29.96,13.75,31.39,13.78z - "/> -<linearGradient id="SVGID_242_" gradientUnits="userSpaceOnUse" x1="-44.6172" y1="-338.3657" x2="-41.5068" y2="-332.9784" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_242_)" d="M24.97,0c0.71,1.15,1.43,2.3,2.14,3.46c1.43,0.01,2.87,0.02,4.3,0.03 - c0.72-1.16,1.44-2.32,2.15-3.48C30.7,0,27.83,0,24.97,0z"/> -<linearGradient id="SVGID_243_" gradientUnits="userSpaceOnUse" x1="-34.5127" y1="-264.5337" x2="-31.7847" y2="-259.8086" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_243_)" d="M22.61,75.8c-0.71-1.23-1.42-2.46-2.13-3.69c-1.42-0.17-2.85-0.35-4.28-0.53 - c-0.71,1.05-1.43,2.08-2.14,3.12C16.91,75.08,19.76,75.45,22.61,75.8z"/> -<linearGradient id="SVGID_244_" gradientUnits="userSpaceOnUse" x1="-34.54" y1="-274.6479" x2="-30.7202" y2="-268.0318" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_244_)" d="M20.48,68.84c0.72-1.06,1.43-2.12,2.15-3.19c-0.71-1.22-1.42-2.44-2.13-3.66 - c-1.43-0.15-2.85-0.3-4.28-0.45c-0.71,1.06-1.43,2.11-2.14,3.15c0.71,1.21,1.42,2.42,2.14,3.64C17.63,68.51,19.06,68.67,20.48,68.84 - z"/> -<linearGradient id="SVGID_245_" gradientUnits="userSpaceOnUse" x1="-34.5679" y1="-284.7627" x2="-30.7153" y2="-278.0899" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_245_)" d="M20.5,58.72c0.72-1.07,1.43-2.15,2.14-3.23c-0.71-1.21-1.42-2.42-2.14-3.62 - c-1.43-0.13-2.86-0.25-4.29-0.38c-0.71,1.07-1.43,2.13-2.14,3.19c0.71,1.2,1.43,2.4,2.14,3.6C17.64,58.43,19.07,58.57,20.5,58.72z" - /> -<linearGradient id="SVGID_246_" gradientUnits="userSpaceOnUse" x1="-34.5952" y1="-294.874" x2="-30.7109" y2="-288.1463" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_246_)" d="M20.51,48.59c0.71-1.08,1.43-2.17,2.15-3.26c-0.71-1.2-1.43-2.39-2.14-3.58 - c-1.43-0.1-2.86-0.2-4.29-0.31c-0.71,1.08-1.43,2.16-2.14,3.23c0.71,1.18,1.42,2.38,2.14,3.57C17.65,48.36,19.08,48.48,20.51,48.59z - "/> -<linearGradient id="SVGID_247_" gradientUnits="userSpaceOnUse" x1="-34.6221" y1="-304.9878" x2="-30.7056" y2="-298.2042" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_247_)" d="M20.52,38.47c0.71-1.1,1.43-2.2,2.15-3.3c-0.71-1.19-1.42-2.37-2.14-3.55 - c-1.43-0.08-2.86-0.15-4.29-0.23c-0.71,1.09-1.43,2.18-2.15,3.27c0.71,1.17,1.42,2.35,2.14,3.53 - C17.66,38.28,19.09,38.38,20.52,38.47z"/> -<linearGradient id="SVGID_248_" gradientUnits="userSpaceOnUse" x1="-34.6523" y1="-315.1035" x2="-30.7021" y2="-308.2616" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_248_)" d="M20.53,28.35c0.72-1.11,1.43-2.22,2.15-3.33c-0.71-1.17-1.43-2.35-2.14-3.51 - c-1.43-0.05-2.86-0.1-4.29-0.16c-0.72,1.11-1.43,2.21-2.15,3.31c0.71,1.16,1.43,2.32,2.14,3.49C17.67,28.21,19.1,28.28,20.53,28.35z - "/> -<linearGradient id="SVGID_249_" gradientUnits="userSpaceOnUse" x1="-34.6782" y1="-325.2178" x2="-30.6943" y2="-318.3175" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_249_)" d="M20.55,18.23c0.71-1.12,1.43-2.24,2.15-3.37c-0.71-1.16-1.43-2.32-2.14-3.48 - c-1.43-0.03-2.87-0.06-4.3-0.08c-0.72,1.12-1.43,2.23-2.15,3.34c0.71,1.15,1.43,2.3,2.14,3.46C17.68,18.14,19.12,18.18,20.55,18.23z - "/> -<linearGradient id="SVGID_250_" gradientUnits="userSpaceOnUse" x1="-34.707" y1="-335.332" x2="-30.6909" y2="-328.3759" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_250_)" d="M20.56,8.1c0.72-1.13,1.43-2.26,2.15-3.4C22,3.54,21.28,2.4,20.57,1.25c-1.43,0-2.87-0.01-4.3-0.01 - c-0.72,1.13-1.43,2.26-2.15,3.38c0.72,1.13,1.43,2.27,2.14,3.42C17.7,8.06,19.13,8.08,20.56,8.1z"/> -<linearGradient id="SVGID_251_" gradientUnits="userSpaceOnUse" x1="-23.334" y1="-270.5356" x2="-19.6069" y2="-264.0802" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_251_)" d="M9.33,72.84c0.71-1.02,1.42-2.05,2.14-3.09c-0.71-1.21-1.42-2.42-2.14-3.63 - c-1.43-0.17-2.85-0.35-4.28-0.53c-0.71,1.02-1.42,2.04-2.14,3.05c0.71,1.2,1.43,2.4,2.14,3.61C6.48,72.46,7.9,72.65,9.33,72.84z"/> -<linearGradient id="SVGID_252_" gradientUnits="userSpaceOnUse" x1="-23.355" y1="-280.4526" x2="-19.5942" y2="-273.9388" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_252_)" d="M9.33,62.92c0.71-1.04,1.43-2.08,2.14-3.13c-0.71-1.2-1.42-2.4-2.14-3.59 - c-1.43-0.15-2.85-0.3-4.28-0.45c-0.71,1.04-1.43,2.06-2.14,3.09c0.71,1.19,1.43,2.38,2.14,3.57C6.48,62.58,7.9,62.75,9.33,62.92z"/> -<linearGradient id="SVGID_253_" gradientUnits="userSpaceOnUse" x1="-23.376" y1="-290.3691" x2="-19.5801" y2="-283.7945" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_253_)" d="M9.33,52.99c0.71-1.05,1.42-2.1,2.14-3.17c-0.71-1.19-1.42-2.37-2.14-3.55 - c-1.43-0.12-2.85-0.25-4.28-0.37C4.34,46.95,3.63,48,2.92,49.04c0.71,1.17,1.43,2.35,2.14,3.53C6.48,52.71,7.91,52.85,9.33,52.99z" - /> -<linearGradient id="SVGID_254_" gradientUnits="userSpaceOnUse" x1="-23.396" y1="-300.2866" x2="-19.5649" y2="-293.651" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_254_)" d="M9.34,43.06c0.71-1.06,1.43-2.13,2.14-3.2c-0.71-1.17-1.42-2.34-2.14-3.51 - c-1.43-0.1-2.85-0.19-4.29-0.29c-0.71,1.06-1.43,2.12-2.14,3.17c0.72,1.16,1.43,2.32,2.14,3.49C6.49,42.84,7.91,42.95,9.34,43.06z" - /> -<linearGradient id="SVGID_255_" gradientUnits="userSpaceOnUse" x1="-23.4194" y1="-310.2041" x2="-19.5522" y2="-303.506" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_255_)" d="M9.34,33.14c0.72-1.08,1.43-2.16,2.15-3.24c-0.71-1.16-1.43-2.32-2.14-3.47 - c-1.43-0.07-2.86-0.14-4.29-0.21c-0.71,1.08-1.43,2.15-2.14,3.21c0.71,1.15,1.43,2.29,2.14,3.45C6.49,32.96,7.91,33.05,9.34,33.14z" - /> -<linearGradient id="SVGID_256_" gradientUnits="userSpaceOnUse" x1="-23.438" y1="-320.1191" x2="-19.5381" y2="-313.3643" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_256_)" d="M9.35,23.21c0.72-1.09,1.43-2.18,2.15-3.28c-0.71-1.15-1.43-2.29-2.14-3.43 - c-1.43-0.04-2.86-0.09-4.29-0.13c-0.71,1.09-1.43,2.17-2.14,3.25c0.72,1.13,1.43,2.27,2.14,3.41C6.49,23.09,7.92,23.15,9.35,23.21z" - /> -<linearGradient id="SVGID_257_" gradientUnits="userSpaceOnUse" x1="-23.4614" y1="-330.0376" x2="-19.5244" y2="-323.2185" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_257_)" d="M9.35,13.28c0.72-1.1,1.43-2.21,2.15-3.32c-0.71-1.14-1.43-2.27-2.14-3.4 - C7.92,6.55,6.5,6.53,5.06,6.52c-0.71,1.1-1.43,2.2-2.15,3.29c0.72,1.12,1.43,2.24,2.14,3.37C6.49,13.21,7.92,13.25,9.35,13.28z"/> -<linearGradient id="SVGID_258_" gradientUnits="userSpaceOnUse" x1="-22.5654" y1="-338.3662" x2="-19.5107" y2="-333.0753" gradientTransform="matrix(-1 0 0 1 -14.2783 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> -</linearGradient> -<path fill="url(#SVGID_258_)" d="M2.92,0c0.71,1.11,1.43,2.22,2.15,3.33c1.44,0.01,2.86,0.02,4.3,0.03 - c0.72-1.11,1.43-2.23,2.15-3.36C8.65,0,5.78,0,2.92,0z"/> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_topbar_horisontal_636x96px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_topbar_horisontal_636x96px.svg deleted file mode 100644 index 0a3efd8111..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_topbar_horisontal_636x96px.svg +++ /dev/null @@ -1,4060 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="636px" height="96px" viewBox="0 0 636 96" enable-background="new 0 0 636 96" xml:space="preserve"> -<g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="367.2852" y1="-98.1338" x2="268.8617" y2="172.2825"> - <stop offset="0" style="stop-color:#2BD5FF"/> - <stop offset="0.3516" style="stop-color:#80E6FF"/> - <stop offset="0.9176" style="stop-color:#28C4EB"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M464.28,86.13c0.34,0,0.68,0,1.02,0c0,0,92.78,0.9,170.84-12.08V-0.28H464.28H182.14h-182v74.75 - c0,0,81.49,11.57,182,11.65H464.28z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="329.376" y1="19.6938" x2="309.3868" y2="133.0578"> - <stop offset="0" style="stop-color:#2BD5FF"/> - <stop offset="0.9176" style="stop-color:#28C6ED"/> - </linearGradient> - <path fill="url(#SVGID_2_)" d="M465.68,85.81c-0.41,0-283.53,0.32-283.53,0.32v-0.32C81.73,85.71,0.34,74.16,0.34,74.16l-0.02,4.41 - c0,0,80.84,13.35,180.79,13.55v0.01c380.6,8.1,454.93-0.01,454.93-0.01l0.1-18.33C558.16,86.7,465.68,85.81,465.68,85.81z"/> - - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-363.0977" y1="-269.0723" x2="-359.7446" y2="-263.2646" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M631.02,70.41c-0.71-0.97-1.42-1.95-2.12-2.93c-1.42,0.18-2.83,0.37-4.25,0.54 - c-0.71,1.17-1.41,2.34-2.12,3.52C625.36,71.17,628.19,70.79,631.02,70.41z"/> - - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-363.0767" y1="-278.5928" x2="-359.0044" y2="-271.5394" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_4_)" d="M628.9,64.4c0.71-1.16,1.41-2.32,2.12-3.47c-0.71-0.98-1.42-1.97-2.12-2.96 - c-1.42,0.16-2.83,0.31-4.25,0.47c-0.71,1.16-1.41,2.32-2.12,3.48c0.71,1.01,1.42,2.01,2.13,3C626.06,64.75,627.48,64.58,628.9,64.4 - z"/> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-363.0591" y1="-288.1143" x2="-359.0181" y2="-281.115" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M628.9,54.89c0.71-1.15,1.42-2.29,2.12-3.43c-0.71-1-1.42-2-2.13-3c-1.42,0.13-2.84,0.26-4.25,0.39 - c-0.71,1.14-1.42,2.29-2.13,3.45c0.71,1.02,1.42,2.03,2.13,3.04C626.06,55.19,627.48,55.04,628.9,54.89z"/> - - <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-363.041" y1="-297.6362" x2="-359.0332" y2="-290.6945" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_6_)" d="M628.89,45.38c0.71-1.13,1.42-2.26,2.13-3.39c-0.71-1.01-1.42-2.02-2.13-3.04 - c-1.42,0.11-2.84,0.21-4.26,0.32c-0.71,1.13-1.42,2.27-2.13,3.41c0.71,1.03,1.42,2.05,2.13,3.07 - C626.06,45.62,627.48,45.5,628.89,45.38z"/> - - <linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-363.02" y1="-307.1558" x2="-359.0444" y2="-300.2698" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_7_)" d="M628.89,35.87c0.71-1.12,1.42-2.24,2.13-3.35c-0.71-1.02-1.42-2.05-2.13-3.08 - c-1.42,0.08-2.84,0.16-4.26,0.24c-0.71,1.12-1.42,2.24-2.13,3.37c0.71,1.04,1.42,2.08,2.13,3.12 - C626.05,36.06,627.47,35.97,628.89,35.87z"/> - - <linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-363.0029" y1="-316.6782" x2="-359.0586" y2="-309.8464" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_8_)" d="M628.89,26.36c0.71-1.11,1.42-2.21,2.13-3.31c-0.71-1.04-1.42-2.08-2.13-3.12 - c-1.42,0.06-2.84,0.11-4.27,0.16c-0.71,1.11-1.42,2.22-2.13,3.34c0.71,1.05,1.42,2.1,2.13,3.15 - C626.05,26.5,627.47,26.43,628.89,26.36z"/> - - <linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-362.9824" y1="-326.1982" x2="-359.0698" y2="-319.4214" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_9_)" d="M628.89,16.85c0.71-1.1,1.42-2.19,2.13-3.28c-0.71-1.05-1.42-2.1-2.13-3.16 - c-1.42,0.03-2.85,0.06-4.27,0.08c-0.71,1.1-1.42,2.2-2.13,3.3c0.71,1.07,1.42,2.13,2.13,3.19 - C626.04,16.94,627.47,16.89,628.89,16.85z"/> - - <linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-362.9653" y1="-335.7188" x2="-359.0854" y2="-328.9986" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_10_)" d="M628.89,7.33c0.71-1.08,1.42-2.16,2.13-3.23c-0.71-1.06-1.42-2.13-2.13-3.2 - c-1.43,0-2.85,0.01-4.27,0.01c-0.71,1.08-1.42,2.17-2.13,3.26c0.71,1.08,1.42,2.15,2.13,3.22C626.04,7.38,627.46,7.35,628.89,7.33z - "/> - - <linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="-352.021" y1="-272.1646" x2="-347.8901" y2="-265.0097" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_11_)" d="M617.82,70.94c0.71-1.18,1.41-2.36,2.12-3.54c-0.71-1.01-1.42-2.02-2.13-3.03 - c-1.42,0.16-2.83,0.32-4.25,0.47c-0.71,1.18-1.41,2.36-2.12,3.55c0.71,1.02,1.42,2.04,2.13,3.06 - C614.98,71.29,616.4,71.12,617.82,70.94z"/> - - <linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="-351.9932" y1="-281.8779" x2="-347.8936" y2="-274.7772" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_12_)" d="M617.8,61.24c0.71-1.17,1.42-2.34,2.12-3.5c-0.71-1.02-1.42-2.04-2.13-3.07 - c-1.42,0.14-2.84,0.27-4.26,0.4c-0.71,1.17-1.42,2.34-2.12,3.52c0.71,1.04,1.42,2.07,2.13,3.1 - C614.97,61.54,616.39,61.39,617.8,61.24z"/> - - <linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="-351.9683" y1="-291.5947" x2="-347.8979" y2="-284.5447" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_13_)" d="M617.79,51.53c0.71-1.16,1.42-2.31,2.12-3.46c-0.71-1.03-1.42-2.07-2.13-3.1 - c-1.42,0.11-2.84,0.22-4.26,0.33c-0.71,1.16-1.41,2.32-2.12,3.48c0.71,1.05,1.42,2.09,2.13,3.13 - C614.96,51.79,616.38,51.66,617.79,51.53z"/> - - <linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="-351.9429" y1="-301.3062" x2="-347.9033" y2="-294.3094" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_14_)" d="M617.78,41.83c0.71-1.15,1.42-2.29,2.13-3.43c-0.71-1.04-1.42-2.09-2.13-3.14 - c-1.42,0.09-2.84,0.17-4.26,0.26c-0.71,1.14-1.42,2.29-2.12,3.45c0.71,1.06,1.42,2.12,2.13,3.17 - C614.94,42.04,616.37,41.93,617.78,41.83z"/> - - <linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="-351.9175" y1="-311.022" x2="-347.9077" y2="-304.0768" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_15_)" d="M617.78,32.12c0.71-1.13,1.42-2.26,2.13-3.39c-0.71-1.05-1.42-2.11-2.14-3.17 - c-1.42,0.06-2.84,0.13-4.26,0.19c-0.71,1.13-1.42,2.27-2.13,3.41c0.71,1.07,1.42,2.14,2.13,3.2 - C614.93,32.28,616.36,32.2,617.78,32.12z"/> - - <linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="-351.8921" y1="-320.7388" x2="-347.9116" y2="-313.8444" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_16_)" d="M617.77,22.42c0.71-1.12,1.42-2.24,2.13-3.36c-0.71-1.06-1.42-2.14-2.13-3.21 - c-1.42,0.04-2.85,0.08-4.27,0.12c-0.71,1.12-1.42,2.25-2.13,3.38c0.71,1.08,1.42,2.16,2.14,3.24 - C614.92,22.53,616.34,22.47,617.77,22.42z"/> - - <linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="-351.8672" y1="-330.4517" x2="-347.917" y2="-323.6097" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_17_)" d="M617.75,12.71c0.71-1.11,1.42-2.21,2.13-3.32c-0.71-1.08-1.43-2.16-2.14-3.25 - c-1.42,0.02-2.85,0.03-4.27,0.05c-0.71,1.11-1.42,2.23-2.13,3.34c0.71,1.09,1.42,2.19,2.14,3.27 - C614.91,12.77,616.33,12.74,617.75,12.71z"/> - - <linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="-350.9536" y1="-338.6313" x2="-347.9209" y2="-333.3785" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_18_)" d="M611.34-0.28c0.71,1.11,1.43,2.21,2.14,3.31c1.42-0.01,2.85-0.01,4.27-0.02 - c0.71-1.1,1.42-2.19,2.13-3.28C617.03-0.28,614.18-0.28,611.34-0.28z"/> - - <linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="-341.3149" y1="-266.4116" x2="-337.9531" y2="-260.5888" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_19_)" d="M609.21,73.21c-0.71-1.03-1.42-2.06-2.13-3.09c-1.42,0.16-2.84,0.32-4.26,0.47 - c-0.71,1.2-1.42,2.4-2.12,3.61C603.54,73.88,606.37,73.55,609.21,73.21z"/> - - <linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="-341.2812" y1="-276.2993" x2="-337.1309" y2="-269.1106" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_20_)" d="M607.07,66.92c0.71-1.19,1.42-2.38,2.12-3.56c-0.71-1.04-1.42-2.08-2.13-3.12 - c-1.42,0.14-2.84,0.27-4.26,0.41c-0.71,1.19-1.42,2.38-2.12,3.57c0.71,1.06,1.43,2.11,2.14,3.16 - C604.23,67.22,605.65,67.07,607.07,66.92z"/> - - <linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="-341.2524" y1="-286.1904" x2="-337.1284" y2="-279.0474" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_21_)" d="M607.05,57.04c0.71-1.18,1.42-2.36,2.12-3.53c-0.71-1.05-1.43-2.1-2.13-3.16 - c-1.42,0.12-2.84,0.23-4.26,0.34c-0.71,1.18-1.42,2.36-2.12,3.54c0.71,1.07,1.43,2.13,2.14,3.19 - C604.22,57.3,605.63,57.17,607.05,57.04z"/> - - <linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="-341.2212" y1="-296.0801" x2="-337.1265" y2="-288.9878" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_22_)" d="M607.04,47.16c0.71-1.17,1.42-2.33,2.12-3.49c-0.71-1.06-1.42-2.12-2.14-3.19 - c-1.42,0.09-2.84,0.18-4.26,0.27c-0.71,1.17-1.42,2.34-2.12,3.51c0.71,1.08,1.42,2.15,2.14,3.22 - C604.2,47.37,605.62,47.27,607.04,47.16z"/> - - <linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="-341.1899" y1="-305.9692" x2="-337.1226" y2="-298.9243" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_23_)" d="M607.02,37.28c0.71-1.15,1.42-2.31,2.13-3.46c-0.71-1.07-1.42-2.15-2.14-3.22 - c-1.42,0.07-2.84,0.14-4.27,0.21c-0.71,1.16-1.42,2.31-2.12,3.48c0.71,1.09,1.43,2.17,2.14,3.26 - C604.18,37.45,605.6,37.36,607.02,37.28z"/> - - <linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="-341.1616" y1="-315.8604" x2="-337.1216" y2="-308.8628" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_24_)" d="M607.01,27.4c0.71-1.15,1.42-2.29,2.13-3.43c-0.71-1.08-1.43-2.17-2.14-3.26 - c-1.42,0.05-2.84,0.1-4.27,0.14c-0.71,1.15-1.42,2.29-2.12,3.45c0.71,1.1,1.42,2.19,2.14,3.29 - C604.16,27.52,605.58,27.46,607.01,27.4z"/> - - <linearGradient id="SVGID_25_" gradientUnits="userSpaceOnUse" x1="-341.1304" y1="-325.75" x2="-337.1187" y2="-318.8015" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_25_)" d="M606.99,17.51c0.71-1.13,1.42-2.26,2.13-3.39c-0.71-1.1-1.43-2.19-2.14-3.29 - c-1.42,0.03-2.85,0.05-4.27,0.08c-0.71,1.13-1.42,2.27-2.12,3.41c0.71,1.11,1.43,2.22,2.14,3.32 - C604.14,17.59,605.57,17.56,606.99,17.51z"/> - - <linearGradient id="SVGID_26_" gradientUnits="userSpaceOnUse" x1="-341.0991" y1="-335.6426" x2="-337.1152" y2="-328.7423" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_26_)" d="M606.97,7.63c0.71-1.12,1.42-2.24,2.13-3.36c-0.71-1.1-1.43-2.21-2.14-3.33 - c-1.43,0-2.85,0.01-4.27,0.01c-0.71,1.12-1.42,2.25-2.13,3.38c0.71,1.12,1.43,2.24,2.14,3.35C604.13,7.67,605.55,7.65,606.97,7.63z - "/> - - <linearGradient id="SVGID_27_" gradientUnits="userSpaceOnUse" x1="-330.2061" y1="-269.8462" x2="-326.0059" y2="-262.5712" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_27_)" d="M595.97,73.47c0.71-1.21,1.41-2.42,2.12-3.62c-0.71-1.06-1.42-2.12-2.13-3.18 - c-1.42,0.14-2.84,0.27-4.26,0.41c-0.71,1.21-1.42,2.42-2.12,3.63c0.71,1.07,1.43,2.14,2.14,3.21 - C593.13,73.78,594.55,73.63,595.97,73.47z"/> - - <linearGradient id="SVGID_28_" gradientUnits="userSpaceOnUse" x1="-330.1714" y1="-279.9058" x2="-325.9966" y2="-272.6748" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_28_)" d="M595.95,63.42c0.71-1.2,1.42-2.39,2.12-3.59c-0.71-1.07-1.42-2.14-2.13-3.21 - c-1.42,0.12-2.84,0.23-4.27,0.35c-0.71,1.2-1.42,2.39-2.12,3.6c0.71,1.08,1.43,2.16,2.14,3.24 - C593.11,63.69,594.53,63.56,595.95,63.42z"/> - - <linearGradient id="SVGID_29_" gradientUnits="userSpaceOnUse" x1="-330.1382" y1="-289.9644" x2="-325.9897" y2="-282.7791" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_29_)" d="M595.93,53.38c0.71-1.19,1.42-2.38,2.12-3.56c-0.71-1.08-1.43-2.16-2.14-3.24 - c-1.42,0.1-2.84,0.19-4.27,0.29c-0.71,1.19-1.42,2.38-2.13,3.57c0.71,1.09,1.43,2.19,2.14,3.27 - C593.09,53.59,594.51,53.48,595.93,53.38z"/> - - <linearGradient id="SVGID_30_" gradientUnits="userSpaceOnUse" x1="-330.1021" y1="-300.02" x2="-325.9805" y2="-292.8812" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_30_)" d="M595.91,43.32c0.71-1.18,1.41-2.35,2.12-3.52c-0.71-1.09-1.43-2.18-2.14-3.27 - c-1.42,0.08-2.84,0.15-4.27,0.22c-0.71,1.18-1.42,2.36-2.13,3.54c0.71,1.1,1.43,2.2,2.14,3.3 - C593.07,43.5,594.49,43.41,595.91,43.32z"/> - - <linearGradient id="SVGID_31_" gradientUnits="userSpaceOnUse" x1="-330.0688" y1="-310.0796" x2="-325.9727" y2="-302.9848" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_31_)" d="M595.89,33.27c0.71-1.17,1.42-2.33,2.13-3.49c-0.71-1.1-1.43-2.2-2.14-3.31 - c-1.42,0.06-2.84,0.11-4.27,0.17c-0.71,1.17-1.42,2.33-2.13,3.51c0.71,1.12,1.43,2.22,2.14,3.33 - C593.04,33.41,594.47,33.34,595.89,33.27z"/> - - <linearGradient id="SVGID_32_" gradientUnits="userSpaceOnUse" x1="-330.0347" y1="-320.1353" x2="-325.9658" y2="-313.0878" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_32_)" d="M595.87,23.22c0.71-1.16,1.42-2.31,2.13-3.46c-0.71-1.11-1.43-2.22-2.14-3.34 - c-1.42,0.03-2.85,0.07-4.27,0.1c-0.71,1.16-1.42,2.32-2.12,3.48c0.71,1.12,1.43,2.24,2.14,3.36 - C593.02,23.32,594.45,23.27,595.87,23.22z"/> - - <linearGradient id="SVGID_33_" gradientUnits="userSpaceOnUse" x1="-329.9995" y1="-330.1958" x2="-325.9551" y2="-323.1906" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_33_)" d="M595.85,13.17c0.71-1.15,1.42-2.29,2.13-3.43c-0.71-1.12-1.43-2.24-2.14-3.37 - c-1.42,0.01-2.85,0.03-4.27,0.04c-0.71,1.15-1.42,2.29-2.13,3.45c0.71,1.14,1.43,2.26,2.14,3.39 - C593,13.23,594.42,13.2,595.85,13.17z"/> - - <linearGradient id="SVGID_34_" gradientUnits="userSpaceOnUse" x1="-329.0283" y1="-338.6309" x2="-325.9473" y2="-333.2943" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_34_)" d="M589.41-0.28c0.71,1.14,1.43,2.29,2.14,3.42c1.43-0.01,2.85-0.01,4.27-0.02 - c0.71-1.14,1.41-2.27,2.12-3.4C595.11-0.28,592.26-0.28,589.41-0.28z"/> - - <linearGradient id="SVGID_35_" gradientUnits="userSpaceOnUse" x1="-319.4795" y1="-264.1133" x2="-316.1167" y2="-258.2888" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_35_)" d="M587.35,75.63c-0.71-1.08-1.43-2.15-2.14-3.23c-1.42,0.14-2.85,0.27-4.27,0.4 - c-0.71,1.22-1.42,2.45-2.12,3.67C581.67,76.2,584.51,75.92,587.35,75.63z"/> - - <linearGradient id="SVGID_36_" gradientUnits="userSpaceOnUse" x1="-319.4438" y1="-274.3223" x2="-315.2266" y2="-267.0177" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_36_)" d="M585.21,69.1c0.71-1.22,1.42-2.43,2.12-3.64c-0.71-1.08-1.43-2.17-2.14-3.26 - c-1.42,0.12-2.85,0.23-4.26,0.35c-0.71,1.21-1.42,2.43-2.12,3.65c0.71,1.1,1.43,2.2,2.14,3.29 - C582.36,69.36,583.78,69.23,585.21,69.1z"/> - - <linearGradient id="SVGID_37_" gradientUnits="userSpaceOnUse" x1="-319.4058" y1="-284.5303" x2="-315.2134" y2="-277.2689" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_37_)" d="M585.18,58.9c0.71-1.21,1.41-2.41,2.12-3.61c-0.71-1.09-1.43-2.19-2.14-3.29 - c-1.42,0.1-2.85,0.19-4.27,0.29c-0.71,1.21-1.42,2.41-2.12,3.62c0.71,1.11,1.43,2.21,2.14,3.32 - C582.33,59.12,583.76,59.01,585.18,58.9z"/> - - <linearGradient id="SVGID_38_" gradientUnits="userSpaceOnUse" x1="-319.3706" y1="-294.7388" x2="-315.2026" y2="-287.5196" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_38_)" d="M585.16,48.69c0.71-1.19,1.41-2.39,2.12-3.58c-0.71-1.1-1.43-2.21-2.14-3.32 - c-1.42,0.08-2.85,0.16-4.27,0.23c-0.71,1.19-1.42,2.39-2.13,3.59c0.71,1.12,1.43,2.24,2.14,3.35 - C582.31,48.88,583.73,48.79,585.16,48.69z"/> - - <linearGradient id="SVGID_39_" gradientUnits="userSpaceOnUse" x1="-319.3335" y1="-304.9473" x2="-315.189" y2="-297.7687" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_39_)" d="M585.13,38.49c0.71-1.18,1.42-2.37,2.12-3.55c-0.71-1.11-1.43-2.23-2.14-3.35 - c-1.42,0.06-2.85,0.12-4.27,0.18c-0.71,1.19-1.42,2.37-2.13,3.57c0.71,1.13,1.43,2.25,2.14,3.37 - C582.29,38.64,583.71,38.57,585.13,38.49z"/> - - <linearGradient id="SVGID_40_" gradientUnits="userSpaceOnUse" x1="-319.2974" y1="-315.1562" x2="-315.1777" y2="-308.0208" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_40_)" d="M585.11,28.29c0.71-1.17,1.42-2.35,2.12-3.52c-0.71-1.12-1.43-2.25-2.14-3.38 - c-1.43,0.04-2.85,0.08-4.27,0.12c-0.71,1.18-1.42,2.36-2.12,3.54c0.71,1.14,1.43,2.27,2.14,3.4 - C582.26,28.4,583.68,28.34,585.11,28.29z"/> - - <linearGradient id="SVGID_41_" gradientUnits="userSpaceOnUse" x1="-319.2612" y1="-325.3652" x2="-315.1646" y2="-318.2696" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_41_)" d="M585.08,18.09c0.71-1.17,1.42-2.33,2.13-3.49c-0.71-1.13-1.43-2.27-2.14-3.41 - c-1.42,0.02-2.85,0.04-4.27,0.07c-0.71,1.17-1.42,2.34-2.13,3.51c0.71,1.15,1.43,2.29,2.14,3.43 - C582.24,18.16,583.66,18.12,585.08,18.09z"/> - - <linearGradient id="SVGID_42_" gradientUnits="userSpaceOnUse" x1="-319.2231" y1="-335.5723" x2="-315.1519" y2="-328.5206" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_42_)" d="M585.06,7.89c0.71-1.16,1.42-2.31,2.12-3.46c-0.71-1.14-1.43-2.29-2.14-3.44 - c-1.42,0-2.85,0.01-4.27,0.01c-0.71,1.16-1.42,2.32-2.13,3.48c0.71,1.15,1.43,2.31,2.14,3.46C582.21,7.92,583.63,7.9,585.06,7.89z" - /> - - <linearGradient id="SVGID_43_" gradientUnits="userSpaceOnUse" x1="-308.3457" y1="-267.8691" x2="-304.0898" y2="-260.4978" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_43_)" d="M574.09,75.64c0.71-1.23,1.42-2.46,2.12-3.68c-0.71-1.1-1.43-2.21-2.14-3.31 - c-1.42,0.12-2.85,0.23-4.27,0.34c-0.71,1.23-1.42,2.46-2.12,3.69c0.71,1.12,1.43,2.23,2.14,3.34 - C571.25,75.89,572.67,75.76,574.09,75.64z"/> - - <linearGradient id="SVGID_44_" gradientUnits="userSpaceOnUse" x1="-308.3096" y1="-278.2183" x2="-304.0767" y2="-270.8867" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_44_)" d="M574.06,65.29c0.71-1.22,1.42-2.44,2.12-3.66c-0.71-1.11-1.43-2.22-2.14-3.34 - c-1.42,0.1-2.85,0.2-4.27,0.29c-0.71,1.22-1.42,2.44-2.12,3.67c0.71,1.13,1.43,2.25,2.14,3.37 - C571.22,65.51,572.64,65.4,574.06,65.29z"/> - - <linearGradient id="SVGID_45_" gradientUnits="userSpaceOnUse" x1="-308.272" y1="-288.5713" x2="-304.0605" y2="-281.2769" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_45_)" d="M574.04,54.95c0.71-1.21,1.42-2.43,2.12-3.63c-0.71-1.12-1.43-2.24-2.14-3.37 - c-1.42,0.08-2.85,0.16-4.27,0.24c-0.71,1.21-1.42,2.43-2.12,3.64c0.71,1.13,1.43,2.26,2.14,3.39 - C571.19,55.13,572.62,55.04,574.04,54.95z"/> - - <linearGradient id="SVGID_46_" gradientUnits="userSpaceOnUse" x1="-308.2344" y1="-298.9209" x2="-304.0454" y2="-291.6654" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_46_)" d="M574.01,44.6c0.71-1.2,1.42-2.4,2.12-3.6c-0.71-1.13-1.43-2.26-2.14-3.39 - c-1.42,0.06-2.85,0.13-4.27,0.19c-0.71,1.2-1.42,2.41-2.12,3.62c0.71,1.14,1.43,2.28,2.14,3.42 - C571.16,44.75,572.59,44.67,574.01,44.6z"/> - - <linearGradient id="SVGID_47_" gradientUnits="userSpaceOnUse" x1="-308.1963" y1="-309.272" x2="-304.0293" y2="-302.0545" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_47_)" d="M573.98,34.26c0.71-1.19,1.42-2.39,2.13-3.58c-0.71-1.14-1.43-2.28-2.14-3.42 - c-1.42,0.04-2.85,0.09-4.27,0.14c-0.71,1.2-1.42,2.39-2.12,3.59c0.71,1.15,1.43,2.3,2.14,3.44 - C571.14,34.37,572.56,34.31,573.98,34.26z"/> - - <linearGradient id="SVGID_48_" gradientUnits="userSpaceOnUse" x1="-308.1611" y1="-319.626" x2="-304.0151" y2="-312.4449" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_48_)" d="M573.96,23.91c0.71-1.19,1.42-2.37,2.13-3.55c-0.71-1.14-1.43-2.29-2.14-3.45 - c-1.42,0.03-2.85,0.06-4.27,0.09c-0.71,1.19-1.42,2.37-2.12,3.56c0.71,1.16,1.43,2.31,2.14,3.47 - C571.11,23.99,572.54,23.95,573.96,23.91z"/> - - <linearGradient id="SVGID_49_" gradientUnits="userSpaceOnUse" x1="-308.1221" y1="-329.9766" x2="-303.9985" y2="-322.8344" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_49_)" d="M573.93,13.57c0.71-1.18,1.42-2.35,2.12-3.53c-0.71-1.15-1.43-2.31-2.14-3.47 - c-1.42,0.01-2.85,0.02-4.27,0.04c-0.71,1.18-1.42,2.36-2.12,3.54c0.71,1.17,1.43,2.33,2.14,3.49 - C571.08,13.61,572.51,13.59,573.93,13.57z"/> - - <linearGradient id="SVGID_50_" gradientUnits="userSpaceOnUse" x1="-307.106" y1="-338.6313" x2="-303.9834" y2="-333.2229" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_50_)" d="M567.49-0.28c0.71,1.17,1.43,2.35,2.14,3.52c1.42-0.01,2.85-0.01,4.27-0.02 - c0.71-1.17,1.42-2.33,2.13-3.5C573.18-0.28,570.34-0.28,567.49-0.28z"/> - - <linearGradient id="SVGID_51_" gradientUnits="userSpaceOnUse" x1="-297.5938" y1="-262.1865" x2="-294.2358" y2="-256.3705" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_51_)" d="M565.46,77.68c-0.71-1.12-1.43-2.24-2.14-3.36c-1.42,0.12-2.85,0.22-4.27,0.33 - c-0.71,1.24-1.42,2.48-2.12,3.73C559.76,78.16,562.61,77.92,565.46,77.68z"/> - - <linearGradient id="SVGID_52_" gradientUnits="userSpaceOnUse" x1="-297.5625" y1="-272.6567" x2="-293.2939" y2="-265.2634" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_52_)" d="M563.3,70.93c0.71-1.23,1.42-2.47,2.12-3.7c-0.71-1.12-1.43-2.25-2.14-3.39 - c-1.42,0.1-2.85,0.19-4.27,0.29c-0.71,1.23-1.41,2.47-2.12,3.71c0.72,1.14,1.43,2.27,2.14,3.41 - C560.46,71.15,561.88,71.04,563.3,70.93z"/> - - <linearGradient id="SVGID_53_" gradientUnits="userSpaceOnUse" x1="-297.5269" y1="-283.1328" x2="-293.2788" y2="-275.775" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_53_)" d="M563.28,60.46c0.71-1.23,1.42-2.45,2.13-3.67c-0.71-1.13-1.43-2.27-2.14-3.41 - c-1.42,0.08-2.85,0.16-4.27,0.24c-0.71,1.23-1.42,2.45-2.12,3.68c0.71,1.15,1.43,2.29,2.14,3.43 - C560.43,60.64,561.85,60.55,563.28,60.46z"/> - - <linearGradient id="SVGID_54_" gradientUnits="userSpaceOnUse" x1="-297.4897" y1="-293.6089" x2="-293.2627" y2="-286.2874" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_54_)" d="M563.25,49.99c0.71-1.22,1.42-2.43,2.13-3.65c-0.72-1.14-1.43-2.29-2.14-3.43 - c-1.42,0.07-2.85,0.13-4.27,0.19c-0.71,1.22-1.42,2.44-2.12,3.66c0.71,1.15,1.43,2.31,2.14,3.46 - C560.4,50.14,561.82,50.07,563.25,49.99z"/> - - <linearGradient id="SVGID_55_" gradientUnits="userSpaceOnUse" x1="-297.4526" y1="-304.0854" x2="-293.2446" y2="-296.797" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_55_)" d="M563.22,39.52c0.71-1.21,1.42-2.42,2.13-3.63c-0.72-1.15-1.43-2.3-2.15-3.46 - c-1.42,0.05-2.85,0.1-4.27,0.14c-0.71,1.21-1.42,2.42-2.12,3.64c0.71,1.16,1.43,2.32,2.14,3.48 - C560.37,39.64,561.8,39.58,563.22,39.52z"/> - - <linearGradient id="SVGID_56_" gradientUnits="userSpaceOnUse" x1="-297.4146" y1="-314.562" x2="-293.228" y2="-307.3107" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_56_)" d="M563.19,29.04c0.71-1.2,1.42-2.4,2.12-3.6c-0.71-1.16-1.43-2.32-2.14-3.48 - c-1.42,0.03-2.85,0.07-4.27,0.1c-0.71,1.2-1.42,2.41-2.12,3.61c0.71,1.17,1.43,2.34,2.14,3.5 - C560.35,29.13,561.77,29.09,563.19,29.04z"/> - - <linearGradient id="SVGID_57_" gradientUnits="userSpaceOnUse" x1="-297.3784" y1="-325.0405" x2="-293.2109" y2="-317.8222" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_57_)" d="M563.16,18.58c0.71-1.2,1.42-2.39,2.13-3.58c-0.71-1.17-1.43-2.33-2.14-3.51 - c-1.42,0.02-2.85,0.04-4.27,0.05c-0.71,1.2-1.42,2.39-2.13,3.59c0.71,1.18,1.43,2.35,2.14,3.52 - C560.32,18.63,561.74,18.6,563.16,18.58z"/> - - <linearGradient id="SVGID_58_" gradientUnits="userSpaceOnUse" x1="-297.3384" y1="-335.5166" x2="-293.1929" y2="-328.3364" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_58_)" d="M563.14,8.1c0.71-1.19,1.42-2.37,2.12-3.55c-0.71-1.17-1.43-2.35-2.14-3.53 - c-1.42,0-2.85,0-4.27,0.01c-0.71,1.19-1.42,2.38-2.13,3.57c0.72,1.18,1.43,2.37,2.15,3.54C560.29,8.13,561.71,8.12,563.14,8.1z"/> - - <linearGradient id="SVGID_59_" gradientUnits="userSpaceOnUse" x1="-286.4502" y1="-266.2334" x2="-282.1519" y2="-258.7885" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_59_)" d="M552.18,77.43c0.71-1.25,1.42-2.49,2.13-3.73c-0.71-1.14-1.43-2.29-2.14-3.43 - c-1.43,0.09-2.85,0.19-4.28,0.28c-0.71,1.24-1.42,2.49-2.13,3.74c0.71,1.16,1.43,2.31,2.14,3.45 - C549.33,77.63,550.75,77.53,552.18,77.43z"/> - - <linearGradient id="SVGID_60_" gradientUnits="userSpaceOnUse" x1="-286.4141" y1="-276.8271" x2="-282.1338" y2="-269.4135" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_60_)" d="M552.15,66.84c0.71-1.24,1.42-2.47,2.13-3.71c-0.71-1.15-1.43-2.3-2.14-3.45 - c-1.42,0.08-2.85,0.16-4.27,0.24c-0.71,1.24-1.42,2.48-2.13,3.72c0.72,1.16,1.43,2.32,2.14,3.47 - C549.3,67.01,550.72,66.93,552.15,66.84z"/> - - <linearGradient id="SVGID_61_" gradientUnits="userSpaceOnUse" x1="-286.376" y1="-287.4204" x2="-282.1143" y2="-280.0389" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_61_)" d="M552.12,56.25c0.71-1.23,1.42-2.46,2.13-3.69c-0.71-1.16-1.43-2.31-2.15-3.47 - c-1.42,0.07-2.85,0.13-4.27,0.19c-0.71,1.23-1.42,2.46-2.13,3.7c0.71,1.17,1.43,2.33,2.15,3.5 - C549.27,56.4,550.7,56.32,552.12,56.25z"/> - - <linearGradient id="SVGID_62_" gradientUnits="userSpaceOnUse" x1="-286.3418" y1="-298.0117" x2="-282.0991" y2="-290.6632" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_62_)" d="M552.09,45.66c0.71-1.23,1.42-2.45,2.13-3.67c-0.71-1.16-1.43-2.33-2.15-3.5 - c-1.42,0.05-2.85,0.1-4.27,0.15c-0.71,1.22-1.42,2.45-2.12,3.68c0.71,1.17,1.43,2.35,2.14,3.51 - C549.24,45.78,550.67,45.72,552.09,45.66z"/> - - <linearGradient id="SVGID_63_" gradientUnits="userSpaceOnUse" x1="-286.3062" y1="-308.6084" x2="-282.0796" y2="-301.2878" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_63_)" d="M552.06,35.07c0.71-1.22,1.42-2.43,2.13-3.65c-0.71-1.17-1.43-2.34-2.14-3.52 - c-1.42,0.04-2.85,0.08-4.27,0.11c-0.71,1.22-1.42,2.43-2.12,3.65c0.71,1.18,1.43,2.36,2.14,3.54 - C549.22,35.17,550.64,35.12,552.06,35.07z"/> - - <linearGradient id="SVGID_64_" gradientUnits="userSpaceOnUse" x1="-286.269" y1="-319.1992" x2="-282.062" y2="-311.9124" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_64_)" d="M552.04,24.48c0.71-1.21,1.42-2.42,2.12-3.62c-0.71-1.18-1.43-2.35-2.14-3.54 - c-1.42,0.02-2.85,0.05-4.28,0.07c-0.71,1.21-1.42,2.42-2.12,3.63c0.71,1.19,1.43,2.37,2.14,3.56 - C549.19,24.55,550.61,24.52,552.04,24.48z"/> - - <linearGradient id="SVGID_65_" gradientUnits="userSpaceOnUse" x1="-286.2334" y1="-329.7939" x2="-282.0449" y2="-322.5393" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_65_)" d="M552.01,13.89c0.71-1.2,1.42-2.4,2.12-3.6c-0.71-1.18-1.43-2.37-2.14-3.56 - c-1.42,0.01-2.85,0.02-4.27,0.03c-0.71,1.2-1.41,2.41-2.12,3.61c0.71,1.2,1.43,2.39,2.14,3.57 - C549.16,13.93,550.59,13.91,552.01,13.89z"/> - - <linearGradient id="SVGID_66_" gradientUnits="userSpaceOnUse" x1="-285.1821" y1="-338.6313" x2="-282.0254" y2="-333.1637" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_66_)" d="M545.56-0.28c0.71,1.2,1.43,2.4,2.14,3.59c1.43-0.01,2.85-0.01,4.27-0.01 - c0.71-1.2,1.42-2.39,2.13-3.58C551.26-0.28,548.41-0.28,545.56-0.28z"/> - - <linearGradient id="SVGID_67_" gradientUnits="userSpaceOnUse" x1="-275.6704" y1="-260.6182" x2="-272.3271" y2="-254.8275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_67_)" d="M543.53,79.35c-0.71-1.16-1.43-2.31-2.14-3.47c-1.43,0.09-2.85,0.18-4.28,0.26 - c-0.71,1.25-1.42,2.5-2.13,3.76C537.83,79.73,540.68,79.54,543.53,79.35z"/> - - <linearGradient id="SVGID_68_" gradientUnits="userSpaceOnUse" x1="-275.6523" y1="-271.3037" x2="-271.3477" y2="-263.8478" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_68_)" d="M541.38,72.42c0.71-1.25,1.42-2.49,2.13-3.74c-0.71-1.16-1.43-2.32-2.15-3.49 - c-1.42,0.08-2.85,0.15-4.28,0.23c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.18,1.43,2.35,2.14,3.51 - C538.52,72.59,539.95,72.51,541.38,72.42z"/> - - <linearGradient id="SVGID_69_" gradientUnits="userSpaceOnUse" x1="-275.6177" y1="-281.9995" x2="-271.3281" y2="-274.5698" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_69_)" d="M541.35,61.73c0.71-1.24,1.42-2.48,2.13-3.72c-0.71-1.17-1.43-2.34-2.14-3.51 - c-1.43,0.06-2.85,0.12-4.28,0.19c-0.71,1.24-1.42,2.48-2.13,3.73c0.71,1.18,1.43,2.36,2.14,3.53 - C538.5,61.88,539.92,61.81,541.35,61.73z"/> - - <linearGradient id="SVGID_70_" gradientUnits="userSpaceOnUse" x1="-275.5815" y1="-292.6943" x2="-271.3096" y2="-285.2951" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_70_)" d="M541.32,51.04c0.71-1.24,1.42-2.47,2.13-3.7c-0.71-1.18-1.43-2.35-2.14-3.53 - c-1.43,0.05-2.85,0.1-4.28,0.15c-0.71,1.24-1.42,2.47-2.12,3.71c0.72,1.19,1.43,2.37,2.14,3.55 - C538.47,51.16,539.89,51.1,541.32,51.04z"/> - - <linearGradient id="SVGID_71_" gradientUnits="userSpaceOnUse" x1="-275.5479" y1="-303.3892" x2="-271.2905" y2="-296.0153" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_71_)" d="M541.29,40.35c0.71-1.23,1.42-2.46,2.13-3.68c-0.71-1.18-1.43-2.36-2.14-3.55 - c-1.43,0.04-2.85,0.08-4.28,0.12c-0.71,1.23-1.42,2.46-2.13,3.69c0.71,1.19,1.43,2.38,2.14,3.57 - C538.44,40.45,539.87,40.4,541.29,40.35z"/> - - <linearGradient id="SVGID_72_" gradientUnits="userSpaceOnUse" x1="-275.5142" y1="-314.0815" x2="-271.2734" y2="-306.7364" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_72_)" d="M541.27,29.66c0.71-1.22,1.42-2.44,2.12-3.66c-0.71-1.19-1.43-2.38-2.14-3.57 - c-1.43,0.03-2.85,0.05-4.27,0.08c-0.71,1.22-1.42,2.45-2.13,3.67c0.71,1.2,1.43,2.39,2.14,3.59 - C538.42,29.73,539.84,29.7,541.27,29.66z"/> - - <linearGradient id="SVGID_73_" gradientUnits="userSpaceOnUse" x1="-275.4805" y1="-324.7773" x2="-271.2563" y2="-317.4609" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_73_)" d="M541.24,18.97c0.71-1.22,1.42-2.43,2.12-3.64c-0.71-1.19-1.43-2.39-2.14-3.59 - c-1.43,0.01-2.85,0.03-4.27,0.04c-0.71,1.22-1.42,2.43-2.13,3.65c0.72,1.2,1.43,2.41,2.15,3.6 - C538.39,19.01,539.81,18.99,541.24,18.97z"/> - - <linearGradient id="SVGID_74_" gradientUnits="userSpaceOnUse" x1="-275.4487" y1="-335.4722" x2="-271.2402" y2="-328.1828" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_74_)" d="M541.21,8.28c0.71-1.21,1.42-2.42,2.13-3.62c-0.71-1.2-1.43-2.4-2.14-3.61 - c-1.42,0-2.85,0-4.27,0.01c-0.71,1.21-1.42,2.42-2.12,3.64c0.71,1.21,1.43,2.42,2.14,3.62C538.36,8.3,539.79,8.29,541.21,8.28z"/> - - <linearGradient id="SVGID_75_" gradientUnits="userSpaceOnUse" x1="-264.5215" y1="-264.936" x2="-260.1963" y2="-257.4446" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_75_)" d="M530.23,78.85c0.71-1.26,1.42-2.51,2.13-3.76c-0.71-1.18-1.43-2.35-2.14-3.53 - c-1.43,0.07-2.85,0.14-4.28,0.21c-0.71,1.25-1.42,2.51-2.13,3.77c0.72,1.18,1.43,2.37,2.15,3.55 - C527.38,79.01,528.8,78.93,530.23,78.85z"/> - - <linearGradient id="SVGID_76_" gradientUnits="userSpaceOnUse" x1="-264.4883" y1="-275.7197" x2="-260.1782" y2="-268.2545" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_76_)" d="M530.21,68.07c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.18-1.43-2.36-2.15-3.54 - c-1.43,0.06-2.85,0.12-4.28,0.18c-0.71,1.25-1.42,2.5-2.13,3.75c0.71,1.19,1.43,2.38,2.15,3.57 - C527.36,68.2,528.78,68.14,530.21,68.07z"/> - - <linearGradient id="SVGID_77_" gradientUnits="userSpaceOnUse" x1="-264.4595" y1="-286.5088" x2="-260.1611" y2="-279.0638" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_77_)" d="M530.18,57.28c0.71-1.24,1.42-2.49,2.13-3.73c-0.72-1.18-1.43-2.37-2.15-3.56 - c-1.43,0.05-2.85,0.1-4.28,0.15c-0.71,1.24-1.42,2.49-2.13,3.73c0.72,1.2,1.43,2.39,2.15,3.58 - C527.33,57.4,528.76,57.34,530.18,57.28z"/> - - <linearGradient id="SVGID_78_" gradientUnits="userSpaceOnUse" x1="-264.4253" y1="-297.2939" x2="-260.1421" y2="-289.8752" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_78_)" d="M530.16,46.5c0.71-1.24,1.42-2.48,2.13-3.71c-0.72-1.19-1.43-2.38-2.15-3.58 - c-1.43,0.04-2.85,0.08-4.28,0.12c-0.71,1.24-1.42,2.48-2.13,3.72c0.71,1.2,1.43,2.4,2.14,3.6 - C527.31,46.59,528.73,46.55,530.16,46.5z"/> - - <linearGradient id="SVGID_79_" gradientUnits="userSpaceOnUse" x1="-264.395" y1="-308.0801" x2="-260.1265" y2="-300.6867" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_79_)" d="M530.13,35.72c0.71-1.23,1.42-2.47,2.13-3.7c-0.71-1.2-1.43-2.4-2.14-3.6 - c-1.43,0.03-2.85,0.06-4.27,0.08c-0.71,1.23-1.42,2.47-2.13,3.7c0.72,1.21,1.43,2.41,2.15,3.61 - C527.29,35.79,528.71,35.75,530.13,35.72z"/> - - <linearGradient id="SVGID_80_" gradientUnits="userSpaceOnUse" x1="-264.3638" y1="-318.8662" x2="-260.1089" y2="-311.4966" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_80_)" d="M530.11,24.94c0.71-1.23,1.42-2.46,2.13-3.68c-0.71-1.2-1.43-2.41-2.14-3.61 - c-1.43,0.02-2.85,0.04-4.27,0.05c-0.71,1.23-1.42,2.46-2.13,3.69c0.71,1.21,1.43,2.42,2.14,3.63 - C527.26,24.99,528.68,24.96,530.11,24.94z"/> - - <linearGradient id="SVGID_81_" gradientUnits="userSpaceOnUse" x1="-264.333" y1="-329.6528" x2="-260.0918" y2="-322.3069" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_81_)" d="M530.08,14.15c0.71-1.22,1.42-2.44,2.13-3.66c-0.71-1.21-1.43-2.42-2.14-3.63 - c-1.42,0.01-2.85,0.02-4.27,0.02c-0.71,1.22-1.42,2.45-2.13,3.67c0.71,1.22,1.43,2.43,2.14,3.64 - C527.23,14.18,528.66,14.17,530.08,14.15z"/> - - <linearGradient id="SVGID_82_" gradientUnits="userSpaceOnUse" x1="-263.2588" y1="-338.6313" x2="-260.0757" y2="-333.118" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_82_)" d="M523.64-0.28c0.71,1.22,1.43,2.44,2.14,3.66c1.42,0,2.85-0.01,4.27-0.01 - c0.71-1.22,1.42-2.43,2.13-3.65C529.34-0.28,526.49-0.28,523.64-0.28z"/> - - <linearGradient id="SVGID_83_" gradientUnits="userSpaceOnUse" x1="-253.7207" y1="-259.4141" x2="-250.3975" y2="-253.658" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_83_)" d="M521.58,80.65c-0.72-1.19-1.43-2.38-2.15-3.57c-1.43,0.07-2.86,0.13-4.28,0.19 - c-0.71,1.26-1.42,2.52-2.13,3.78C515.87,80.93,518.72,80.8,521.58,80.65z"/> - - <linearGradient id="SVGID_84_" gradientUnits="userSpaceOnUse" x1="-253.7124" y1="-270.2632" x2="-249.3857" y2="-262.7692" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_84_)" d="M519.42,73.57c0.71-1.26,1.42-2.51,2.13-3.76c-0.72-1.19-1.43-2.39-2.15-3.58 - c-1.43,0.06-2.85,0.11-4.28,0.17c-0.71,1.25-1.42,2.51-2.13,3.76c0.71,1.2,1.43,2.4,2.15,3.6C516.57,73.7,518,73.63,519.42,73.57z" - /> - - <linearGradient id="SVGID_85_" gradientUnits="userSpaceOnUse" x1="-253.6851" y1="-281.127" x2="-249.3691" y2="-273.6516" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_85_)" d="M519.4,62.71c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.2-1.43-2.4-2.14-3.6 - c-1.43,0.05-2.85,0.1-4.28,0.14c-0.71,1.25-1.42,2.5-2.13,3.75c0.72,1.21,1.43,2.41,2.15,3.61 - C516.54,62.82,517.97,62.77,519.4,62.71z"/> - - <linearGradient id="SVGID_86_" gradientUnits="userSpaceOnUse" x1="-253.6572" y1="-291.9888" x2="-249.3545" y2="-284.5362" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_86_)" d="M519.38,51.85c0.71-1.25,1.42-2.49,2.13-3.74c-0.71-1.2-1.43-2.4-2.14-3.61 - c-1.43,0.04-2.85,0.08-4.28,0.11c-0.71,1.25-1.42,2.49-2.13,3.74c0.72,1.21,1.43,2.42,2.15,3.62 - C516.52,51.94,517.95,51.9,519.38,51.85z"/> - - <linearGradient id="SVGID_87_" gradientUnits="userSpaceOnUse" x1="-253.6299" y1="-302.8511" x2="-249.3389" y2="-295.4188" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_87_)" d="M519.36,40.99c0.71-1.24,1.42-2.48,2.13-3.72c-0.71-1.21-1.43-2.41-2.14-3.62 - c-1.43,0.03-2.85,0.06-4.28,0.08c-0.71,1.24-1.42,2.48-2.13,3.73c0.71,1.21,1.43,2.43,2.15,3.64 - C516.5,41.06,517.93,41.03,519.36,40.99z"/> - - <linearGradient id="SVGID_88_" gradientUnits="userSpaceOnUse" x1="-253.5986" y1="-313.7134" x2="-249.3208" y2="-306.304" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_88_)" d="M519.33,30.13c0.71-1.24,1.42-2.47,2.13-3.71c-0.71-1.21-1.43-2.42-2.14-3.64 - c-1.43,0.02-2.85,0.04-4.28,0.06c-0.71,1.24-1.42,2.47-2.13,3.71c0.71,1.22,1.43,2.43,2.14,3.65 - C516.48,30.18,517.91,30.16,519.33,30.13z"/> - - <linearGradient id="SVGID_89_" gradientUnits="userSpaceOnUse" x1="-253.5713" y1="-324.5762" x2="-249.3047" y2="-317.1862" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_89_)" d="M519.31,19.27c0.71-1.23,1.42-2.46,2.13-3.69c-0.71-1.22-1.43-2.43-2.14-3.65 - c-1.42,0.01-2.85,0.02-4.27,0.03c-0.71,1.23-1.42,2.46-2.13,3.7c0.71,1.22,1.43,2.44,2.14,3.66 - C516.46,19.31,517.88,19.29,519.31,19.27z"/> - - <linearGradient id="SVGID_90_" gradientUnits="userSpaceOnUse" x1="-253.5449" y1="-335.4404" x2="-249.2891" y2="-328.0691" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_90_)" d="M519.29,8.41c0.71-1.23,1.42-2.45,2.12-3.68c-0.71-1.22-1.43-2.44-2.14-3.67c-1.43,0-2.85,0-4.28,0 - c-0.71,1.23-1.42,2.46-2.13,3.69c0.71,1.23,1.43,2.45,2.14,3.67C516.44,8.43,517.86,8.42,519.29,8.41z"/> - - <linearGradient id="SVGID_91_" gradientUnits="userSpaceOnUse" x1="-242.5649" y1="-263.9795" x2="-238.2266" y2="-256.4652" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_91_)" d="M508.27,79.9c0.71-1.26,1.42-2.52,2.13-3.78c-0.72-1.2-1.43-2.41-2.15-3.62 - c-1.43,0.05-2.86,0.1-4.28,0.15c-0.71,1.26-1.42,2.52-2.13,3.78c0.71,1.21,1.43,2.42,2.14,3.63 - C505.41,80.01,506.84,79.96,508.27,79.9z"/> - - <linearGradient id="SVGID_92_" gradientUnits="userSpaceOnUse" x1="-242.5405" y1="-274.9058" x2="-238.2139" y2="-267.4118" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_92_)" d="M508.25,68.97c0.71-1.26,1.42-2.51,2.13-3.77c-0.72-1.21-1.43-2.42-2.15-3.62 - c-1.42,0.04-2.85,0.09-4.28,0.12c-0.71,1.25-1.42,2.51-2.13,3.76c0.71,1.21,1.43,2.43,2.15,3.64 - C505.39,69.07,506.82,69.02,508.25,68.97z"/> - - <linearGradient id="SVGID_93_" gradientUnits="userSpaceOnUse" x1="-242.5171" y1="-285.835" x2="-238.1987" y2="-278.3553" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_93_)" d="M508.23,58.05c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.21-1.43-2.42-2.15-3.64 - c-1.42,0.04-2.85,0.07-4.28,0.1c-0.71,1.25-1.42,2.5-2.13,3.75c0.71,1.22,1.43,2.44,2.15,3.65 - C505.38,58.13,506.8,58.09,508.23,58.05z"/> - - <linearGradient id="SVGID_94_" gradientUnits="userSpaceOnUse" x1="-242.4937" y1="-296.7627" x2="-238.186" y2="-289.3017" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_94_)" d="M508.21,47.12c0.71-1.25,1.42-2.49,2.13-3.74c-0.71-1.21-1.43-2.43-2.14-3.65 - c-1.43,0.03-2.85,0.06-4.28,0.08c-0.71,1.25-1.42,2.5-2.13,3.74c0.71,1.22,1.43,2.44,2.14,3.66 - C505.36,47.19,506.78,47.15,508.21,47.12z"/> - - <linearGradient id="SVGID_95_" gradientUnits="userSpaceOnUse" x1="-242.4692" y1="-307.6914" x2="-238.1714" y2="-300.2473" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_95_)" d="M508.19,36.2c0.71-1.25,1.42-2.49,2.13-3.73c-0.71-1.22-1.43-2.44-2.14-3.66 - c-1.42,0.02-2.85,0.04-4.27,0.06c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.22,1.43,2.45,2.14,3.67 - C505.34,36.25,506.77,36.22,508.19,36.2z"/> - - <linearGradient id="SVGID_96_" gradientUnits="userSpaceOnUse" x1="-242.4463" y1="-318.6201" x2="-238.1582" y2="-311.1929" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_96_)" d="M508.17,25.27c0.71-1.24,1.42-2.48,2.13-3.72c-0.71-1.22-1.43-2.45-2.14-3.67 - c-1.43,0.01-2.85,0.03-4.28,0.04c-0.71,1.24-1.42,2.48-2.13,3.72c0.71,1.23,1.43,2.46,2.14,3.68 - C505.32,25.31,506.75,25.29,508.17,25.27z"/> - - <linearGradient id="SVGID_97_" gradientUnits="userSpaceOnUse" x1="-242.4224" y1="-329.5483" x2="-238.1445" y2="-322.1389" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_97_)" d="M508.15,14.34c0.71-1.24,1.42-2.47,2.13-3.71c-0.71-1.23-1.43-2.46-2.14-3.69 - c-1.42,0-2.85,0.01-4.27,0.01c-0.71,1.24-1.42,2.47-2.13,3.71c0.71,1.23,1.43,2.46,2.14,3.69 - C505.3,14.37,506.73,14.35,508.15,14.34z"/> - - <linearGradient id="SVGID_98_" gradientUnits="userSpaceOnUse" x1="-241.3369" y1="-338.6299" x2="-238.1338" y2="-333.0819" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_98_)" d="M501.72-0.28c0.71,1.24,1.43,2.47,2.14,3.7c1.43,0,2.85,0,4.27-0.01c0.71-1.23,1.42-2.47,2.13-3.7 - C507.41-0.28,504.57-0.28,501.72-0.28z"/> - - <linearGradient id="SVGID_99_" gradientUnits="userSpaceOnUse" x1="-231.75" y1="-258.5693" x2="-228.4551" y2="-252.8624" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_99_)" d="M499.6,81.57c-0.71-1.21-1.43-2.43-2.14-3.64c-1.43,0.04-2.86,0.08-4.28,0.12 - c-0.71,1.26-1.43,2.52-2.14,3.78C493.89,81.75,496.75,81.67,499.6,81.57z"/> - - <linearGradient id="SVGID_100_" gradientUnits="userSpaceOnUse" x1="-231.75" y1="-269.5381" x2="-227.415" y2="-262.0297" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_100_)" d="M497.46,74.38c0.71-1.26,1.42-2.52,2.13-3.77c-0.71-1.22-1.43-2.43-2.14-3.65 - c-1.43,0.04-2.86,0.07-4.28,0.11c-0.71,1.26-1.42,2.51-2.13,3.77c0.71,1.22,1.43,2.45,2.14,3.67 - C494.6,74.46,496.03,74.42,497.46,74.38z"/> - - <linearGradient id="SVGID_101_" gradientUnits="userSpaceOnUse" x1="-231.7305" y1="-280.5166" x2="-227.4038" y2="-273.0226" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_101_)" d="M497.44,63.4c0.71-1.26,1.42-2.51,2.13-3.76c-0.71-1.22-1.43-2.44-2.14-3.66 - c-1.43,0.03-2.85,0.06-4.28,0.09c-0.71,1.25-1.42,2.51-2.13,3.76c0.71,1.23,1.43,2.45,2.14,3.68 - C494.58,63.47,496.01,63.44,497.44,63.4z"/> - - <linearGradient id="SVGID_102_" gradientUnits="userSpaceOnUse" x1="-231.7104" y1="-291.4966" x2="-227.3921" y2="-284.017" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_102_)" d="M497.42,52.42c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.22-1.43-2.45-2.14-3.67 - c-1.42,0.03-2.85,0.05-4.28,0.07c-0.71,1.25-1.42,2.5-2.13,3.75c0.71,1.23,1.43,2.46,2.14,3.68 - C494.57,52.48,496,52.45,497.42,52.42z"/> - - <linearGradient id="SVGID_103_" gradientUnits="userSpaceOnUse" x1="-231.6929" y1="-302.4766" x2="-227.3818" y2="-295.0096" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_103_)" d="M497.4,41.44c0.71-1.25,1.42-2.5,2.13-3.75c-0.72-1.22-1.43-2.45-2.14-3.68 - c-1.42,0.02-2.85,0.04-4.28,0.05c-0.71,1.25-1.43,2.5-2.13,3.75c0.71,1.23,1.43,2.46,2.14,3.69 - C494.55,41.49,495.98,41.47,497.4,41.44z"/> - - <linearGradient id="SVGID_104_" gradientUnits="userSpaceOnUse" x1="-231.6724" y1="-313.4556" x2="-227.3706" y2="-306.0047" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_104_)" d="M497.39,30.46c0.71-1.25,1.42-2.49,2.13-3.74c-0.71-1.23-1.43-2.46-2.14-3.69 - c-1.43,0.01-2.85,0.02-4.28,0.03c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.23,1.43,2.46,2.14,3.7 - C494.54,30.5,495.96,30.48,497.39,30.46z"/> - - <linearGradient id="SVGID_105_" gradientUnits="userSpaceOnUse" x1="-231.6548" y1="-324.4355" x2="-227.3584" y2="-316.994" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_105_)" d="M497.38,19.49c0.71-1.24,1.42-2.48,2.13-3.73c-0.71-1.23-1.43-2.46-2.14-3.7 - c-1.42,0.01-2.85,0.01-4.28,0.02c-0.71,1.24-1.42,2.49-2.13,3.73c0.71,1.24,1.43,2.47,2.14,3.71 - C494.52,19.51,495.95,19.5,497.38,19.49z"/> - - <linearGradient id="SVGID_106_" gradientUnits="userSpaceOnUse" x1="-231.6353" y1="-335.4165" x2="-227.3472" y2="-327.9893" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_106_)" d="M497.36,8.51c0.71-1.24,1.42-2.48,2.13-3.71c-0.71-1.24-1.43-2.47-2.14-3.71 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.42,2.48-2.13,3.73c0.71,1.24,1.43,2.48,2.14,3.71C494.51,8.52,495.93,8.51,497.36,8.51z"/> - - <linearGradient id="SVGID_107_" gradientUnits="userSpaceOnUse" x1="-220.5879" y1="-263.3618" x2="-216.251" y2="-255.8501" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_107_)" d="M486.29,80.58c0.71-1.26,1.43-2.52,2.14-3.78c-0.71-1.23-1.43-2.45-2.14-3.68 - c-1.43,0.03-2.86,0.06-4.28,0.08c-0.71,1.26-1.42,2.51-2.14,3.77c0.72,1.23,1.43,2.46,2.14,3.69 - C483.43,80.64,484.86,80.61,486.29,80.58z"/> - - <linearGradient id="SVGID_108_" gradientUnits="userSpaceOnUse" x1="-220.5737" y1="-274.3813" x2="-216.2437" y2="-266.8814" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_108_)" d="M486.28,69.56c0.71-1.25,1.42-2.51,2.14-3.77c-0.72-1.23-1.43-2.46-2.15-3.69 - c-1.43,0.03-2.85,0.05-4.28,0.07c-0.71,1.26-1.42,2.51-2.14,3.77c0.72,1.23,1.43,2.47,2.14,3.7 - C483.42,69.62,484.85,69.59,486.28,69.56z"/> - - <linearGradient id="SVGID_109_" gradientUnits="userSpaceOnUse" x1="-220.5591" y1="-285.3999" x2="-216.2354" y2="-277.911" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_109_)" d="M486.27,58.54c0.71-1.25,1.42-2.51,2.13-3.76c-0.71-1.23-1.43-2.46-2.14-3.69 - c-1.43,0.02-2.85,0.04-4.28,0.05c-0.71,1.25-1.42,2.51-2.13,3.76c0.71,1.24,1.43,2.47,2.14,3.71 - C483.41,58.59,484.84,58.57,486.27,58.54z"/> - - <linearGradient id="SVGID_110_" gradientUnits="userSpaceOnUse" x1="-220.5444" y1="-296.4189" x2="-216.2271" y2="-288.941" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_110_)" d="M486.25,47.52c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.23-1.43-2.46-2.14-3.7 - c-1.43,0.01-2.85,0.03-4.28,0.04c-0.71,1.25-1.42,2.5-2.13,3.75c0.71,1.24,1.43,2.47,2.14,3.71 - C483.4,47.56,484.83,47.54,486.25,47.52z"/> - - <linearGradient id="SVGID_111_" gradientUnits="userSpaceOnUse" x1="-220.5317" y1="-307.4409" x2="-216.2197" y2="-299.9723" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_111_)" d="M486.24,36.5c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.24-1.43-2.47-2.14-3.71 - c-1.43,0.01-2.85,0.02-4.28,0.03c-0.71,1.25-1.42,2.5-2.13,3.75c0.71,1.24,1.43,2.48,2.14,3.71 - C483.39,36.53,484.82,36.52,486.24,36.5z"/> - - <linearGradient id="SVGID_112_" gradientUnits="userSpaceOnUse" x1="-220.5171" y1="-318.4595" x2="-216.2109" y2="-311.001" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_112_)" d="M486.23,25.49c0.71-1.25,1.42-2.49,2.13-3.74c-0.71-1.24-1.43-2.47-2.14-3.71 - c-1.42,0.01-2.85,0.01-4.27,0.02c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.24,1.43,2.48,2.14,3.72 - C483.38,25.51,484.8,25.5,486.23,25.49z"/> - - <linearGradient id="SVGID_113_" gradientUnits="userSpaceOnUse" x1="-220.5044" y1="-329.481" x2="-216.2031" y2="-322.0309" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_113_)" d="M486.22,14.47c0.71-1.25,1.42-2.49,2.13-3.74c-0.71-1.24-1.43-2.48-2.14-3.72 - c-1.42,0-2.85,0-4.28,0.01c-0.71,1.24-1.42,2.49-2.13,3.73c0.71,1.24,1.42,2.49,2.14,3.73C483.37,14.48,484.79,14.47,486.22,14.47z - "/> - - <linearGradient id="SVGID_114_" gradientUnits="userSpaceOnUse" x1="-219.4209" y1="-338.6265" x2="-216.2041" y2="-333.0548" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_114_)" d="M479.79-0.28c0.71,1.24,1.43,2.49,2.14,3.73c1.42,0,2.85,0,4.27,0c0.71-1.24,1.42-2.49,2.13-3.73 - C485.49-0.28,482.64-0.28,479.79-0.28z"/> - - <linearGradient id="SVGID_115_" gradientUnits="userSpaceOnUse" x1="-209.7646" y1="-258.085" x2="-206.5078" y2="-252.444" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_115_)" d="M477.62,82.12c-0.72-1.23-1.43-2.47-2.15-3.7c-1.43,0.02-2.86,0.04-4.28,0.05 - c-0.71,1.25-1.43,2.51-2.14,3.76C471.91,82.2,474.76,82.16,477.62,82.12z"/> - - <linearGradient id="SVGID_116_" gradientUnits="userSpaceOnUse" x1="-209.7695" y1="-269.1221" x2="-205.4429" y2="-261.6281" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_116_)" d="M475.47,74.84c0.71-1.25,1.42-2.51,2.14-3.77c-0.71-1.23-1.43-2.47-2.14-3.71 - c-1.43,0.02-2.86,0.03-4.28,0.04c-0.71,1.25-1.43,2.51-2.14,3.76c0.71,1.24,1.43,2.48,2.14,3.72 - C472.62,74.88,474.04,74.86,475.47,74.84z"/> - - <linearGradient id="SVGID_117_" gradientUnits="userSpaceOnUse" x1="-209.7617" y1="-280.1714" x2="-205.4375" y2="-272.6816" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_117_)" d="M475.46,63.8c0.71-1.25,1.43-2.51,2.14-3.76c-0.71-1.24-1.43-2.47-2.14-3.71 - c-1.43,0.02-2.85,0.03-4.28,0.04c-0.71,1.25-1.42,2.5-2.14,3.75c0.72,1.24,1.43,2.48,2.14,3.72 - C472.61,63.83,474.04,63.81,475.46,63.8z"/> - - <linearGradient id="SVGID_118_" gradientUnits="userSpaceOnUse" x1="-209.7529" y1="-291.2163" x2="-205.4326" y2="-283.7333" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_118_)" d="M475.46,52.75c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.24-1.43-2.48-2.14-3.72 - c-1.43,0.01-2.85,0.02-4.28,0.03c-0.71,1.25-1.42,2.5-2.14,3.75c0.71,1.24,1.43,2.48,2.14,3.73 - C472.61,52.77,474.03,52.76,475.46,52.75z"/> - - <linearGradient id="SVGID_119_" gradientUnits="userSpaceOnUse" x1="-209.7437" y1="-302.2632" x2="-205.4272" y2="-294.787" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_119_)" d="M475.45,41.7c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.24-1.43-2.48-2.14-3.72 - c-1.43,0.01-2.85,0.02-4.28,0.02c-0.71,1.25-1.42,2.5-2.13,3.75c0.71,1.24,1.43,2.49,2.14,3.73 - C472.6,41.72,474.02,41.71,475.45,41.7z"/> - - <linearGradient id="SVGID_120_" gradientUnits="userSpaceOnUse" x1="-209.7354" y1="-313.3101" x2="-205.4229" y2="-305.8406" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_120_)" d="M475.44,30.66c0.71-1.25,1.42-2.5,2.13-3.75c-0.71-1.24-1.43-2.48-2.14-3.73 - c-1.43,0.01-2.85,0.01-4.28,0.02c-0.71,1.25-1.42,2.5-2.13,3.75c0.71,1.24,1.43,2.49,2.14,3.73 - C472.59,30.67,474.02,30.66,475.44,30.66z"/> - - <linearGradient id="SVGID_121_" gradientUnits="userSpaceOnUse" x1="-209.7261" y1="-324.355" x2="-205.417" y2="-316.8914" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_121_)" d="M475.44,19.61c0.71-1.25,1.42-2.49,2.13-3.74c-0.71-1.24-1.43-2.49-2.14-3.73 - c-1.43,0-2.85,0.01-4.27,0.01c-0.71,1.25-1.42,2.5-2.14,3.74c0.71,1.25,1.43,2.49,2.14,3.73 - C472.59,19.62,474.01,19.62,475.44,19.61z"/> - - <linearGradient id="SVGID_122_" gradientUnits="userSpaceOnUse" x1="-209.7183" y1="-335.4033" x2="-205.4121" y2="-327.9449" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_122_)" d="M475.43,8.56c0.71-1.25,1.42-2.49,2.13-3.74c-0.71-1.24-1.43-2.49-2.14-3.73 - c-1.42,0-2.85,0-4.27,0c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.43,2.49,2.14,3.74C472.58,8.57,474,8.57,475.43,8.56z"/> - - <linearGradient id="SVGID_123_" gradientUnits="userSpaceOnUse" x1="90.915" y1="-257.9634" x2="94.127" y2="-252.4002" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_123_)" d="M176.95,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.28-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C171.23,82.27,174.09,82.28,176.95,82.29z"/> - - <linearGradient id="SVGID_124_" gradientUnits="userSpaceOnUse" x1="90.9062" y1="-269.0225" x2="95.2104" y2="-261.5674" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_124_)" d="M174.8,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.86-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C171.95,74.95,173.38,74.96,174.8,74.96 - z"/> - - <linearGradient id="SVGID_125_" gradientUnits="userSpaceOnUse" x1="90.9033" y1="-280.0854" x2="95.209" y2="-272.6278" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_125_)" d="M174.8,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C171.95,63.89,173.38,63.89,174.8,63.9z"/> - - <linearGradient id="SVGID_126_" gradientUnits="userSpaceOnUse" x1="90.9009" y1="-291.1475" x2="95.2061" y2="-283.6907" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_126_)" d="M174.81,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C171.95,52.83,173.38,52.83,174.81,52.83z"/> - - <linearGradient id="SVGID_127_" gradientUnits="userSpaceOnUse" x1="90.8984" y1="-302.2114" x2="95.2056" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_127_)" d="M174.81,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C171.96,41.77,173.38,41.77,174.81,41.77z" - /> - - <linearGradient id="SVGID_128_" gradientUnits="userSpaceOnUse" x1="90.897" y1="-313.2734" x2="95.2036" y2="-305.8141" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_128_)" d="M174.81,30.71c0.71-1.25,1.43-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C171.96,30.7,173.38,30.71,174.81,30.71z"/> - - <linearGradient id="SVGID_129_" gradientUnits="userSpaceOnUse" x1="90.8945" y1="-324.3364" x2="95.2026" y2="-316.8746" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_129_)" d="M174.81,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C171.96,19.64,173.38,19.64,174.81,19.64z"/> - - <linearGradient id="SVGID_130_" gradientUnits="userSpaceOnUse" x1="90.8911" y1="-335.4014" x2="95.1997" y2="-327.9387" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_130_)" d="M174.81,8.58c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.75c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.43,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C171.96,8.58,173.39,8.58,174.81,8.58z"/> - - <linearGradient id="SVGID_131_" gradientUnits="userSpaceOnUse" x1="102.0923" y1="-263.147" x2="106.3779" y2="-255.724" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_131_)" d="M163.63,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.28-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C160.77,80.8,162.2,80.82,163.63,80.83z"/> - - <linearGradient id="SVGID_132_" gradientUnits="userSpaceOnUse" x1="102.0825" y1="-274.1987" x2="106.3711" y2="-266.7707" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_132_)" d="M163.63,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.85-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.43,2.51,2.14,3.76 - C160.78,69.75,162.21,69.77,163.63,69.78z"/> - - <linearGradient id="SVGID_133_" gradientUnits="userSpaceOnUse" x1="102.0747" y1="-285.251" x2="106.3657" y2="-277.8187" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_133_)" d="M163.64,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.51,2.14,3.76 - C160.79,58.7,162.21,58.72,163.64,58.73z"/> - - <linearGradient id="SVGID_134_" gradientUnits="userSpaceOnUse" x1="102.0659" y1="-296.3032" x2="106.3608" y2="-288.8642" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_134_)" d="M163.64,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.14,3.76 - C160.79,47.66,162.22,47.67,163.64,47.67z"/> - - <linearGradient id="SVGID_135_" gradientUnits="userSpaceOnUse" x1="102.0581" y1="-307.3564" x2="106.356" y2="-299.9124" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_135_)" d="M163.65,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C160.8,36.61,162.22,36.61,163.65,36.62z"/> - - <linearGradient id="SVGID_136_" gradientUnits="userSpaceOnUse" x1="102.0498" y1="-318.4067" x2="106.3501" y2="-310.9584" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_136_)" d="M163.66,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.42,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.42,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74 - C160.81,25.56,162.23,25.56,163.66,25.57z"/> - - <linearGradient id="SVGID_137_" gradientUnits="userSpaceOnUse" x1="102.041" y1="-329.4595" x2="106.3452" y2="-322.0044" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_137_)" d="M163.66,14.51c0.71-1.24,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C160.81,14.51,162.24,14.51,163.66,14.51z"/> - - <linearGradient id="SVGID_138_" gradientUnits="userSpaceOnUse" x1="103.1108" y1="-338.6255" x2="106.3306" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_138_)" d="M157.26-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C162.96-0.28,160.11-0.28,157.26-0.28z"/> - - <linearGradient id="SVGID_139_" gradientUnits="userSpaceOnUse" x1="69.4688" y1="-257.9639" x2="72.6816" y2="-252.399" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_139_)" d="M198.39,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C192.68,82.27,195.54,82.28,198.39,82.29z"/> - - <linearGradient id="SVGID_140_" gradientUnits="userSpaceOnUse" x1="69.4604" y1="-269.0225" x2="73.7646" y2="-261.5674" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_140_)" d="M196.25,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C193.39,74.95,194.82,74.96,196.25,74.96z"/> - - <linearGradient id="SVGID_141_" gradientUnits="userSpaceOnUse" x1="69.4565" y1="-280.0859" x2="73.7627" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_141_)" d="M196.25,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C193.4,63.89,194.82,63.89,196.25,63.9z"/> - - <linearGradient id="SVGID_142_" gradientUnits="userSpaceOnUse" x1="69.4551" y1="-291.1479" x2="73.7607" y2="-283.6903" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_142_)" d="M196.25,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C193.4,52.83,194.83,52.83,196.25,52.83 - z"/> - - <linearGradient id="SVGID_143_" gradientUnits="userSpaceOnUse" x1="69.4531" y1="-302.2114" x2="73.7603" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_143_)" d="M196.25,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C193.4,41.77,194.83,41.77,196.25,41.77z" - /> - - <linearGradient id="SVGID_144_" gradientUnits="userSpaceOnUse" x1="69.4507" y1="-313.2739" x2="73.7578" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_144_)" d="M196.26,30.71c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C193.4,30.7,194.83,30.71,196.26,30.71z"/> - - <linearGradient id="SVGID_145_" gradientUnits="userSpaceOnUse" x1="69.4487" y1="-324.3374" x2="73.7573" y2="-316.8747" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_145_)" d="M196.26,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C193.41,19.64,194.83,19.64,196.26,19.64z"/> - - <linearGradient id="SVGID_146_" gradientUnits="userSpaceOnUse" x1="69.4448" y1="-335.4019" x2="73.7539" y2="-327.9383" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_146_)" d="M196.26,8.58c0.71-1.25,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.43,0-2.85,0-4.27,0 - c-0.71,1.25-1.42,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C193.41,8.58,194.83,8.58,196.26,8.58z"/> - - <linearGradient id="SVGID_147_" gradientUnits="userSpaceOnUse" x1="80.647" y1="-263.147" x2="84.9326" y2="-255.724" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_147_)" d="M185.07,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.28-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C182.22,80.8,183.64,80.82,185.07,80.83z"/> - - <linearGradient id="SVGID_148_" gradientUnits="userSpaceOnUse" x1="80.6372" y1="-274.1987" x2="84.9258" y2="-266.7707" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_148_)" d="M185.08,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.5-2.14-3.76 - c-1.43-0.01-2.85-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.43,2.51,2.14,3.76 - C182.22,69.75,183.65,69.77,185.08,69.78z"/> - - <linearGradient id="SVGID_149_" gradientUnits="userSpaceOnUse" x1="80.6304" y1="-285.251" x2="84.9219" y2="-277.8179" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_149_)" d="M185.08,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.51,2.14,3.76 - C182.23,58.7,183.66,58.72,185.08,58.73z"/> - - <linearGradient id="SVGID_150_" gradientUnits="userSpaceOnUse" x1="80.6216" y1="-296.3037" x2="84.917" y2="-288.8638" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_150_)" d="M185.09,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.5,2.14,3.76 - C182.24,47.66,183.67,47.67,185.09,47.67z"/> - - <linearGradient id="SVGID_151_" gradientUnits="userSpaceOnUse" x1="80.6123" y1="-307.356" x2="84.9102" y2="-299.9119" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_151_)" d="M185.1,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C182.24,36.61,183.67,36.61,185.1,36.62z"/> - - <linearGradient id="SVGID_152_" gradientUnits="userSpaceOnUse" x1="80.604" y1="-318.4067" x2="84.9043" y2="-310.9584" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_152_)" d="M185.1,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.42,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74C182.25,25.56,183.68,25.56,185.1,25.57 - z"/> - - <linearGradient id="SVGID_153_" gradientUnits="userSpaceOnUse" x1="80.5957" y1="-329.4595" x2="84.8999" y2="-322.0044" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_153_)" d="M185.11,14.51c0.71-1.24,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C182.26,14.51,183.68,14.51,185.11,14.51z"/> - - <linearGradient id="SVGID_154_" gradientUnits="userSpaceOnUse" x1="81.665" y1="-338.6255" x2="84.8848" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_154_)" d="M178.71-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C184.4-0.28,181.56-0.28,178.71-0.28z"/> - - <linearGradient id="SVGID_155_" gradientUnits="userSpaceOnUse" x1="48.0234" y1="-257.9639" x2="51.2363" y2="-252.399" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_155_)" d="M219.84,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C214.12,82.27,216.98,82.28,219.84,82.29z"/> - - <linearGradient id="SVGID_156_" gradientUnits="userSpaceOnUse" x1="48.0156" y1="-269.0225" x2="52.3203" y2="-261.5665" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_156_)" d="M217.7,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.72-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C214.84,74.95,216.27,74.96,217.7,74.96 - z"/> - - <linearGradient id="SVGID_157_" gradientUnits="userSpaceOnUse" x1="48.0117" y1="-280.0859" x2="52.3179" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_157_)" d="M217.7,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C214.84,63.89,216.27,63.89,217.7,63.9z"/> - - <linearGradient id="SVGID_158_" gradientUnits="userSpaceOnUse" x1="48.0107" y1="-291.1484" x2="52.3169" y2="-283.69" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_158_)" d="M217.7,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.42,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C214.84,52.83,216.27,52.83,217.7,52.83 - z"/> - - <linearGradient id="SVGID_159_" gradientUnits="userSpaceOnUse" x1="48.0078" y1="-302.2109" x2="52.3149" y2="-294.7508" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_159_)" d="M217.7,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C214.85,41.77,216.27,41.77,217.7,41.77z" - /> - - <linearGradient id="SVGID_160_" gradientUnits="userSpaceOnUse" x1="48.0054" y1="-313.2739" x2="52.3125" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_160_)" d="M217.7,30.71c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C214.85,30.7,216.28,30.71,217.7,30.71z"/> - - <linearGradient id="SVGID_161_" gradientUnits="userSpaceOnUse" x1="48.0029" y1="-324.3374" x2="52.3115" y2="-316.8747" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_161_)" d="M217.7,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C214.85,19.64,216.28,19.64,217.7,19.64z"/> - - <linearGradient id="SVGID_162_" gradientUnits="userSpaceOnUse" x1="47.9995" y1="-335.4019" x2="52.3086" y2="-327.9383" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_162_)" d="M217.7,8.58c0.71-1.25,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.43,0-2.85,0-4.27,0 - c-0.71,1.25-1.42,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C214.85,8.58,216.28,8.58,217.7,8.58z"/> - - <linearGradient id="SVGID_163_" gradientUnits="userSpaceOnUse" x1="59.2012" y1="-263.1475" x2="63.4878" y2="-255.7228" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_163_)" d="M206.52,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.29-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C203.66,80.8,205.09,80.82,206.52,80.83z"/> - - <linearGradient id="SVGID_164_" gradientUnits="userSpaceOnUse" x1="59.1914" y1="-274.1997" x2="63.481" y2="-266.77" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_164_)" d="M206.53,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.5-2.14-3.76 - c-1.43-0.01-2.86-0.03-4.29-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.43,2.51,2.14,3.76 - C203.67,69.75,205.1,69.77,206.53,69.78z"/> - - <linearGradient id="SVGID_165_" gradientUnits="userSpaceOnUse" x1="59.1846" y1="-285.251" x2="63.4761" y2="-277.8179" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_165_)" d="M206.53,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.51,2.14,3.76 - C203.68,58.7,205.1,58.72,206.53,58.73z"/> - - <linearGradient id="SVGID_166_" gradientUnits="userSpaceOnUse" x1="59.1753" y1="-296.3032" x2="63.4707" y2="-288.8633" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_166_)" d="M206.54,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.5,2.14,3.76 - C203.68,47.66,205.11,47.67,206.54,47.67z"/> - - <linearGradient id="SVGID_167_" gradientUnits="userSpaceOnUse" x1="59.1665" y1="-307.3555" x2="63.4644" y2="-299.9114" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_167_)" d="M206.54,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C203.69,36.61,205.12,36.61,206.54,36.62z"/> - - <linearGradient id="SVGID_168_" gradientUnits="userSpaceOnUse" x1="59.1582" y1="-318.4077" x2="63.459" y2="-310.9586" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_168_)" d="M206.55,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74C203.7,25.56,205.12,25.56,206.55,25.57 - z"/> - - <linearGradient id="SVGID_169_" gradientUnits="userSpaceOnUse" x1="59.1489" y1="-329.46" x2="63.4536" y2="-322.004" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_169_)" d="M206.55,14.51c0.71-1.24,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C203.7,14.51,205.13,14.51,206.55,14.51z"/> - - <linearGradient id="SVGID_170_" gradientUnits="userSpaceOnUse" x1="60.2197" y1="-338.6255" x2="63.4395" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_170_)" d="M200.15-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C205.85-0.28,203-0.28,200.15-0.28z"/> - - <linearGradient id="SVGID_171_" gradientUnits="userSpaceOnUse" x1="26.5781" y1="-257.9639" x2="29.791" y2="-252.399" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_171_)" d="M241.28,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C235.57,82.27,238.43,82.28,241.28,82.29z"/> - - <linearGradient id="SVGID_172_" gradientUnits="userSpaceOnUse" x1="26.5708" y1="-269.0229" x2="30.8755" y2="-261.567" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_172_)" d="M239.14,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.72-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C236.29,74.95,237.71,74.96,239.14,74.96z"/> - - <linearGradient id="SVGID_173_" gradientUnits="userSpaceOnUse" x1="26.5664" y1="-280.0859" x2="30.8726" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_173_)" d="M239.14,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C236.29,63.89,237.71,63.89,239.14,63.9z" - /> - - <linearGradient id="SVGID_174_" gradientUnits="userSpaceOnUse" x1="26.5654" y1="-291.1484" x2="30.8716" y2="-283.69" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_174_)" d="M239.14,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C236.29,52.83,237.72,52.83,239.14,52.83z"/> - - <linearGradient id="SVGID_175_" gradientUnits="userSpaceOnUse" x1="26.5625" y1="-302.2109" x2="30.8696" y2="-294.7508" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_175_)" d="M239.14,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C236.29,41.77,237.72,41.77,239.14,41.77z" - /> - - <linearGradient id="SVGID_176_" gradientUnits="userSpaceOnUse" x1="26.5601" y1="-313.2739" x2="30.8672" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_176_)" d="M239.15,30.71c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C236.29,30.7,237.72,30.71,239.15,30.71z"/> - - <linearGradient id="SVGID_177_" gradientUnits="userSpaceOnUse" x1="26.5576" y1="-324.3374" x2="30.8662" y2="-316.8747" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_177_)" d="M239.15,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C236.3,19.64,237.72,19.64,239.15,19.64z"/> - - <linearGradient id="SVGID_178_" gradientUnits="userSpaceOnUse" x1="26.5547" y1="-335.4023" x2="30.8638" y2="-327.9388" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_178_)" d="M239.15,8.58c0.71-1.25,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.43,0-2.85,0-4.27,0 - c-0.71,1.25-1.42,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C236.3,8.58,237.72,8.58,239.15,8.58z"/> - - <linearGradient id="SVGID_179_" gradientUnits="userSpaceOnUse" x1="37.7559" y1="-263.1475" x2="42.0425" y2="-255.7228" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_179_)" d="M227.96,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.29-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C225.11,80.8,226.54,80.82,227.96,80.83z"/> - - <linearGradient id="SVGID_180_" gradientUnits="userSpaceOnUse" x1="37.7461" y1="-274.1997" x2="42.0356" y2="-266.77" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_180_)" d="M227.97,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.86-0.03-4.29-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.43,2.51,2.14,3.76 - C225.11,69.75,226.54,69.77,227.97,69.78z"/> - - <linearGradient id="SVGID_181_" gradientUnits="userSpaceOnUse" x1="37.7393" y1="-285.251" x2="42.0308" y2="-277.8179" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_181_)" d="M227.98,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.51,2.14,3.76 - C225.12,58.7,226.55,58.72,227.98,58.73z"/> - - <linearGradient id="SVGID_182_" gradientUnits="userSpaceOnUse" x1="37.73" y1="-296.3032" x2="42.0254" y2="-288.8633" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_182_)" d="M227.98,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.5,2.14,3.76 - C225.13,47.66,226.56,47.67,227.98,47.67z"/> - - <linearGradient id="SVGID_183_" gradientUnits="userSpaceOnUse" x1="37.7207" y1="-307.3555" x2="42.0186" y2="-299.9114" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_183_)" d="M227.99,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C225.13,36.61,226.56,36.61,227.99,36.62z"/> - - <linearGradient id="SVGID_184_" gradientUnits="userSpaceOnUse" x1="37.7129" y1="-318.4077" x2="42.0137" y2="-310.9586" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_184_)" d="M227.99,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.42,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74 - C225.14,25.56,226.57,25.56,227.99,25.57z"/> - - <linearGradient id="SVGID_185_" gradientUnits="userSpaceOnUse" x1="37.7046" y1="-329.459" x2="42.0088" y2="-322.0039" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_185_)" d="M228,14.51c0.71-1.24,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.27,0 - c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C225.15,14.51,226.57,14.51,228,14.51z"/> - - <linearGradient id="SVGID_186_" gradientUnits="userSpaceOnUse" x1="38.7744" y1="-338.6255" x2="41.9941" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_186_)" d="M221.6-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C227.29-0.28,224.45-0.28,221.6-0.28z"/> - - <linearGradient id="SVGID_187_" gradientUnits="userSpaceOnUse" x1="5.1328" y1="-257.9639" x2="8.3452" y2="-252.3998" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_187_)" d="M262.73,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C257.02,82.27,259.87,82.28,262.73,82.29z"/> - - <linearGradient id="SVGID_188_" gradientUnits="userSpaceOnUse" x1="5.1255" y1="-269.0229" x2="9.4302" y2="-261.567" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_188_)" d="M260.59,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.72-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.75 - C257.73,74.95,259.16,74.96,260.59,74.96z"/> - - <linearGradient id="SVGID_189_" gradientUnits="userSpaceOnUse" x1="5.1216" y1="-280.0859" x2="9.4277" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_189_)" d="M260.59,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C257.73,63.89,259.16,63.89,260.59,63.9z" - /> - - <linearGradient id="SVGID_190_" gradientUnits="userSpaceOnUse" x1="5.1201" y1="-291.1484" x2="9.4263" y2="-283.69" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_190_)" d="M260.59,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C257.73,52.83,259.16,52.83,260.59,52.83z"/> - - <linearGradient id="SVGID_191_" gradientUnits="userSpaceOnUse" x1="5.1172" y1="-302.2114" x2="9.4243" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_191_)" d="M260.59,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C257.74,41.77,259.16,41.77,260.59,41.77z" - /> - - <linearGradient id="SVGID_192_" gradientUnits="userSpaceOnUse" x1="5.1143" y1="-313.2739" x2="9.4214" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_192_)" d="M260.59,30.71c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C257.74,30.7,259.17,30.71,260.59,30.71z"/> - - <linearGradient id="SVGID_193_" gradientUnits="userSpaceOnUse" x1="5.1123" y1="-324.3374" x2="9.4209" y2="-316.8747" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_193_)" d="M260.59,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C257.74,19.64,259.17,19.64,260.59,19.64z"/> - - <linearGradient id="SVGID_194_" gradientUnits="userSpaceOnUse" x1="5.1094" y1="-335.4019" x2="9.4185" y2="-327.9383" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_194_)" d="M260.59,8.58c0.71-1.25,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.42,2.5-2.13,3.74c0.71,1.25,1.42,2.49,2.13,3.74C257.74,8.58,259.17,8.58,260.59,8.58z"/> - - <linearGradient id="SVGID_195_" gradientUnits="userSpaceOnUse" x1="16.311" y1="-263.1479" x2="20.5977" y2="-255.7233" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_195_)" d="M249.41,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.29-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C246.55,80.8,247.98,80.82,249.41,80.83z"/> - - <linearGradient id="SVGID_196_" gradientUnits="userSpaceOnUse" x1="16.3008" y1="-274.1997" x2="20.5903" y2="-266.77" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_196_)" d="M249.42,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.86-0.03-4.29-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.43,2.51,2.14,3.76 - C246.56,69.75,247.99,69.77,249.42,69.78z"/> - - <linearGradient id="SVGID_197_" gradientUnits="userSpaceOnUse" x1="16.2935" y1="-285.251" x2="20.585" y2="-277.8179" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_197_)" d="M249.42,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.51,2.14,3.76 - C246.57,58.7,247.99,58.72,249.42,58.73z"/> - - <linearGradient id="SVGID_198_" gradientUnits="userSpaceOnUse" x1="16.2842" y1="-296.3032" x2="20.5796" y2="-288.8633" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_198_)" d="M249.43,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.5,2.14,3.76 - C246.57,47.66,248,47.67,249.43,47.67z"/> - - <linearGradient id="SVGID_199_" gradientUnits="userSpaceOnUse" x1="16.2764" y1="-307.356" x2="20.5742" y2="-299.9119" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_199_)" d="M249.43,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C246.58,36.61,248.01,36.61,249.43,36.62z"/> - - <linearGradient id="SVGID_200_" gradientUnits="userSpaceOnUse" x1="16.2686" y1="-318.4067" x2="20.5688" y2="-310.9584" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_200_)" d="M249.44,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.42,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.42,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74 - C246.59,25.56,248.01,25.56,249.44,25.57z"/> - - <linearGradient id="SVGID_201_" gradientUnits="userSpaceOnUse" x1="16.2598" y1="-329.4595" x2="20.564" y2="-322.0044" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_201_)" d="M249.44,14.51c0.71-1.24,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C246.6,14.51,248.02,14.51,249.44,14.51z"/> - - <linearGradient id="SVGID_202_" gradientUnits="userSpaceOnUse" x1="17.3291" y1="-338.6255" x2="20.5488" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_202_)" d="M243.04-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C248.74-0.28,245.89-0.28,243.04-0.28z"/> - - <linearGradient id="SVGID_203_" gradientUnits="userSpaceOnUse" x1="-16.3125" y1="-257.9639" x2="-13.1001" y2="-252.3998" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_203_)" d="M284.17,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C278.46,82.27,281.32,82.28,284.17,82.29z"/> - - <linearGradient id="SVGID_204_" gradientUnits="userSpaceOnUse" x1="-16.3208" y1="-269.0225" x2="-12.0166" y2="-261.5674" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_204_)" d="M282.03,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.72-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.75 - C279.18,74.95,280.61,74.96,282.03,74.96z"/> - - <linearGradient id="SVGID_205_" gradientUnits="userSpaceOnUse" x1="-16.3237" y1="-280.0859" x2="-12.0176" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_205_)" d="M282.03,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C279.18,63.89,280.61,63.89,282.03,63.9z" - /> - - <linearGradient id="SVGID_206_" gradientUnits="userSpaceOnUse" x1="-16.3257" y1="-291.1484" x2="-12.02" y2="-283.6908" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_206_)" d="M282.03,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C279.18,52.83,280.61,52.83,282.03,52.83z"/> - - <linearGradient id="SVGID_207_" gradientUnits="userSpaceOnUse" x1="-16.3281" y1="-302.2114" x2="-12.021" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_207_)" d="M282.04,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C279.18,41.77,280.61,41.77,282.04,41.77z" - /> - - <linearGradient id="SVGID_208_" gradientUnits="userSpaceOnUse" x1="-16.3296" y1="-313.2734" x2="-12.0229" y2="-305.8141" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_208_)" d="M282.04,30.71c0.71-1.25,1.43-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C279.19,30.7,280.61,30.71,282.04,30.71z"/> - - <linearGradient id="SVGID_209_" gradientUnits="userSpaceOnUse" x1="-16.3325" y1="-324.3364" x2="-12.0244" y2="-316.8746" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_209_)" d="M282.04,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C279.19,19.64,280.61,19.64,282.04,19.64z"/> - - <linearGradient id="SVGID_210_" gradientUnits="userSpaceOnUse" x1="-16.3354" y1="-335.4014" x2="-12.0269" y2="-327.9387" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_210_)" d="M282.04,8.58c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.75c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.43,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C279.19,8.58,280.62,8.58,282.04,8.58z"/> - - <linearGradient id="SVGID_211_" gradientUnits="userSpaceOnUse" x1="-5.1348" y1="-263.1465" x2="-0.8486" y2="-255.7227" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_211_)" d="M270.86,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.28-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C268,80.8,269.43,80.82,270.86,80.83z"/> - - <linearGradient id="SVGID_212_" gradientUnits="userSpaceOnUse" x1="-5.144" y1="-274.1987" x2="-0.855" y2="-266.7699" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_212_)" d="M270.86,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.85-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.42,2.51,2.13,3.76 - C268,69.75,269.43,69.77,270.86,69.78z"/> - - <linearGradient id="SVGID_213_" gradientUnits="userSpaceOnUse" x1="-5.1514" y1="-285.251" x2="-0.8599" y2="-277.8179" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_213_)" d="M270.87,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.51,2.13,3.76 - C268.01,58.7,269.44,58.72,270.87,58.73z"/> - - <linearGradient id="SVGID_214_" gradientUnits="userSpaceOnUse" x1="-5.1597" y1="-296.3037" x2="-0.8643" y2="-288.8638" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_214_)" d="M270.87,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.76 - C268.02,47.66,269.45,47.67,270.87,47.67z"/> - - <linearGradient id="SVGID_215_" gradientUnits="userSpaceOnUse" x1="-5.1685" y1="-307.3564" x2="-0.8706" y2="-299.9124" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_215_)" d="M270.88,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C268.03,36.61,269.45,36.61,270.88,36.62z"/> - - <linearGradient id="SVGID_216_" gradientUnits="userSpaceOnUse" x1="-5.1768" y1="-318.4067" x2="-0.8765" y2="-310.9584" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_216_)" d="M270.88,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.42,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.42,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74 - C268.03,25.56,269.46,25.56,270.88,25.57z"/> - - <linearGradient id="SVGID_217_" gradientUnits="userSpaceOnUse" x1="-5.186" y1="-329.4595" x2="-0.8818" y2="-322.0044" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_217_)" d="M270.89,14.51c0.71-1.24,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C268.04,14.51,269.46,14.51,270.89,14.51z"/> - - <linearGradient id="SVGID_218_" gradientUnits="userSpaceOnUse" x1="-4.1157" y1="-338.6255" x2="-0.896" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_218_)" d="M264.49-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C270.19-0.28,267.34-0.28,264.49-0.28z"/> - - <linearGradient id="SVGID_219_" gradientUnits="userSpaceOnUse" x1="-37.7573" y1="-257.9629" x2="-34.5454" y2="-252.3997" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_219_)" d="M305.62,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.28-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C299.9,82.27,302.76,82.28,305.62,82.29z"/> - - <linearGradient id="SVGID_220_" gradientUnits="userSpaceOnUse" x1="-37.7656" y1="-269.0225" x2="-33.4614" y2="-261.5674" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_220_)" d="M303.47,74.96c0.72-1.25,1.43-2.49,2.14-3.74c-0.72-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.75 - C300.62,74.95,302.05,74.96,303.47,74.96z"/> - - <linearGradient id="SVGID_221_" gradientUnits="userSpaceOnUse" x1="-37.7686" y1="-280.0854" x2="-33.4629" y2="-272.6278" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_221_)" d="M303.48,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C300.62,63.89,302.05,63.89,303.48,63.9z" - /> - - <linearGradient id="SVGID_222_" gradientUnits="userSpaceOnUse" x1="-37.7705" y1="-291.1475" x2="-33.4653" y2="-283.6907" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_222_)" d="M303.48,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.42,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C300.62,52.83,302.05,52.83,303.48,52.83z"/> - - <linearGradient id="SVGID_223_" gradientUnits="userSpaceOnUse" x1="-37.7734" y1="-302.2114" x2="-33.4663" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_223_)" d="M303.48,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C300.63,41.77,302.05,41.77,303.48,41.77z" - /> - - <linearGradient id="SVGID_224_" gradientUnits="userSpaceOnUse" x1="-37.7749" y1="-313.2734" x2="-33.4683" y2="-305.8141" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_224_)" d="M303.48,30.71c0.71-1.25,1.43-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C300.63,30.7,302.06,30.71,303.48,30.71z"/> - - <linearGradient id="SVGID_225_" gradientUnits="userSpaceOnUse" x1="-37.7778" y1="-324.3364" x2="-33.4697" y2="-316.8746" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_225_)" d="M303.48,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C300.63,19.64,302.06,19.64,303.48,19.64z"/> - - <linearGradient id="SVGID_226_" gradientUnits="userSpaceOnUse" x1="-37.7808" y1="-335.4014" x2="-33.4722" y2="-327.9387" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_226_)" d="M303.48,8.58c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.75c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.43,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C300.63,8.58,302.06,8.58,303.48,8.58z"/> - - <linearGradient id="SVGID_227_" gradientUnits="userSpaceOnUse" x1="-26.5801" y1="-263.1465" x2="-22.2944" y2="-255.7235" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_227_)" d="M292.3,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.28-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C289.44,80.8,290.87,80.82,292.3,80.83z"/> - - <linearGradient id="SVGID_228_" gradientUnits="userSpaceOnUse" x1="-26.5898" y1="-274.1987" x2="-22.3013" y2="-266.7707" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_228_)" d="M292.31,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.85-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.42,2.51,2.14,3.76 - C289.45,69.75,290.88,69.77,292.31,69.78z"/> - - <linearGradient id="SVGID_229_" gradientUnits="userSpaceOnUse" x1="-26.5967" y1="-285.251" x2="-22.3057" y2="-277.8187" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_229_)" d="M292.31,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.51,2.14,3.76 - C289.46,58.7,290.88,58.72,292.31,58.73z"/> - - <linearGradient id="SVGID_230_" gradientUnits="userSpaceOnUse" x1="-26.606" y1="-296.3032" x2="-22.311" y2="-288.8642" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_230_)" d="M292.32,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.14,3.76 - C289.46,47.66,290.89,47.67,292.32,47.67z"/> - - <linearGradient id="SVGID_231_" gradientUnits="userSpaceOnUse" x1="-26.6147" y1="-307.356" x2="-22.3169" y2="-299.9119" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_231_)" d="M292.32,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C289.47,36.61,290.9,36.61,292.32,36.62z"/> - - <linearGradient id="SVGID_232_" gradientUnits="userSpaceOnUse" x1="-26.623" y1="-318.4062" x2="-22.3232" y2="-310.9588" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_232_)" d="M292.33,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.42,0-2.85-0.01-4.27-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.74C289.48,25.56,290.9,25.56,292.33,25.57 - z"/> - - <linearGradient id="SVGID_233_" gradientUnits="userSpaceOnUse" x1="-26.6309" y1="-329.4595" x2="-22.3271" y2="-322.0052" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_233_)" d="M292.33,14.51c0.71-1.24,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C289.49,14.51,290.91,14.51,292.33,14.51z"/> - - <linearGradient id="SVGID_234_" gradientUnits="userSpaceOnUse" x1="-25.561" y1="-338.6255" x2="-22.3413" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_234_)" d="M285.94-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C291.63-0.28,288.78-0.28,285.94-0.28z"/> - - <linearGradient id="SVGID_235_" gradientUnits="userSpaceOnUse" x1="-59.2031" y1="-257.9639" x2="-55.9907" y2="-252.3998" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_235_)" d="M327.06,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C321.35,82.27,324.21,82.28,327.06,82.29z"/> - - <linearGradient id="SVGID_236_" gradientUnits="userSpaceOnUse" x1="-59.2119" y1="-269.022" x2="-54.9077" y2="-261.5669" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_236_)" d="M324.92,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.72-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.75 - C322.07,74.95,323.49,74.96,324.92,74.96z"/> - - <linearGradient id="SVGID_237_" gradientUnits="userSpaceOnUse" x1="-59.2148" y1="-280.0859" x2="-54.9087" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_237_)" d="M324.92,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C322.07,63.89,323.5,63.89,324.92,63.9z"/> - - <linearGradient id="SVGID_238_" gradientUnits="userSpaceOnUse" x1="-59.2163" y1="-291.1484" x2="-54.9106" y2="-283.6908" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_238_)" d="M324.92,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C322.07,52.83,323.5,52.83,324.92,52.83 - z"/> - - <linearGradient id="SVGID_239_" gradientUnits="userSpaceOnUse" x1="-59.2188" y1="-302.2114" x2="-54.9116" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_239_)" d="M324.93,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C322.07,41.77,323.5,41.77,324.93,41.77z" - /> - - <linearGradient id="SVGID_240_" gradientUnits="userSpaceOnUse" x1="-59.2217" y1="-313.2739" x2="-54.9146" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_240_)" d="M324.93,30.71c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C322.08,30.7,323.5,30.71,324.93,30.71z"/> - - <linearGradient id="SVGID_241_" gradientUnits="userSpaceOnUse" x1="-59.2236" y1="-324.3369" x2="-54.915" y2="-316.8742" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_241_)" d="M324.93,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C322.08,19.64,323.5,19.64,324.93,19.64z"/> - - <linearGradient id="SVGID_242_" gradientUnits="userSpaceOnUse" x1="-59.2275" y1="-335.4014" x2="-54.9185" y2="-327.9378" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_242_)" d="M324.93,8.58c0.71-1.25,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.43,0-2.85,0-4.27,0 - c-0.71,1.25-1.43,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C322.08,8.58,323.5,8.58,324.93,8.58z"/> - - <linearGradient id="SVGID_243_" gradientUnits="userSpaceOnUse" x1="-48.0254" y1="-263.1465" x2="-43.7397" y2="-255.7235" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_243_)" d="M313.75,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.28-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C310.89,80.8,312.32,80.82,313.75,80.83z"/> - - <linearGradient id="SVGID_244_" gradientUnits="userSpaceOnUse" x1="-48.0352" y1="-274.1987" x2="-43.7466" y2="-266.7707" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_244_)" d="M313.75,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.5-2.14-3.76 - c-1.43-0.01-2.85-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.42,2.51,2.14,3.76 - C310.89,69.75,312.32,69.77,313.75,69.78z"/> - - <linearGradient id="SVGID_245_" gradientUnits="userSpaceOnUse" x1="-48.042" y1="-285.251" x2="-43.751" y2="-277.8187" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_245_)" d="M313.76,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.51,2.14,3.76 - C310.9,58.7,312.33,58.72,313.76,58.73z"/> - - <linearGradient id="SVGID_246_" gradientUnits="userSpaceOnUse" x1="-48.0513" y1="-296.3032" x2="-43.7563" y2="-288.8642" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_246_)" d="M313.76,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.14,3.76 - C310.91,47.66,312.34,47.67,313.76,47.67z"/> - - <linearGradient id="SVGID_247_" gradientUnits="userSpaceOnUse" x1="-48.0596" y1="-307.356" x2="-43.7617" y2="-299.9119" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_247_)" d="M313.77,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C310.92,36.61,312.34,36.61,313.77,36.62z"/> - - <linearGradient id="SVGID_248_" gradientUnits="userSpaceOnUse" x1="-48.0684" y1="-318.4062" x2="-43.7686" y2="-310.9588" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_248_)" d="M313.78,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.42,0-2.85-0.01-4.27-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.74 - C310.92,25.56,312.35,25.56,313.78,25.57z"/> - - <linearGradient id="SVGID_249_" gradientUnits="userSpaceOnUse" x1="-48.0762" y1="-329.4595" x2="-43.7725" y2="-322.0052" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_249_)" d="M313.78,14.51c0.71-1.24,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C310.93,14.51,312.36,14.51,313.78,14.51z"/> - - <linearGradient id="SVGID_250_" gradientUnits="userSpaceOnUse" x1="-47.0068" y1="-338.6255" x2="-43.7871" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_250_)" d="M307.38-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C313.08-0.28,310.23-0.28,307.38-0.28z"/> - - <linearGradient id="SVGID_251_" gradientUnits="userSpaceOnUse" x1="-80.6489" y1="-257.9639" x2="-77.4365" y2="-252.3998" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_251_)" d="M348.51,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C342.79,82.27,345.65,82.28,348.51,82.29z"/> - - <linearGradient id="SVGID_252_" gradientUnits="userSpaceOnUse" x1="-80.6572" y1="-269.022" x2="-76.353" y2="-261.5669" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_252_)" d="M346.37,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.72-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.75 - C343.51,74.95,344.94,74.96,346.37,74.96z"/> - - <linearGradient id="SVGID_253_" gradientUnits="userSpaceOnUse" x1="-80.6602" y1="-280.0859" x2="-76.354" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_253_)" d="M346.37,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C343.51,63.89,344.94,63.89,346.37,63.9z" - /> - - <linearGradient id="SVGID_254_" gradientUnits="userSpaceOnUse" x1="-80.6616" y1="-291.1484" x2="-76.356" y2="-283.6908" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_254_)" d="M346.37,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C343.52,52.83,344.94,52.83,346.37,52.83z"/> - - <linearGradient id="SVGID_255_" gradientUnits="userSpaceOnUse" x1="-80.6636" y1="-302.2114" x2="-76.3564" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_255_)" d="M346.37,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C343.52,41.77,344.94,41.77,346.37,41.77z" - /> - - <linearGradient id="SVGID_256_" gradientUnits="userSpaceOnUse" x1="-80.667" y1="-313.2739" x2="-76.3599" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_256_)" d="M346.37,30.71c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C343.52,30.7,344.95,30.71,346.37,30.71z"/> - - <linearGradient id="SVGID_257_" gradientUnits="userSpaceOnUse" x1="-80.6689" y1="-324.3369" x2="-76.3604" y2="-316.8742" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_257_)" d="M346.37,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C343.52,19.64,344.95,19.64,346.37,19.64z"/> - - <linearGradient id="SVGID_258_" gradientUnits="userSpaceOnUse" x1="-80.6729" y1="-335.4014" x2="-76.3638" y2="-327.9378" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_258_)" d="M346.38,8.58c0.71-1.25,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.43,0-2.85,0-4.27,0 - c-0.71,1.25-1.43,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C343.53,8.58,344.95,8.58,346.38,8.58z"/> - - <linearGradient id="SVGID_259_" gradientUnits="userSpaceOnUse" x1="-69.4707" y1="-263.1465" x2="-65.1851" y2="-255.7235" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_259_)" d="M335.19,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.28-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C332.33,80.8,333.76,80.82,335.19,80.83z"/> - - <linearGradient id="SVGID_260_" gradientUnits="userSpaceOnUse" x1="-69.48" y1="-274.1987" x2="-65.1914" y2="-266.7707" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_260_)" d="M335.2,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.5-2.14-3.76 - c-1.43-0.01-2.85-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.43,2.51,2.14,3.76 - C332.34,69.75,333.77,69.77,335.2,69.78z"/> - - <linearGradient id="SVGID_261_" gradientUnits="userSpaceOnUse" x1="-69.4873" y1="-285.251" x2="-65.1963" y2="-277.8187" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_261_)" d="M335.2,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.51,2.14,3.76 - C332.35,58.7,333.77,58.72,335.2,58.73z"/> - - <linearGradient id="SVGID_262_" gradientUnits="userSpaceOnUse" x1="-69.4966" y1="-296.3032" x2="-65.2017" y2="-288.8642" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_262_)" d="M335.21,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.5,2.14,3.76 - C332.35,47.66,333.78,47.67,335.21,47.67z"/> - - <linearGradient id="SVGID_263_" gradientUnits="userSpaceOnUse" x1="-69.5054" y1="-307.356" x2="-65.2075" y2="-299.9119" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_263_)" d="M335.21,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C332.36,36.61,333.79,36.61,335.21,36.62z"/> - - <linearGradient id="SVGID_264_" gradientUnits="userSpaceOnUse" x1="-69.5132" y1="-318.4067" x2="-65.2134" y2="-310.9593" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_264_)" d="M335.22,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.42,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.42,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.74 - C332.37,25.56,333.79,25.56,335.22,25.57z"/> - - <linearGradient id="SVGID_265_" gradientUnits="userSpaceOnUse" x1="-69.5215" y1="-329.4595" x2="-65.2173" y2="-322.0044" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_265_)" d="M335.22,14.51c0.71-1.24,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C332.38,14.51,333.8,14.51,335.22,14.51z"/> - - <linearGradient id="SVGID_266_" gradientUnits="userSpaceOnUse" x1="-68.4521" y1="-338.6255" x2="-65.2324" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_266_)" d="M328.83-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C334.52-0.28,331.67-0.28,328.83-0.28z"/> - - <linearGradient id="SVGID_267_" gradientUnits="userSpaceOnUse" x1="-102.0942" y1="-257.9639" x2="-98.8813" y2="-252.399" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_267_)" d="M369.95,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C364.24,82.27,367.1,82.28,369.95,82.29z"/> - - <linearGradient id="SVGID_268_" gradientUnits="userSpaceOnUse" x1="-102.1025" y1="-269.022" x2="-97.7983" y2="-261.5669" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_268_)" d="M367.81,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.72-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C364.96,74.95,366.38,74.96,367.81,74.96z"/> - - <linearGradient id="SVGID_269_" gradientUnits="userSpaceOnUse" x1="-102.1055" y1="-280.0859" x2="-97.7993" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_269_)" d="M367.81,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C364.96,63.89,366.39,63.89,367.81,63.9z" - /> - - <linearGradient id="SVGID_270_" gradientUnits="userSpaceOnUse" x1="-102.1069" y1="-291.1484" x2="-97.8013" y2="-283.6908" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_270_)" d="M367.81,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C364.96,52.83,366.39,52.83,367.81,52.83z"/> - - <linearGradient id="SVGID_271_" gradientUnits="userSpaceOnUse" x1="-102.1089" y1="-302.2114" x2="-97.8018" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_271_)" d="M367.82,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C364.96,41.77,366.39,41.77,367.82,41.77z" - /> - - <linearGradient id="SVGID_272_" gradientUnits="userSpaceOnUse" x1="-102.1123" y1="-313.2739" x2="-97.8052" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_272_)" d="M367.82,30.71c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.14,3.75C364.97,30.7,366.39,30.71,367.82,30.71z"/> - - <linearGradient id="SVGID_273_" gradientUnits="userSpaceOnUse" x1="-102.1147" y1="-324.3369" x2="-97.8062" y2="-316.8742" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_273_)" d="M367.82,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.43,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C364.97,19.64,366.39,19.64,367.82,19.64z"/> - - <linearGradient id="SVGID_274_" gradientUnits="userSpaceOnUse" x1="-102.1182" y1="-335.4019" x2="-97.8091" y2="-327.9383" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_274_)" d="M367.82,8.58c0.71-1.25,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.43,0-2.85,0-4.27,0 - c-0.71,1.25-1.43,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C364.97,8.58,366.39,8.58,367.82,8.58z"/> - - <linearGradient id="SVGID_275_" gradientUnits="userSpaceOnUse" x1="-90.916" y1="-263.1475" x2="-86.6299" y2="-255.7237" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_275_)" d="M356.64,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.29-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C353.78,80.8,355.21,80.82,356.64,80.83z"/> - - <linearGradient id="SVGID_276_" gradientUnits="userSpaceOnUse" x1="-90.9258" y1="-274.1997" x2="-86.6367" y2="-266.7708" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_276_)" d="M356.64,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.5-2.14-3.76 - c-1.43-0.01-2.86-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.43,2.51,2.14,3.76 - C353.79,69.75,355.21,69.77,356.64,69.78z"/> - - <linearGradient id="SVGID_277_" gradientUnits="userSpaceOnUse" x1="-90.9336" y1="-285.2505" x2="-86.6426" y2="-277.8182" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_277_)" d="M356.65,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.43,2.51,2.14,3.76 - C353.79,58.7,355.22,58.72,356.65,58.73z"/> - - <linearGradient id="SVGID_278_" gradientUnits="userSpaceOnUse" x1="-90.9419" y1="-296.3032" x2="-86.647" y2="-288.8642" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_278_)" d="M356.65,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.42,2.48-2.14,3.72c0.71,1.25,1.43,2.5,2.14,3.76 - C353.8,47.66,355.23,47.67,356.65,47.67z"/> - - <linearGradient id="SVGID_279_" gradientUnits="userSpaceOnUse" x1="-90.9507" y1="-307.356" x2="-86.6528" y2="-299.9119" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_279_)" d="M356.66,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.42,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C353.81,36.61,355.23,36.61,356.66,36.62z"/> - - <linearGradient id="SVGID_280_" gradientUnits="userSpaceOnUse" x1="-90.959" y1="-318.4077" x2="-86.6582" y2="-310.9586" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_280_)" d="M356.67,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.42,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74 - C353.81,25.56,355.24,25.56,356.67,25.57z"/> - - <linearGradient id="SVGID_281_" gradientUnits="userSpaceOnUse" x1="-90.9683" y1="-329.46" x2="-86.6636" y2="-322.004" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_281_)" d="M356.67,14.51c0.71-1.24,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C353.82,14.51,355.25,14.51,356.67,14.51z"/> - - <linearGradient id="SVGID_282_" gradientUnits="userSpaceOnUse" x1="-89.8975" y1="-338.6255" x2="-86.6777" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_282_)" d="M350.27-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C355.97-0.28,353.12-0.28,350.27-0.28z"/> - - <linearGradient id="SVGID_283_" gradientUnits="userSpaceOnUse" x1="-123.5396" y1="-257.9639" x2="-120.3271" y2="-252.3998" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_283_)" d="M391.4,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C385.69,82.27,388.54,82.28,391.4,82.29z"/> - - <linearGradient id="SVGID_284_" gradientUnits="userSpaceOnUse" x1="-123.5479" y1="-269.022" x2="-119.2437" y2="-261.5669" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_284_)" d="M389.26,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.75C386.4,74.95,387.83,74.96,389.26,74.96 - z"/> - - <linearGradient id="SVGID_285_" gradientUnits="userSpaceOnUse" x1="-123.5508" y1="-280.0859" x2="-119.2446" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_285_)" d="M389.26,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C386.4,63.89,387.83,63.89,389.26,63.9z"/> - - <linearGradient id="SVGID_286_" gradientUnits="userSpaceOnUse" x1="-123.5522" y1="-291.1479" x2="-119.2466" y2="-283.6903" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_286_)" d="M389.26,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C386.41,52.83,387.83,52.83,389.26,52.83z"/> - - <linearGradient id="SVGID_287_" gradientUnits="userSpaceOnUse" x1="-123.5547" y1="-302.2114" x2="-119.2476" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_287_)" d="M389.26,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C386.41,41.77,387.84,41.77,389.26,41.77z" - /> - - <linearGradient id="SVGID_288_" gradientUnits="userSpaceOnUse" x1="-123.5576" y1="-313.2739" x2="-119.2505" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_288_)" d="M389.26,30.71c0.71-1.25,1.43-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C386.41,30.7,387.84,30.71,389.26,30.71z"/> - - <linearGradient id="SVGID_289_" gradientUnits="userSpaceOnUse" x1="-123.5596" y1="-324.3374" x2="-119.251" y2="-316.8747" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_289_)" d="M389.26,19.64c0.71-1.25,1.43-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C386.41,19.64,387.84,19.64,389.26,19.64z"/> - - <linearGradient id="SVGID_290_" gradientUnits="userSpaceOnUse" x1="-123.5625" y1="-335.4019" x2="-119.2534" y2="-327.9383" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_290_)" d="M389.27,8.58c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.42,2.5-2.13,3.74c0.71,1.25,1.42,2.49,2.13,3.74C386.42,8.58,387.84,8.58,389.27,8.58z"/> - - <linearGradient id="SVGID_291_" gradientUnits="userSpaceOnUse" x1="-112.3608" y1="-263.1479" x2="-108.0747" y2="-255.7242" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_291_)" d="M378.08,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.29-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C375.22,80.8,376.65,80.82,378.08,80.83z"/> - - <linearGradient id="SVGID_292_" gradientUnits="userSpaceOnUse" x1="-112.3706" y1="-274.1997" x2="-108.0811" y2="-266.77" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_292_)" d="M378.09,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.86-0.03-4.29-0.04c-0.71,1.24-1.42,2.47-2.14,3.71c0.71,1.25,1.43,2.51,2.14,3.76 - C375.23,69.75,376.66,69.77,378.09,69.78z"/> - - <linearGradient id="SVGID_293_" gradientUnits="userSpaceOnUse" x1="-112.3784" y1="-285.251" x2="-108.0869" y2="-277.8179" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_293_)" d="M378.09,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.42,2.48-2.14,3.72c0.71,1.25,1.43,2.51,2.14,3.76 - C375.24,58.7,376.66,58.72,378.09,58.73z"/> - - <linearGradient id="SVGID_294_" gradientUnits="userSpaceOnUse" x1="-112.3872" y1="-296.3032" x2="-108.0918" y2="-288.8633" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_294_)" d="M378.1,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.42,2.48-2.14,3.72c0.71,1.25,1.43,2.5,2.14,3.76 - C375.24,47.66,376.67,47.67,378.1,47.67z"/> - - <linearGradient id="SVGID_295_" gradientUnits="userSpaceOnUse" x1="-112.396" y1="-307.356" x2="-108.0981" y2="-299.9119" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_295_)" d="M378.11,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C375.25,36.61,376.68,36.61,378.11,36.62z"/> - - <linearGradient id="SVGID_296_" gradientUnits="userSpaceOnUse" x1="-112.4043" y1="-318.4072" x2="-108.1035" y2="-310.9581" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_296_)" d="M378.11,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.42,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74 - C375.26,25.56,376.68,25.56,378.11,25.57z"/> - - <linearGradient id="SVGID_297_" gradientUnits="userSpaceOnUse" x1="-112.4136" y1="-329.4595" x2="-108.1089" y2="-322.0035" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_297_)" d="M378.12,14.51c0.71-1.24,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C375.27,14.51,376.69,14.51,378.12,14.51z"/> - - <linearGradient id="SVGID_298_" gradientUnits="userSpaceOnUse" x1="-111.3423" y1="-338.6255" x2="-108.1226" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_298_)" d="M371.72-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C377.41-0.28,374.57-0.28,371.72-0.28z"/> - - <linearGradient id="SVGID_299_" gradientUnits="userSpaceOnUse" x1="-144.9844" y1="-257.9639" x2="-141.772" y2="-252.3998" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_299_)" d="M412.84,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C407.13,82.27,409.99,82.28,412.84,82.29z"/> - - <linearGradient id="SVGID_300_" gradientUnits="userSpaceOnUse" x1="-144.9932" y1="-269.022" x2="-140.689" y2="-261.5669" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_300_)" d="M410.7,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.75C407.85,74.95,409.28,74.96,410.7,74.96 - z"/> - - <linearGradient id="SVGID_301_" gradientUnits="userSpaceOnUse" x1="-144.9961" y1="-280.0859" x2="-140.6899" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_301_)" d="M410.71,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C407.85,63.89,409.28,63.89,410.71,63.9z" - /> - - <linearGradient id="SVGID_302_" gradientUnits="userSpaceOnUse" x1="-144.9976" y1="-291.1479" x2="-140.6919" y2="-283.6903" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_302_)" d="M410.71,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75 - C407.85,52.83,409.28,52.83,410.71,52.83z"/> - - <linearGradient id="SVGID_303_" gradientUnits="userSpaceOnUse" x1="-145" y1="-302.2114" x2="-140.6929" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_303_)" d="M410.71,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C407.86,41.77,409.28,41.77,410.71,41.77z" - /> - - <linearGradient id="SVGID_304_" gradientUnits="userSpaceOnUse" x1="-145.0029" y1="-313.2739" x2="-140.6958" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_304_)" d="M410.71,30.71c0.71-1.25,1.43-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C407.86,30.7,409.28,30.71,410.71,30.71z"/> - - <linearGradient id="SVGID_305_" gradientUnits="userSpaceOnUse" x1="-145.0049" y1="-324.3374" x2="-140.6963" y2="-316.8747" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_305_)" d="M410.71,19.64c0.71-1.25,1.43-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C407.86,19.64,409.29,19.64,410.71,19.64z"/> - - <linearGradient id="SVGID_306_" gradientUnits="userSpaceOnUse" x1="-145.0088" y1="-335.4014" x2="-140.6997" y2="-327.9378" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_306_)" d="M410.71,8.58c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.43,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C407.86,8.58,409.29,8.58,410.71,8.58z"/> - - <linearGradient id="SVGID_307_" gradientUnits="userSpaceOnUse" x1="-133.8071" y1="-263.1475" x2="-129.5205" y2="-255.7228" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_307_)" d="M399.53,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.29-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C396.67,80.8,398.1,80.82,399.53,80.83z"/> - - <linearGradient id="SVGID_308_" gradientUnits="userSpaceOnUse" x1="-133.8159" y1="-274.1997" x2="-129.5264" y2="-266.77" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_308_)" d="M399.53,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.86-0.03-4.29-0.04c-0.71,1.24-1.42,2.47-2.14,3.71c0.71,1.25,1.42,2.51,2.13,3.76 - C396.68,69.75,398.1,69.77,399.53,69.78z"/> - - <linearGradient id="SVGID_309_" gradientUnits="userSpaceOnUse" x1="-133.8237" y1="-285.251" x2="-129.5322" y2="-277.8179" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_309_)" d="M399.54,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.51,2.13,3.76 - C396.68,58.7,398.11,58.72,399.54,58.73z"/> - - <linearGradient id="SVGID_310_" gradientUnits="userSpaceOnUse" x1="-133.8325" y1="-296.3032" x2="-129.5371" y2="-288.8633" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_310_)" d="M399.54,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.76 - C396.69,47.66,398.12,47.67,399.54,47.67z"/> - - <linearGradient id="SVGID_311_" gradientUnits="userSpaceOnUse" x1="-133.8413" y1="-307.356" x2="-129.5435" y2="-299.9119" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_311_)" d="M399.55,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C396.7,36.61,398.12,36.61,399.55,36.62z"/> - - <linearGradient id="SVGID_312_" gradientUnits="userSpaceOnUse" x1="-133.8496" y1="-318.4072" x2="-129.5488" y2="-310.9581" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_312_)" d="M399.56,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.42,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74 - C396.71,25.56,398.13,25.56,399.56,25.57z"/> - - <linearGradient id="SVGID_313_" gradientUnits="userSpaceOnUse" x1="-133.8589" y1="-329.4595" x2="-129.5542" y2="-322.0035" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_313_)" d="M399.56,14.51c0.71-1.24,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C396.71,14.51,398.14,14.51,399.56,14.51z"/> - - <linearGradient id="SVGID_314_" gradientUnits="userSpaceOnUse" x1="-132.7886" y1="-338.625" x2="-129.5688" y2="-333.0483" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_314_)" d="M393.16-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C398.86-0.28,396.01-0.28,393.16-0.28z"/> - - <linearGradient id="SVGID_315_" gradientUnits="userSpaceOnUse" x1="-166.4292" y1="-257.9639" x2="-163.2168" y2="-252.3998" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_315_)" d="M434.29,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C428.58,82.27,431.43,82.28,434.29,82.29z"/> - - <linearGradient id="SVGID_316_" gradientUnits="userSpaceOnUse" x1="-166.438" y1="-269.0225" x2="-162.1338" y2="-261.5674" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_316_)" d="M432.15,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.75 - C429.29,74.95,430.72,74.96,432.15,74.96z"/> - - <linearGradient id="SVGID_317_" gradientUnits="userSpaceOnUse" x1="-166.4414" y1="-280.0859" x2="-162.1353" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_317_)" d="M432.15,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C429.29,63.89,430.72,63.89,432.15,63.9z" - /> - - <linearGradient id="SVGID_318_" gradientUnits="userSpaceOnUse" x1="-166.4434" y1="-291.1479" x2="-162.1377" y2="-283.6903" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_318_)" d="M432.15,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C429.3,52.83,430.72,52.83,432.15,52.83 - z"/> - - <linearGradient id="SVGID_319_" gradientUnits="userSpaceOnUse" x1="-166.4453" y1="-302.2114" x2="-162.1382" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_319_)" d="M432.15,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C429.3,41.77,430.73,41.77,432.15,41.77z" - /> - - <linearGradient id="SVGID_320_" gradientUnits="userSpaceOnUse" x1="-166.4482" y1="-313.2739" x2="-162.1411" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_320_)" d="M432.15,30.71c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C429.3,30.7,430.73,30.71,432.15,30.71z"/> - - <linearGradient id="SVGID_321_" gradientUnits="userSpaceOnUse" x1="-166.4502" y1="-324.3369" x2="-162.1416" y2="-316.8742" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_321_)" d="M432.15,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C429.3,19.64,430.73,19.64,432.15,19.64z"/> - - <linearGradient id="SVGID_322_" gradientUnits="userSpaceOnUse" x1="-166.4536" y1="-335.4019" x2="-162.1445" y2="-327.9383" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_322_)" d="M432.16,8.58c0.71-1.25,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.43,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C429.31,8.58,430.73,8.58,432.16,8.58z"/> - - <linearGradient id="SVGID_323_" gradientUnits="userSpaceOnUse" x1="-155.2524" y1="-263.1475" x2="-150.9663" y2="-255.7237" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_323_)" d="M420.97,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.29-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C418.12,80.8,419.54,80.82,420.97,80.83z"/> - - <linearGradient id="SVGID_324_" gradientUnits="userSpaceOnUse" x1="-155.2622" y1="-274.1992" x2="-150.9731" y2="-266.7704" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_324_)" d="M420.98,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.86-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.42,2.51,2.14,3.76 - C418.12,69.75,419.55,69.77,420.98,69.78z"/> - - <linearGradient id="SVGID_325_" gradientUnits="userSpaceOnUse" x1="-155.27" y1="-285.2505" x2="-150.979" y2="-277.8182" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_325_)" d="M420.98,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.51,2.14,3.76 - C418.13,58.7,419.56,58.72,420.98,58.73z"/> - - <linearGradient id="SVGID_326_" gradientUnits="userSpaceOnUse" x1="-155.2788" y1="-296.3027" x2="-150.9839" y2="-288.8637" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_326_)" d="M420.99,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.14,3.76 - C418.13,47.66,419.56,47.67,420.99,47.67z"/> - - <linearGradient id="SVGID_327_" gradientUnits="userSpaceOnUse" x1="-155.2876" y1="-307.3555" x2="-150.9897" y2="-299.9114" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_327_)" d="M421,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C418.14,36.61,419.57,36.61,421,36.62z"/> - - <linearGradient id="SVGID_328_" gradientUnits="userSpaceOnUse" x1="-155.2959" y1="-318.4067" x2="-150.9956" y2="-310.9584" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_328_)" d="M421,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74C418.15,25.56,419.58,25.56,421,25.57z" - /> - - <linearGradient id="SVGID_329_" gradientUnits="userSpaceOnUse" x1="-155.3027" y1="-329.4595" x2="-150.999" y2="-322.0052" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_329_)" d="M421.01,14.51c0.71-1.24,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C418.16,14.51,419.58,14.51,421.01,14.51z"/> - - <linearGradient id="SVGID_330_" gradientUnits="userSpaceOnUse" x1="-154.2339" y1="-338.625" x2="-151.0142" y2="-333.0483" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_330_)" d="M414.61-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C420.3-0.28,417.46-0.28,414.61-0.28z"/> - - <linearGradient id="SVGID_331_" gradientUnits="userSpaceOnUse" x1="-187.875" y1="-257.9639" x2="-184.6626" y2="-252.3998" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_331_)" d="M455.73,82.29c-0.71-1.25-1.43-2.5-2.14-3.75c-1.43,0-2.86-0.01-4.29-0.02 - c-0.71,1.24-1.43,2.49-2.14,3.72C450.02,82.27,452.88,82.28,455.73,82.29z"/> - - <linearGradient id="SVGID_332_" gradientUnits="userSpaceOnUse" x1="-187.8833" y1="-269.0225" x2="-183.5791" y2="-261.5674" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_332_)" d="M453.59,74.96c0.71-1.25,1.43-2.49,2.14-3.74c-0.72-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.14,3.75 - C450.74,74.95,452.17,74.96,453.59,74.96z"/> - - <linearGradient id="SVGID_333_" gradientUnits="userSpaceOnUse" x1="-187.8872" y1="-280.0859" x2="-183.5811" y2="-272.6275" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_333_)" d="M453.6,63.9c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85,0-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C450.74,63.89,452.17,63.89,453.6,63.9z"/> - - <linearGradient id="SVGID_334_" gradientUnits="userSpaceOnUse" x1="-187.8887" y1="-291.1479" x2="-183.583" y2="-283.6903" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_334_)" d="M453.6,52.83c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.43-2.5-2.14-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.43,2.5,2.14,3.75C450.74,52.83,452.17,52.83,453.6,52.83 - z"/> - - <linearGradient id="SVGID_335_" gradientUnits="userSpaceOnUse" x1="-187.8906" y1="-302.2114" x2="-183.5835" y2="-294.7513" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_335_)" d="M453.6,41.77c0.71-1.25,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.49-2.14-3.74 - c-1.42,0-2.85,0-4.28-0.01c-0.71,1.25-1.43,2.49-2.14,3.74c0.71,1.25,1.42,2.5,2.13,3.75C450.75,41.77,452.17,41.77,453.6,41.77z" - /> - - <linearGradient id="SVGID_336_" gradientUnits="userSpaceOnUse" x1="-187.8931" y1="-313.2739" x2="-183.5859" y2="-305.8138" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_336_)" d="M453.6,30.71c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C450.75,30.7,452.17,30.71,453.6,30.71z"/> - - <linearGradient id="SVGID_337_" gradientUnits="userSpaceOnUse" x1="-187.895" y1="-324.3374" x2="-183.5864" y2="-316.8747" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_337_)" d="M453.6,19.64c0.71-1.25,1.42-2.5,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.42,0-2.85,0-4.28,0 - c-0.71,1.25-1.42,2.49-2.13,3.74c0.71,1.25,1.42,2.5,2.13,3.75C450.75,19.64,452.18,19.64,453.6,19.64z"/> - - <linearGradient id="SVGID_338_" gradientUnits="userSpaceOnUse" x1="-187.8989" y1="-335.4019" x2="-183.5898" y2="-327.9383" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_338_)" d="M453.6,8.58c0.71-1.25,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.75c-1.42,0-2.85,0-4.27,0 - c-0.71,1.25-1.43,2.5-2.14,3.74c0.71,1.25,1.42,2.49,2.13,3.74C450.75,8.58,452.18,8.58,453.6,8.58z"/> - - <linearGradient id="SVGID_339_" gradientUnits="userSpaceOnUse" x1="-176.6978" y1="-263.147" x2="-172.4116" y2="-255.7232" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_339_)" d="M442.42,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.29-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C439.56,80.8,440.99,80.82,442.42,80.83z"/> - - <linearGradient id="SVGID_340_" gradientUnits="userSpaceOnUse" x1="-176.7075" y1="-274.1992" x2="-172.4185" y2="-266.7704" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_340_)" d="M442.42,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.86-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.42,2.51,2.14,3.76 - C439.57,69.75,441,69.77,442.42,69.78z"/> - - <linearGradient id="SVGID_341_" gradientUnits="userSpaceOnUse" x1="-176.7144" y1="-285.251" x2="-172.4233" y2="-277.8187" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_341_)" d="M442.43,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.51,2.14,3.76 - C439.57,58.7,441,58.72,442.43,58.73z"/> - - <linearGradient id="SVGID_342_" gradientUnits="userSpaceOnUse" x1="-176.7231" y1="-296.3032" x2="-172.4282" y2="-288.8642" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_342_)" d="M442.43,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.14,3.76 - C439.58,47.66,441.01,47.67,442.43,47.67z"/> - - <linearGradient id="SVGID_343_" gradientUnits="userSpaceOnUse" x1="-176.7319" y1="-307.3555" x2="-172.4341" y2="-299.9114" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_343_)" d="M442.44,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C439.59,36.61,441.02,36.61,442.44,36.62z"/> - - <linearGradient id="SVGID_344_" gradientUnits="userSpaceOnUse" x1="-176.7397" y1="-318.4067" x2="-172.4399" y2="-310.9593" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_344_)" d="M442.45,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.42,0-2.85-0.01-4.27-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74C439.6,25.56,441.02,25.56,442.45,25.57 - z"/> - - <linearGradient id="SVGID_345_" gradientUnits="userSpaceOnUse" x1="-176.748" y1="-329.4595" x2="-172.4443" y2="-322.0052" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_345_)" d="M442.45,14.51c0.71-1.24,1.43-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.14-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C439.6,14.51,441.03,14.51,442.45,14.51z"/> - - <linearGradient id="SVGID_346_" gradientUnits="userSpaceOnUse" x1="-175.6792" y1="-338.625" x2="-172.4595" y2="-333.0483" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_346_)" d="M436.05-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C441.75-0.28,438.9-0.28,436.05-0.28z"/> - - <linearGradient id="SVGID_347_" gradientUnits="userSpaceOnUse" x1="-198.1436" y1="-263.147" x2="-193.8574" y2="-255.7232" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_347_)" d="M463.86,80.83c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.51-2.14-3.76 - c-1.43-0.02-2.86-0.03-4.29-0.05c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.26,1.43,2.51,2.14,3.77 - C461.01,80.8,462.44,80.82,463.86,80.83z"/> - - <linearGradient id="SVGID_348_" gradientUnits="userSpaceOnUse" x1="-198.1533" y1="-274.1992" x2="-193.8643" y2="-266.7704" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_348_)" d="M463.87,69.78c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.43-2.5-2.14-3.76 - c-1.43-0.01-2.86-0.03-4.28-0.04c-0.71,1.24-1.43,2.47-2.14,3.71c0.71,1.25,1.42,2.51,2.14,3.76 - C461.01,69.75,462.44,69.77,463.87,69.78z"/> - - <linearGradient id="SVGID_349_" gradientUnits="userSpaceOnUse" x1="-198.1606" y1="-285.25" x2="-193.8696" y2="-277.8177" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_349_)" d="M463.88,58.73c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.04c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.51,2.14,3.76 - C461.02,58.7,462.45,58.72,463.88,58.73z"/> - - <linearGradient id="SVGID_350_" gradientUnits="userSpaceOnUse" x1="-198.1689" y1="-296.3027" x2="-193.874" y2="-288.8637" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_350_)" d="M463.88,47.67c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.14,3.76 - C461.03,47.66,462.46,47.67,463.88,47.67z"/> - - <linearGradient id="SVGID_351_" gradientUnits="userSpaceOnUse" x1="-198.1777" y1="-307.3555" x2="-193.8799" y2="-299.9114" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_351_)" d="M463.89,36.62c0.71-1.24,1.43-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.01-4.28-0.02c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.5,2.13,3.75 - C461.03,36.61,462.46,36.61,463.89,36.62z"/> - - <linearGradient id="SVGID_352_" gradientUnits="userSpaceOnUse" x1="-198.186" y1="-318.4072" x2="-193.8857" y2="-310.9589" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_352_)" d="M463.89,25.57c0.71-1.24,1.42-2.49,2.14-3.73c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43,0-2.85-0.01-4.28-0.01c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.5,2.13,3.74 - C461.04,25.56,462.46,25.56,463.89,25.57z"/> - - <linearGradient id="SVGID_353_" gradientUnits="userSpaceOnUse" x1="-198.1948" y1="-329.46" x2="-193.8906" y2="-322.0049" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_353_)" d="M463.9,14.51c0.71-1.24,1.42-2.49,2.14-3.74c-0.71-1.25-1.42-2.5-2.13-3.74c-1.42,0-2.85,0-4.27,0 - c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.25,1.42,2.49,2.13,3.74C461.05,14.51,462.47,14.51,463.9,14.51z"/> - - <linearGradient id="SVGID_354_" gradientUnits="userSpaceOnUse" x1="-197.124" y1="-338.6255" x2="-193.9043" y2="-333.0488" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_354_)" d="M457.5-0.28c0.71,1.24,1.42,2.49,2.13,3.74c1.42,0,2.85,0,4.27,0c0.71-1.25,1.42-2.49,2.14-3.74 - C463.19-0.28,460.35-0.28,457.5-0.28z"/> - - <linearGradient id="SVGID_355_" gradientUnits="userSpaceOnUse" x1="112.9204" y1="-258.2065" x2="116.082" y2="-252.7305" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_355_)" d="M154.96,82.08c-0.71-1.26-1.43-2.51-2.14-3.77c-1.43-0.03-2.86-0.06-4.29-0.09 - c-0.71,1.23-1.43,2.45-2.14,3.68C149.24,81.97,152.1,82.03,154.96,82.08z"/> - - <linearGradient id="SVGID_356_" gradientUnits="userSpaceOnUse" x1="112.9058" y1="-269.2368" x2="117.1743" y2="-261.8435" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_356_)" d="M152.82,74.74c0.71-1.23,1.43-2.46,2.14-3.7c-0.71-1.25-1.43-2.51-2.14-3.77 - c-1.43-0.02-2.85-0.05-4.28-0.07c-0.72,1.23-1.43,2.46-2.15,3.68c0.71,1.25,1.42,2.51,2.14,3.77 - C149.97,74.68,151.39,74.71,152.82,74.74z"/> - - <linearGradient id="SVGID_357_" gradientUnits="userSpaceOnUse" x1="112.8926" y1="-280.2642" x2="117.1646" y2="-272.8649" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_357_)" d="M152.83,63.71c0.71-1.23,1.43-2.47,2.14-3.7c-0.71-1.26-1.43-2.51-2.14-3.76 - c-1.42-0.02-2.85-0.04-4.28-0.06c-0.72,1.23-1.43,2.46-2.14,3.69c0.71,1.25,1.42,2.51,2.14,3.76 - C149.98,63.66,151.4,63.69,152.83,63.71z"/> - - <linearGradient id="SVGID_358_" gradientUnits="userSpaceOnUse" x1="112.8804" y1="-291.293" x2="117.1567" y2="-283.8861" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_358_)" d="M152.84,52.68c0.71-1.24,1.43-2.47,2.14-3.71c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.42-0.01-2.85-0.03-4.28-0.05c-0.71,1.23-1.43,2.46-2.14,3.69c0.71,1.25,1.42,2.5,2.14,3.76 - C149.99,52.64,151.42,52.66,152.84,52.68z"/> - - <linearGradient id="SVGID_359_" gradientUnits="userSpaceOnUse" x1="112.8647" y1="-302.3213" x2="117.1465" y2="-294.9051" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_359_)" d="M152.85,41.64c0.71-1.23,1.43-2.47,2.14-3.71c-0.71-1.25-1.42-2.5-2.14-3.75 - c-1.42-0.01-2.85-0.02-4.27-0.04c-0.71,1.24-1.43,2.47-2.14,3.7c0.71,1.25,1.42,2.5,2.13,3.75C150,41.62,151.43,41.63,152.85,41.64 - z"/> - - <linearGradient id="SVGID_360_" gradientUnits="userSpaceOnUse" x1="112.8496" y1="-313.3501" x2="117.1362" y2="-305.9254" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_360_)" d="M152.86,30.61c0.72-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.42-0.01-2.85-0.02-4.27-0.03c-0.71,1.24-1.43,2.48-2.14,3.71c0.71,1.25,1.42,2.49,2.13,3.74 - C150.01,30.59,151.44,30.6,152.86,30.61z"/> - - <linearGradient id="SVGID_361_" gradientUnits="userSpaceOnUse" x1="112.8354" y1="-324.3779" x2="117.1284" y2="-316.9423" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_361_)" d="M152.87,19.58c0.71-1.24,1.43-2.48,2.14-3.72c-0.71-1.25-1.42-2.49-2.14-3.74 - c-1.42,0-2.85-0.01-4.27-0.01c-0.71,1.24-1.43,2.48-2.14,3.72c0.71,1.25,1.42,2.49,2.13,3.74 - C150.02,19.57,151.45,19.58,152.87,19.58z"/> - - <linearGradient id="SVGID_362_" gradientUnits="userSpaceOnUse" x1="112.8232" y1="-335.4092" x2="117.1201" y2="-327.9668" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_362_)" d="M152.88,8.55c0.71-1.24,1.43-2.48,2.14-3.73c-0.71-1.25-1.42-2.49-2.13-3.74 - c-1.42,0-2.85,0-4.27,0c-0.71,1.24-1.43,2.49-2.14,3.73c0.71,1.24,1.42,2.49,2.13,3.73C150.03,8.54,151.46,8.55,152.88,8.55z"/> - - <linearGradient id="SVGID_363_" gradientUnits="userSpaceOnUse" x1="124.0977" y1="-263.5513" x2="128.3364" y2="-256.2095" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_363_)" d="M141.64,80.41c0.71-1.22,1.43-2.44,2.14-3.66c-0.71-1.26-1.42-2.52-2.13-3.78 - c-1.43-0.04-2.86-0.08-4.28-0.12c-0.71,1.22-1.43,2.43-2.15,3.65c0.71,1.26,1.43,2.52,2.13,3.78 - C138.79,80.32,140.21,80.37,141.64,80.41z"/> - - <linearGradient id="SVGID_364_" gradientUnits="userSpaceOnUse" x1="124.0786" y1="-274.5439" x2="128.3242" y2="-267.1903" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_364_)" d="M141.66,69.41c0.71-1.22,1.43-2.45,2.14-3.67c-0.71-1.26-1.42-2.51-2.13-3.77 - c-1.43-0.03-2.86-0.06-4.28-0.1c-0.71,1.22-1.43,2.44-2.14,3.66c0.71,1.25,1.42,2.51,2.13,3.77 - C138.8,69.34,140.23,69.38,141.66,69.41z"/> - - <linearGradient id="SVGID_365_" gradientUnits="userSpaceOnUse" x1="124.0596" y1="-285.5361" x2="128.313" y2="-278.169" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_365_)" d="M141.67,58.42c0.71-1.23,1.43-2.45,2.14-3.68c-0.71-1.25-1.42-2.51-2.13-3.76 - c-1.43-0.02-2.85-0.05-4.28-0.08c-0.71,1.22-1.43,2.44-2.14,3.67c0.71,1.25,1.42,2.51,2.13,3.76 - C138.82,58.36,140.24,58.39,141.67,58.42z"/> - - <linearGradient id="SVGID_366_" gradientUnits="userSpaceOnUse" x1="124.0405" y1="-296.5273" x2="128.3013" y2="-289.1475" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_366_)" d="M141.68,47.42c0.72-1.23,1.43-2.46,2.15-3.69c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.02-2.85-0.04-4.28-0.06c-0.71,1.23-1.43,2.45-2.14,3.67c0.71,1.25,1.42,2.5,2.13,3.75 - C138.83,47.37,140.26,47.4,141.68,47.42z"/> - - <linearGradient id="SVGID_367_" gradientUnits="userSpaceOnUse" x1="124.02" y1="-307.5225" x2="128.2886" y2="-300.1291" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_367_)" d="M141.7,36.43c0.71-1.23,1.43-2.46,2.14-3.69c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.01-2.85-0.03-4.28-0.04c-0.71,1.23-1.43,2.46-2.14,3.69c0.71,1.25,1.42,2.49,2.13,3.74 - C138.85,36.39,140.27,36.41,141.7,36.43z"/> - - <linearGradient id="SVGID_368_" gradientUnits="userSpaceOnUse" x1="124.0034" y1="-318.5122" x2="128.2773" y2="-311.1096" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_368_)" d="M141.71,25.43c0.71-1.23,1.43-2.47,2.14-3.7c-0.71-1.25-1.42-2.49-2.13-3.73 - c-1.42-0.01-2.85-0.02-4.27-0.03c-0.71,1.23-1.43,2.46-2.14,3.69c0.71,1.25,1.42,2.49,2.13,3.73 - C138.87,25.41,140.29,25.42,141.71,25.43z"/> - - <linearGradient id="SVGID_369_" gradientUnits="userSpaceOnUse" x1="123.9839" y1="-329.5044" x2="128.2651" y2="-322.0891" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_369_)" d="M141.73,14.44c0.71-1.24,1.43-2.48,2.14-3.71c-0.71-1.24-1.42-2.48-2.13-3.72 - c-1.43,0-2.85-0.01-4.27-0.01c-0.71,1.24-1.43,2.47-2.14,3.7c0.71,1.24,1.42,2.48,2.13,3.72C138.88,14.42,140.3,14.43,141.73,14.44 - z"/> - - <linearGradient id="SVGID_370_" gradientUnits="userSpaceOnUse" x1="125.0405" y1="-338.6304" x2="128.252" y2="-333.068" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_370_)" d="M135.34-0.28c0.71,1.24,1.42,2.48,2.13,3.71c1.42,0,2.85,0,4.27,0.01 - c0.71-1.24,1.43-2.48,2.14-3.72C141.04-0.28,138.19-0.28,135.34-0.28z"/> - - <linearGradient id="SVGID_371_" gradientUnits="userSpaceOnUse" x1="134.9282" y1="-258.8154" x2="138.0298" y2="-253.4434" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_371_)" d="M132.97,81.5c-0.71-1.26-1.42-2.52-2.13-3.78c-1.43-0.05-2.85-0.1-4.28-0.16 - c-0.71,1.21-1.43,2.41-2.15,3.61C127.26,81.29,130.12,81.39,132.97,81.5z"/> - - <linearGradient id="SVGID_372_" gradientUnits="userSpaceOnUse" x1="134.9053" y1="-269.7573" x2="139.1196" y2="-262.4579" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_372_)" d="M130.84,74.17c0.72-1.21,1.43-2.42,2.15-3.64c-0.71-1.26-1.42-2.51-2.13-3.77 - c-1.43-0.04-2.85-0.09-4.28-0.14c-0.71,1.21-1.43,2.41-2.14,3.62c0.71,1.25,1.42,2.51,2.13,3.77 - C127.99,74.07,129.42,74.12,130.84,74.17z"/> - - <linearGradient id="SVGID_373_" gradientUnits="userSpaceOnUse" x1="134.8804" y1="-280.707" x2="139.1064" y2="-273.3873" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_373_)" d="M130.86,63.22c0.71-1.21,1.43-2.43,2.15-3.65c-0.71-1.25-1.42-2.5-2.13-3.76 - c-1.43-0.03-2.85-0.07-4.28-0.11c-0.71,1.21-1.43,2.42-2.14,3.63c0.71,1.25,1.42,2.5,2.13,3.76 - C128.01,63.14,129.44,63.19,130.86,63.22z"/> - - <linearGradient id="SVGID_374_" gradientUnits="userSpaceOnUse" x1="134.8579" y1="-291.6499" x2="139.0913" y2="-284.3174" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_374_)" d="M130.88,52.28c0.71-1.22,1.43-2.44,2.14-3.66c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.03-2.85-0.06-4.28-0.09c-0.71,1.22-1.43,2.43-2.14,3.64c0.71,1.25,1.42,2.5,2.13,3.75 - C128.03,52.21,129.45,52.24,130.88,52.28z"/> - - <linearGradient id="SVGID_375_" gradientUnits="userSpaceOnUse" x1="134.8335" y1="-302.5942" x2="139.0767" y2="-295.2449" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_375_)" d="M130.9,41.33c0.71-1.22,1.43-2.44,2.14-3.67c-0.71-1.25-1.42-2.49-2.13-3.74 - c-1.43-0.02-2.85-0.04-4.28-0.07c-0.72,1.22-1.43,2.44-2.15,3.66c0.71,1.24,1.42,2.49,2.13,3.74 - C128.05,41.27,129.47,41.3,130.9,41.33z"/> - - <linearGradient id="SVGID_376_" gradientUnits="userSpaceOnUse" x1="134.8101" y1="-313.5381" x2="139.062" y2="-306.1735" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_376_)" d="M130.92,30.38c0.71-1.22,1.43-2.45,2.14-3.68c-0.71-1.24-1.42-2.49-2.13-3.73 - c-1.42-0.01-2.85-0.03-4.28-0.05c-0.71,1.22-1.43,2.44-2.14,3.67c0.71,1.24,1.42,2.48,2.13,3.72 - C128.07,30.34,129.49,30.36,130.92,30.38z"/> - - <linearGradient id="SVGID_377_" gradientUnits="userSpaceOnUse" x1="134.7881" y1="-324.4824" x2="139.0493" y2="-317.1017" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_377_)" d="M130.94,19.44c0.71-1.23,1.43-2.46,2.14-3.69c-0.71-1.24-1.42-2.48-2.13-3.72 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.23-1.43,2.45-2.14,3.68c0.71,1.24,1.42,2.47,2.13,3.71 - C128.09,19.41,129.51,19.42,130.94,19.44z"/> - - <linearGradient id="SVGID_378_" gradientUnits="userSpaceOnUse" x1="134.7637" y1="-335.4282" x2="139.0337" y2="-328.0323" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_378_)" d="M130.95,8.48c0.71-1.23,1.43-2.46,2.14-3.7c-0.71-1.24-1.42-2.47-2.13-3.71c-1.42,0-2.85,0-4.27,0 - c-0.71,1.23-1.43,2.46-2.14,3.69c0.71,1.23,1.42,2.46,2.13,3.7C128.1,8.47,129.53,8.48,130.95,8.48z"/> - - <linearGradient id="SVGID_379_" gradientUnits="userSpaceOnUse" x1="146.1016" y1="-264.2944" x2="150.2773" y2="-257.0618" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_379_)" d="M119.67,79.61c0.72-1.2,1.43-2.39,2.14-3.59c-0.71-1.26-1.42-2.52-2.13-3.77 - c-1.43-0.06-2.85-0.12-4.28-0.18c-0.72,1.19-1.43,2.39-2.15,3.58c0.71,1.26,1.42,2.51,2.13,3.77 - C116.81,79.48,118.24,79.54,119.67,79.61z"/> - - <linearGradient id="SVGID_380_" gradientUnits="userSpaceOnUse" x1="146.0728" y1="-275.1763" x2="150.2603" y2="-267.9233" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_380_)" d="M119.69,68.72c0.72-1.2,1.43-2.4,2.15-3.6c-0.71-1.25-1.42-2.51-2.13-3.76 - c-1.43-0.05-2.85-0.1-4.28-0.15c-0.71,1.2-1.43,2.39-2.15,3.59c0.71,1.25,1.42,2.5,2.13,3.76 - C116.84,68.61,118.26,68.67,119.69,68.72z"/> - - <linearGradient id="SVGID_381_" gradientUnits="userSpaceOnUse" x1="146.0444" y1="-286.0601" x2="150.2437" y2="-278.7868" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_381_)" d="M119.71,57.84c0.72-1.2,1.43-2.41,2.15-3.62c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.04-2.85-0.08-4.28-0.13c-0.71,1.2-1.43,2.4-2.14,3.6c0.71,1.25,1.42,2.49,2.13,3.74 - C116.86,57.74,118.28,57.79,119.71,57.84z"/> - - <linearGradient id="SVGID_382_" gradientUnits="userSpaceOnUse" x1="146.0161" y1="-296.9409" x2="150.2271" y2="-289.6474" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_382_)" d="M119.73,46.95c0.72-1.21,1.43-2.42,2.14-3.63c-0.71-1.25-1.42-2.49-2.13-3.73 - c-1.43-0.03-2.85-0.07-4.28-0.1c-0.71,1.21-1.43,2.41-2.14,3.62c0.71,1.24,1.42,2.49,2.13,3.73 - C116.88,46.87,118.3,46.91,119.73,46.95z"/> - - <linearGradient id="SVGID_383_" gradientUnits="userSpaceOnUse" x1="145.9873" y1="-307.8242" x2="150.21" y2="-300.5104" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_383_)" d="M119.75,36.06c0.71-1.21,1.43-2.43,2.14-3.64c-0.71-1.24-1.42-2.48-2.13-3.72 - c-1.42-0.02-2.85-0.05-4.28-0.07c-0.71,1.21-1.43,2.42-2.14,3.63c0.71,1.24,1.42,2.47,2.13,3.71 - C116.9,36,118.33,36.04,119.75,36.06z"/> - - <linearGradient id="SVGID_384_" gradientUnits="userSpaceOnUse" x1="145.9595" y1="-318.7065" x2="150.1938" y2="-311.3724" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_384_)" d="M119.77,25.18c0.71-1.22,1.43-2.44,2.14-3.66c-0.71-1.24-1.42-2.47-2.13-3.71 - c-1.42-0.01-2.85-0.03-4.28-0.04c-0.71,1.22-1.43,2.43-2.14,3.64c0.71,1.23,1.42,2.47,2.13,3.7 - C116.92,25.14,118.35,25.16,119.77,25.18z"/> - - <linearGradient id="SVGID_385_" gradientUnits="userSpaceOnUse" x1="145.9312" y1="-329.5879" x2="150.1763" y2="-322.2351" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_385_)" d="M119.79,14.29c0.71-1.22,1.43-2.45,2.14-3.67c-0.71-1.23-1.42-2.47-2.13-3.69 - c-1.43,0-2.85-0.01-4.28-0.02c-0.71,1.22-1.43,2.44-2.14,3.66c0.71,1.23,1.42,2.46,2.13,3.69 - C116.95,14.27,118.37,14.28,119.79,14.29z"/> - - <linearGradient id="SVGID_386_" gradientUnits="userSpaceOnUse" x1="146.9658" y1="-338.6309" x2="150.1602" y2="-333.0981" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_386_)" d="M113.42-0.28c0.71,1.22,1.42,2.45,2.13,3.67c1.42,0,2.85,0,4.27,0.01 - c0.71-1.23,1.43-2.45,2.14-3.68C119.11-0.28,116.27-0.28,113.42-0.28z"/> - - <linearGradient id="SVGID_387_" gradientUnits="userSpaceOnUse" x1="156.9312" y1="-259.7856" x2="159.9639" y2="-254.5328" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_387_)" d="M111,80.54c-0.71-1.26-1.42-2.52-2.13-3.77c-1.43-0.08-2.85-0.15-4.28-0.23 - c-0.71,1.18-1.43,2.35-2.14,3.52C105.3,80.23,108.15,80.39,111,80.54z"/> - - <linearGradient id="SVGID_388_" gradientUnits="userSpaceOnUse" x1="156.9004" y1="-270.5967" x2="161.0474" y2="-263.4139" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_388_)" d="M108.88,73.27c0.71-1.19,1.43-2.37,2.15-3.56c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.06-2.85-0.13-4.28-0.2c-0.72,1.18-1.43,2.36-2.15,3.54c0.71,1.25,1.42,2.5,2.13,3.75 - C106.03,73.12,107.45,73.2,108.88,73.27z"/> - - <linearGradient id="SVGID_389_" gradientUnits="userSpaceOnUse" x1="156.8677" y1="-281.4067" x2="161.0288" y2="-274.1994" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_389_)" d="M108.9,62.45c0.71-1.19,1.43-2.38,2.14-3.57c-0.71-1.25-1.42-2.5-2.13-3.74 - c-1.42-0.05-2.85-0.11-4.28-0.16c-0.71,1.18-1.43,2.37-2.14,3.55c0.71,1.25,1.42,2.49,2.13,3.74 - C106.05,62.33,107.48,62.39,108.9,62.45z"/> - - <linearGradient id="SVGID_390_" gradientUnits="userSpaceOnUse" x1="156.8359" y1="-292.2158" x2="161.0098" y2="-284.9865" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_390_)" d="M108.93,51.64c0.72-1.2,1.43-2.39,2.15-3.59c-0.71-1.24-1.42-2.49-2.13-3.73 - c-1.42-0.04-2.85-0.09-4.27-0.13c-0.71,1.19-1.43,2.38-2.14,3.57c0.71,1.24,1.42,2.48,2.13,3.72 - C106.08,51.54,107.5,51.59,108.93,51.64z"/> - - <linearGradient id="SVGID_391_" gradientUnits="userSpaceOnUse" x1="156.8042" y1="-303.0273" x2="160.9932" y2="-295.7719" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_391_)" d="M108.95,40.82c0.72-1.2,1.43-2.4,2.15-3.61c-0.71-1.24-1.42-2.48-2.13-3.71 - c-1.42-0.03-2.85-0.06-4.27-0.1c-0.71,1.2-1.43,2.4-2.15,3.59c0.71,1.23,1.42,2.47,2.13,3.71 - C106.1,40.74,107.53,40.78,108.95,40.82z"/> - - <linearGradient id="SVGID_392_" gradientUnits="userSpaceOnUse" x1="156.7739" y1="-313.8354" x2="160.9746" y2="-306.5597" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_392_)" d="M108.97,30.01c0.71-1.2,1.43-2.41,2.15-3.62c-0.71-1.23-1.42-2.46-2.13-3.69 - c-1.42-0.02-2.85-0.05-4.27-0.07c-0.71,1.2-1.43,2.41-2.15,3.61c0.71,1.23,1.42,2.46,2.13,3.69 - C106.12,29.95,107.55,29.98,108.97,30.01z"/> - - <linearGradient id="SVGID_393_" gradientUnits="userSpaceOnUse" x1="156.7407" y1="-324.646" x2="160.9561" y2="-317.3448" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_393_)" d="M109,19.19c0.71-1.21,1.43-2.42,2.14-3.63c-0.71-1.23-1.42-2.46-2.13-3.68 - c-1.42-0.01-2.85-0.02-4.27-0.04c-0.71,1.21-1.43,2.42-2.14,3.62c0.71,1.22,1.42,2.45,2.13,3.67 - C106.15,19.16,107.57,19.17,109,19.19z"/> - - <linearGradient id="SVGID_394_" gradientUnits="userSpaceOnUse" x1="156.708" y1="-335.4565" x2="160.936" y2="-328.1334" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_394_)" d="M109.02,8.38c0.71-1.21,1.43-2.43,2.14-3.65c-0.71-1.22-1.42-2.44-2.13-3.67 - c-1.42,0-2.85,0-4.27,0c-0.71,1.21-1.43,2.43-2.14,3.64c0.71,1.21,1.42,2.43,2.13,3.65C106.18,8.36,107.6,8.37,109.02,8.38z"/> - - <linearGradient id="SVGID_395_" gradientUnits="userSpaceOnUse" x1="168.0923" y1="-265.375" x2="172.1914" y2="-258.2751" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_395_)" d="M97.71,78.44c0.71-1.17,1.43-2.33,2.14-3.5c-0.71-1.25-1.42-2.5-2.13-3.75 - c-1.43-0.08-2.85-0.16-4.28-0.25c-0.71,1.16-1.43,2.33-2.14,3.48c0.71,1.25,1.42,2.5,2.12,3.75 - C94.86,78.26,96.28,78.35,97.71,78.44z"/> - - <linearGradient id="SVGID_396_" gradientUnits="userSpaceOnUse" x1="168.0586" y1="-276.0962" x2="172.1719" y2="-268.9718" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_396_)" d="M97.73,67.71c0.71-1.17,1.43-2.34,2.15-3.52c-0.71-1.25-1.42-2.49-2.13-3.73 - c-1.42-0.07-2.85-0.14-4.27-0.21c-0.72,1.17-1.43,2.34-2.15,3.5c0.71,1.24,1.42,2.49,2.13,3.73 - C94.88,67.56,96.31,67.64,97.73,67.71z"/> - - <linearGradient id="SVGID_397_" gradientUnits="userSpaceOnUse" x1="168.0234" y1="-286.8203" x2="172.1543" y2="-279.6655" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_397_)" d="M97.76,56.99c0.72-1.18,1.43-2.36,2.15-3.54c-0.71-1.24-1.42-2.48-2.13-3.72 - c-1.43-0.06-2.85-0.12-4.28-0.17c-0.72,1.18-1.43,2.35-2.14,3.52c0.71,1.23,1.42,2.47,2.13,3.71 - C94.91,56.86,96.34,56.92,97.76,56.99z"/> - - <linearGradient id="SVGID_398_" gradientUnits="userSpaceOnUse" x1="167.9888" y1="-297.542" x2="172.1348" y2="-290.3609" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_398_)" d="M97.79,46.26c0.71-1.18,1.43-2.37,2.14-3.56c-0.71-1.23-1.42-2.47-2.13-3.7 - c-1.42-0.04-2.85-0.09-4.27-0.13c-0.72,1.18-1.43,2.36-2.15,3.54c0.71,1.23,1.42,2.46,2.13,3.69 - C94.94,46.15,96.36,46.21,97.79,46.26z"/> - - <linearGradient id="SVGID_399_" gradientUnits="userSpaceOnUse" x1="167.9531" y1="-308.2676" x2="172.1167" y2="-301.0561" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_399_)" d="M97.81,35.53c0.72-1.19,1.43-2.38,2.14-3.57c-0.71-1.23-1.42-2.46-2.12-3.69 - c-1.43-0.03-2.85-0.06-4.28-0.1c-0.71,1.19-1.43,2.37-2.14,3.56c0.71,1.22,1.42,2.45,2.12,3.67 - C94.96,35.45,96.39,35.49,97.81,35.53z"/> - - <linearGradient id="SVGID_400_" gradientUnits="userSpaceOnUse" x1="167.9194" y1="-318.9868" x2="172.0981" y2="-311.7491" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_400_)" d="M97.84,24.81c0.71-1.2,1.43-2.39,2.14-3.59c-0.71-1.22-1.42-2.44-2.13-3.66 - c-1.42-0.02-2.85-0.04-4.27-0.06c-0.72,1.19-1.43,2.39-2.14,3.58c0.71,1.22,1.42,2.43,2.12,3.66 - C94.99,24.75,96.42,24.78,97.84,24.81z"/> - - <linearGradient id="SVGID_401_" gradientUnits="userSpaceOnUse" x1="167.8838" y1="-329.7104" x2="172.0776" y2="-322.4465" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_401_)" d="M97.87,14.08c0.71-1.2,1.43-2.4,2.14-3.61c-0.71-1.22-1.42-2.43-2.13-3.65 - c-1.42-0.01-2.85-0.01-4.27-0.02c-0.72,1.2-1.43,2.4-2.14,3.6c0.71,1.21,1.42,2.42,2.13,3.63C95.02,14.05,96.44,14.06,97.87,14.08z - "/> - - <linearGradient id="SVGID_402_" gradientUnits="userSpaceOnUse" x1="168.8901" y1="-338.6313" x2="172.0601" y2="-333.1409" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_402_)" d="M91.49-0.28c0.71,1.2,1.42,2.41,2.13,3.62c1.42,0,2.85,0.01,4.27,0.01 - c0.71-1.21,1.43-2.42,2.14-3.63C97.19-0.28,94.34-0.28,91.49-0.28z"/> - - <linearGradient id="SVGID_403_" gradientUnits="userSpaceOnUse" x1="178.9194" y1="-261.1211" x2="181.877" y2="-255.9985" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_403_)" d="M89.05,79.2c-0.71-1.25-1.42-2.5-2.13-3.75c-1.42-0.1-2.85-0.19-4.27-0.3 - c-0.71,1.14-1.43,2.29-2.14,3.42C83.35,78.79,86.2,79,89.05,79.2z"/> - - <linearGradient id="SVGID_404_" gradientUnits="userSpaceOnUse" x1="178.8828" y1="-271.7446" x2="182.9463" y2="-264.7065" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_404_)" d="M86.93,72.01c0.71-1.15,1.43-2.31,2.15-3.46c-0.71-1.24-1.42-2.48-2.13-3.73 - c-1.42-0.08-2.85-0.17-4.27-0.25c-0.71,1.15-1.43,2.3-2.14,3.44c0.71,1.24,1.42,2.48,2.12,3.72 - C84.08,71.83,85.51,71.92,86.93,72.01z"/> - - <linearGradient id="SVGID_405_" gradientUnits="userSpaceOnUse" x1="178.8457" y1="-282.3716" x2="182.9292" y2="-275.2988" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_405_)" d="M86.96,61.38c0.71-1.16,1.43-2.32,2.15-3.48c-0.71-1.24-1.42-2.47-2.13-3.71 - c-1.43-0.07-2.85-0.14-4.28-0.21c-0.71,1.16-1.43,2.31-2.14,3.46c0.71,1.23,1.42,2.46,2.12,3.7 - C84.11,61.23,85.54,61.31,86.96,61.38z"/> - - <linearGradient id="SVGID_406_" gradientUnits="userSpaceOnUse" x1="178.8086" y1="-292.9961" x2="182.9087" y2="-285.8945" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_406_)" d="M86.99,50.75c0.71-1.17,1.43-2.33,2.15-3.51c-0.71-1.23-1.42-2.46-2.13-3.68 - c-1.43-0.06-2.85-0.12-4.28-0.17c-0.71,1.17-1.43,2.33-2.14,3.49c0.71,1.22,1.42,2.45,2.13,3.68 - C84.14,50.62,85.56,50.69,86.99,50.75z"/> - - <linearGradient id="SVGID_407_" gradientUnits="userSpaceOnUse" x1="178.7725" y1="-303.6211" x2="182.8911" y2="-296.4874" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_407_)" d="M87.01,40.12c0.72-1.17,1.43-2.35,2.15-3.53c-0.71-1.22-1.42-2.45-2.13-3.67 - c-1.42-0.04-2.85-0.09-4.27-0.13c-0.72,1.17-1.43,2.34-2.14,3.51c0.71,1.22,1.42,2.44,2.12,3.66 - C84.17,40.02,85.59,40.07,87.01,40.12z"/> - - <linearGradient id="SVGID_408_" gradientUnits="userSpaceOnUse" x1="178.7358" y1="-314.2451" x2="182.8716" y2="-307.0818" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_408_)" d="M87.04,29.49c0.72-1.18,1.43-2.36,2.15-3.54c-0.71-1.22-1.42-2.43-2.13-3.64 - c-1.42-0.03-2.85-0.06-4.27-0.09c-0.71,1.18-1.43,2.36-2.14,3.53c0.71,1.21,1.42,2.42,2.13,3.64 - C84.19,29.41,85.62,29.45,87.04,29.49z"/> - - <linearGradient id="SVGID_409_" gradientUnits="userSpaceOnUse" x1="178.6992" y1="-324.8711" x2="182.853" y2="-317.6765" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_409_)" d="M87.07,18.86c0.71-1.19,1.43-2.38,2.14-3.57c-0.71-1.21-1.42-2.42-2.12-3.62 - c-1.42-0.02-2.85-0.03-4.27-0.05c-0.71,1.19-1.43,2.37-2.14,3.55c0.71,1.2,1.42,2.41,2.12,3.61 - C84.22,18.81,85.65,18.84,87.07,18.86z"/> - - <linearGradient id="SVGID_410_" gradientUnits="userSpaceOnUse" x1="178.6616" y1="-335.4951" x2="182.8325" y2="-328.2709" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_410_)" d="M87.1,8.23c0.71-1.19,1.43-2.39,2.14-3.58c-0.71-1.21-1.42-2.41-2.13-3.61c-1.42,0-2.85,0-4.27,0 - c-0.71,1.19-1.43,2.38-2.14,3.57C81.41,5.8,82.12,7,82.83,8.2C84.25,8.21,85.67,8.22,87.1,8.23z"/> - - <linearGradient id="SVGID_411_" gradientUnits="userSpaceOnUse" x1="190.0698" y1="-266.7964" x2="194.0757" y2="-259.858" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_411_)" d="M75.77,76.91c0.71-1.13,1.43-2.26,2.14-3.4c-0.71-1.24-1.42-2.48-2.12-3.72 - c-1.42-0.1-2.85-0.21-4.27-0.31c-0.71,1.13-1.43,2.25-2.14,3.38c0.71,1.23,1.42,2.47,2.12,3.71 - C72.93,76.68,74.35,76.79,75.77,76.91z"/> - - <linearGradient id="SVGID_412_" gradientUnits="userSpaceOnUse" x1="190.0327" y1="-277.3081" x2="194.0586" y2="-270.3351" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_412_)" d="M75.8,66.39c0.71-1.14,1.43-2.28,2.14-3.42c-0.71-1.23-1.42-2.46-2.12-3.69 - c-1.42-0.09-2.85-0.17-4.27-0.26c-0.71,1.14-1.43,2.27-2.14,3.4c0.71,1.23,1.42,2.45,2.12,3.69C72.95,66.19,74.38,66.29,75.8,66.39 - z"/> - - <linearGradient id="SVGID_413_" gradientUnits="userSpaceOnUse" x1="189.9941" y1="-287.8203" x2="194.04" y2="-280.8126" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_413_)" d="M75.83,55.87c0.71-1.15,1.43-2.29,2.14-3.44c-0.71-1.23-1.42-2.45-2.13-3.67 - c-1.42-0.07-2.85-0.15-4.27-0.22c-0.71,1.14-1.43,2.28-2.14,3.42c0.71,1.22,1.42,2.44,2.12,3.66 - C72.98,55.71,74.4,55.79,75.83,55.87z"/> - - <linearGradient id="SVGID_414_" gradientUnits="userSpaceOnUse" x1="189.957" y1="-298.3311" x2="194.0229" y2="-291.2887" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_414_)" d="M75.86,45.35c0.71-1.15,1.43-2.31,2.14-3.47c-0.71-1.22-1.42-2.43-2.13-3.65 - c-1.42-0.06-2.85-0.11-4.27-0.17c-0.71,1.15-1.43,2.3-2.14,3.44c0.71,1.21,1.42,2.42,2.12,3.64 - C73.01,45.22,74.43,45.29,75.86,45.35z"/> - - <linearGradient id="SVGID_415_" gradientUnits="userSpaceOnUse" x1="189.918" y1="-308.8442" x2="194.0044" y2="-301.7663" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_415_)" d="M75.88,34.84c0.71-1.16,1.43-2.33,2.14-3.49c-0.71-1.21-1.42-2.42-2.12-3.63 - c-1.43-0.04-2.85-0.08-4.27-0.12c-0.71,1.16-1.43,2.32-2.14,3.47c0.71,1.2,1.42,2.41,2.13,3.61 - C73.04,34.73,74.46,34.78,75.88,34.84z"/> - - <linearGradient id="SVGID_416_" gradientUnits="userSpaceOnUse" x1="189.8809" y1="-319.356" x2="193.9873" y2="-312.2434" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_416_)" d="M75.91,24.32c0.71-1.17,1.43-2.34,2.14-3.51c-0.71-1.2-1.42-2.4-2.12-3.6 - c-1.43-0.02-2.85-0.05-4.28-0.08c-0.71,1.16-1.43,2.33-2.14,3.49c0.71,1.2,1.42,2.39,2.13,3.59 - C73.06,24.24,74.49,24.28,75.91,24.32z"/> - - <linearGradient id="SVGID_417_" gradientUnits="userSpaceOnUse" x1="189.8408" y1="-329.8691" x2="193.9688" y2="-322.7194" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_417_)" d="M75.94,13.8c0.71-1.18,1.43-2.35,2.15-3.54c-0.71-1.2-1.42-2.39-2.12-3.58 - c-1.43-0.01-2.85-0.02-4.28-0.03c-0.71,1.17-1.43,2.35-2.14,3.52c0.71,1.19,1.42,2.37,2.13,3.57 - C73.09,13.76,74.52,13.78,75.94,13.8z"/> - - <linearGradient id="SVGID_418_" gradientUnits="userSpaceOnUse" x1="190.8145" y1="-338.6304" x2="193.9517" y2="-333.1966" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_418_)" d="M69.57-0.28c0.71,1.18,1.42,2.36,2.13,3.54c1.42,0.01,2.85,0.01,4.27,0.02 - c0.71-1.18,1.43-2.37,2.14-3.56C75.26-0.28,72.42-0.28,69.57-0.28z"/> - - <linearGradient id="SVGID_419_" gradientUnits="userSpaceOnUse" x1="200.8877" y1="-262.8164" x2="203.7612" y2="-257.8393" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_419_)" d="M67.13,77.49c-0.71-1.24-1.42-2.47-2.12-3.7c-1.42-0.12-2.85-0.24-4.27-0.37 - c-0.71,1.1-1.43,2.2-2.14,3.3C61.44,76.99,64.28,77.24,67.13,77.49z"/> - - <linearGradient id="SVGID_420_" gradientUnits="userSpaceOnUse" x1="200.8506" y1="-273.207" x2="204.8164" y2="-266.338" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_420_)" d="M65.01,70.42c0.71-1.12,1.43-2.23,2.14-3.36c-0.71-1.23-1.42-2.45-2.12-3.68 - c-1.43-0.1-2.85-0.21-4.27-0.32c-0.71,1.11-1.43,2.22-2.14,3.33c0.71,1.22,1.42,2.44,2.12,3.67 - C62.17,70.19,63.59,70.31,65.01,70.42z"/> - - <linearGradient id="SVGID_421_" gradientUnits="userSpaceOnUse" x1="200.8115" y1="-283.5967" x2="204.8003" y2="-276.6879" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_421_)" d="M65.04,60.03c0.71-1.12,1.43-2.25,2.14-3.38c-0.71-1.22-1.42-2.44-2.12-3.65 - c-1.43-0.09-2.85-0.17-4.27-0.26c-0.71,1.12-1.43,2.24-2.14,3.35c0.71,1.21,1.41,2.42,2.12,3.64 - C62.19,59.83,63.62,59.93,65.04,60.03z"/> - - <linearGradient id="SVGID_422_" gradientUnits="userSpaceOnUse" x1="200.7739" y1="-293.9863" x2="204.7837" y2="-287.0412" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_422_)" d="M65.07,49.63c0.71-1.13,1.43-2.27,2.14-3.4c-0.71-1.21-1.42-2.42-2.12-3.63 - c-1.43-0.07-2.85-0.14-4.27-0.21c-0.71,1.13-1.43,2.26-2.14,3.38c0.71,1.2,1.42,2.41,2.12,3.62 - C62.22,49.47,63.64,49.55,65.07,49.63z"/> - - <linearGradient id="SVGID_423_" gradientUnits="userSpaceOnUse" x1="200.7354" y1="-304.377" x2="204.7686" y2="-297.3912" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_423_)" d="M65.09,39.23c0.71-1.14,1.43-2.28,2.14-3.43c-0.71-1.2-1.42-2.4-2.12-3.6 - c-1.42-0.05-2.85-0.11-4.27-0.16c-0.71,1.14-1.43,2.27-2.14,3.41c0.71,1.19,1.42,2.39,2.12,3.59 - C62.25,39.1,63.67,39.17,65.09,39.23z"/> - - <linearGradient id="SVGID_424_" gradientUnits="userSpaceOnUse" x1="200.6973" y1="-314.7651" x2="204.751" y2="-307.7439" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_424_)" d="M65.12,28.84c0.71-1.15,1.43-2.3,2.14-3.45c-0.71-1.19-1.42-2.39-2.13-3.58 - c-1.42-0.04-2.85-0.07-4.27-0.11c-0.71,1.15-1.43,2.29-2.14,3.43c0.71,1.19,1.42,2.37,2.13,3.56 - C62.27,28.74,63.7,28.79,65.12,28.84z"/> - - <linearGradient id="SVGID_425_" gradientUnits="userSpaceOnUse" x1="200.6582" y1="-325.1562" x2="204.7363" y2="-318.0927" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_425_)" d="M65.15,18.44c0.72-1.16,1.43-2.32,2.15-3.48c-0.71-1.19-1.42-2.37-2.13-3.55 - c-1.42-0.02-2.85-0.04-4.27-0.06c-0.71,1.16-1.43,2.31-2.14,3.46c0.71,1.18,1.42,2.36,2.13,3.54 - C62.3,18.38,63.72,18.41,65.15,18.44z"/> - - <linearGradient id="SVGID_426_" gradientUnits="userSpaceOnUse" x1="200.6187" y1="-335.5449" x2="204.7178" y2="-328.445" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_426_)" d="M65.17,8.04c0.71-1.17,1.43-2.33,2.15-3.5c-0.71-1.18-1.42-2.36-2.13-3.53c-1.42,0-2.85,0-4.27,0 - c-0.72,1.17-1.43,2.33-2.14,3.49C59.49,5.66,60.19,6.83,60.9,8C62.33,8.02,63.75,8.03,65.17,8.04z"/> - - <linearGradient id="SVGID_427_" gradientUnits="userSpaceOnUse" x1="212.0288" y1="-268.5566" x2="215.9248" y2="-261.8086" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_427_)" d="M53.87,75c0.71-1.09,1.43-2.18,2.14-3.28c-0.71-1.22-1.42-2.44-2.12-3.66 - c-1.42-0.12-2.85-0.25-4.27-0.38c-0.71,1.09-1.42,2.17-2.14,3.25c0.71,1.21,1.42,2.43,2.12,3.65C51.02,74.72,52.45,74.86,53.87,75z - "/> - - <linearGradient id="SVGID_428_" gradientUnits="userSpaceOnUse" x1="211.9917" y1="-278.8057" x2="215.9116" y2="-272.0162" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_428_)" d="M53.89,64.74c0.71-1.1,1.43-2.2,2.14-3.3c-0.71-1.22-1.42-2.43-2.12-3.63 - c-1.42-0.1-2.84-0.21-4.27-0.32c-0.71,1.1-1.43,2.19-2.14,3.28c0.71,1.21,1.42,2.41,2.12,3.62C51.05,64.5,52.47,64.62,53.89,64.74z - "/> - - <linearGradient id="SVGID_429_" gradientUnits="userSpaceOnUse" x1="211.9541" y1="-289.0591" x2="215.8999" y2="-282.2248" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_429_)" d="M53.92,54.48c0.71-1.11,1.43-2.22,2.14-3.33c-0.71-1.2-1.41-2.41-2.12-3.61 - c-1.42-0.09-2.85-0.17-4.27-0.26c-0.71,1.1-1.43,2.21-2.14,3.3c0.71,1.2,1.42,2.39,2.12,3.6C51.07,54.28,52.5,54.38,53.92,54.48z" - /> - - <linearGradient id="SVGID_430_" gradientUnits="userSpaceOnUse" x1="211.9165" y1="-299.3091" x2="215.8857" y2="-292.4342" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_430_)" d="M53.94,44.22c0.72-1.12,1.43-2.24,2.14-3.36c-0.71-1.2-1.42-2.39-2.12-3.58 - c-1.42-0.07-2.85-0.14-4.27-0.21c-0.72,1.12-1.43,2.23-2.14,3.33c0.71,1.19,1.42,2.37,2.12,3.57 - C51.1,44.06,52.52,44.14,53.94,44.22z"/> - - <linearGradient id="SVGID_431_" gradientUnits="userSpaceOnUse" x1="211.8784" y1="-309.5605" x2="215.873" y2="-302.6416" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_431_)" d="M53.97,33.97c0.71-1.13,1.43-2.25,2.14-3.39c-0.71-1.18-1.42-2.37-2.12-3.55 - c-1.42-0.05-2.85-0.1-4.27-0.15C49,28,48.29,29.12,47.57,30.24c0.71,1.18,1.42,2.36,2.13,3.54C51.12,33.84,52.54,33.91,53.97,33.97 - z"/> - - <linearGradient id="SVGID_432_" gradientUnits="userSpaceOnUse" x1="211.8413" y1="-319.811" x2="215.8604" y2="-312.8499" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_432_)" d="M53.99,23.71c0.71-1.13,1.43-2.27,2.14-3.42c-0.71-1.18-1.42-2.35-2.12-3.52 - c-1.42-0.03-2.85-0.06-4.27-0.09c-0.71,1.13-1.43,2.26-2.14,3.39c0.71,1.17,1.42,2.34,2.13,3.51 - C51.15,23.62,52.57,23.67,53.99,23.71z"/> - - <linearGradient id="SVGID_433_" gradientUnits="userSpaceOnUse" x1="211.8042" y1="-330.0625" x2="215.8481" y2="-323.0582" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_433_)" d="M54.02,13.45c0.71-1.14,1.43-2.29,2.14-3.44c-0.71-1.17-1.42-2.33-2.12-3.5 - c-1.42-0.01-2.85-0.02-4.27-0.04c-0.71,1.14-1.43,2.28-2.14,3.42c0.71,1.16,1.42,2.32,2.13,3.48C51.17,13.4,52.6,13.43,54.02,13.45 - z"/> - - <linearGradient id="SVGID_434_" gradientUnits="userSpaceOnUse" x1="212.7363" y1="-338.6313" x2="215.8345" y2="-333.2652" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_434_)" d="M47.65-0.28c0.71,1.15,1.42,2.3,2.13,3.45c1.42,0,2.85,0.01,4.27,0.02 - c0.71-1.15,1.43-2.31,2.14-3.47C53.34-0.28,50.49-0.28,47.65-0.28z"/> - - <linearGradient id="SVGID_435_" gradientUnits="userSpaceOnUse" x1="222.8325" y1="-264.8745" x2="225.6128" y2="-260.0589" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_435_)" d="M45.24,75.4c-0.71-1.22-1.41-2.43-2.12-3.64c-1.42-0.15-2.84-0.29-4.26-0.44 - c-0.71,1.06-1.42,2.12-2.14,3.17C39.55,74.8,42.39,75.11,45.24,75.4z"/> - - <linearGradient id="SVGID_436_" gradientUnits="userSpaceOnUse" x1="222.7974" y1="-274.979" x2="226.6479" y2="-268.3096" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_436_)" d="M43.12,68.49c0.71-1.07,1.43-2.15,2.14-3.23c-0.71-1.21-1.41-2.41-2.12-3.61 - c-1.42-0.12-2.84-0.25-4.26-0.38c-0.71,1.07-1.42,2.14-2.13,3.2c0.71,1.2,1.41,2.4,2.12,3.6C40.28,68.21,41.7,68.35,43.12,68.49z" - /> - - <linearGradient id="SVGID_437_" gradientUnits="userSpaceOnUse" x1="222.7627" y1="-285.083" x2="226.6396" y2="-278.3679" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_437_)" d="M43.14,58.37c0.71-1.08,1.43-2.17,2.14-3.26c-0.71-1.2-1.42-2.39-2.12-3.58 - c-1.42-0.1-2.84-0.21-4.26-0.32c-0.71,1.08-1.42,2.16-2.14,3.23c0.71,1.19,1.42,2.38,2.12,3.57C40.3,58.14,41.72,58.26,43.14,58.37 - z"/> - - <linearGradient id="SVGID_438_" gradientUnits="userSpaceOnUse" x1="222.7266" y1="-295.188" x2="226.6313" y2="-288.4247" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_438_)" d="M43.16,48.26c0.71-1.09,1.43-2.19,2.14-3.29c-0.71-1.19-1.42-2.37-2.12-3.55 - c-1.42-0.08-2.84-0.17-4.27-0.25c-0.71,1.09-1.43,2.18-2.14,3.26c0.71,1.18,1.42,2.35,2.12,3.54 - C40.32,48.07,41.74,48.17,43.16,48.26z"/> - - <linearGradient id="SVGID_439_" gradientUnits="userSpaceOnUse" x1="222.6895" y1="-305.293" x2="226.6216" y2="-298.4823" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_439_)" d="M43.19,38.15c0.71-1.1,1.43-2.21,2.14-3.32c-0.71-1.18-1.42-2.35-2.12-3.53 - c-1.42-0.06-2.85-0.13-4.27-0.19c-0.71,1.1-1.43,2.2-2.14,3.29c0.71,1.17,1.42,2.33,2.12,3.51C40.34,38,41.77,38.07,43.19,38.15z" - /> - - <linearGradient id="SVGID_440_" gradientUnits="userSpaceOnUse" x1="222.6543" y1="-315.397" x2="226.6138" y2="-308.539" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_440_)" d="M43.21,28.04c0.71-1.11,1.43-2.23,2.14-3.35c-0.71-1.17-1.42-2.33-2.12-3.49 - c-1.42-0.04-2.85-0.09-4.27-0.13c-0.71,1.11-1.43,2.22-2.14,3.32c0.71,1.16,1.42,2.31,2.12,3.48 - C40.36,27.93,41.79,27.98,43.21,28.04z"/> - - <linearGradient id="SVGID_441_" gradientUnits="userSpaceOnUse" x1="222.6196" y1="-325.5005" x2="226.6055" y2="-318.5968" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_441_)" d="M43.23,17.93c0.71-1.12,1.43-2.25,2.14-3.38c-0.71-1.16-1.42-2.31-2.13-3.46 - c-1.42-0.02-2.85-0.05-4.27-0.07c-0.71,1.12-1.43,2.24-2.14,3.36c0.71,1.15,1.42,2.29,2.13,3.45 - C40.38,17.86,41.81,17.89,43.23,17.93z"/> - - <linearGradient id="SVGID_442_" gradientUnits="userSpaceOnUse" x1="222.5825" y1="-335.6055" x2="226.5947" y2="-328.6561" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_442_)" d="M43.25,7.82c0.72-1.13,1.43-2.27,2.14-3.41c-0.71-1.15-1.42-2.29-2.13-3.44 - c-1.42,0-2.85,0-4.27-0.01c-0.71,1.13-1.43,2.26-2.14,3.39c0.71,1.13,1.42,2.27,2.13,3.41C40.41,7.78,41.83,7.8,43.25,7.82z"/> - - <linearGradient id="SVGID_443_" gradientUnits="userSpaceOnUse" x1="233.9585" y1="-270.6538" x2="237.728" y2="-264.1248" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_443_)" d="M32,72.72c0.71-1.04,1.42-2.09,2.13-3.14c-0.71-1.2-1.42-2.4-2.12-3.59 - c-1.42-0.15-2.84-0.29-4.26-0.44c-0.71,1.04-1.42,2.07-2.13,3.1c0.7,1.19,1.41,2.39,2.12,3.58C29.16,72.4,30.58,72.56,32,72.72z"/> - - <linearGradient id="SVGID_444_" gradientUnits="userSpaceOnUse" x1="233.9268" y1="-280.5952" x2="237.7271" y2="-274.0129" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_444_)" d="M32.02,62.77c0.71-1.05,1.42-2.11,2.13-3.17c-0.71-1.19-1.42-2.38-2.12-3.56 - c-1.42-0.12-2.84-0.25-4.26-0.38c-0.71,1.05-1.42,2.1-2.13,3.14c0.71,1.18,1.41,2.36,2.12,3.55C29.18,62.5,30.6,62.64,32.02,62.77z - "/> - - <linearGradient id="SVGID_445_" gradientUnits="userSpaceOnUse" x1="233.8955" y1="-290.5352" x2="237.7251" y2="-283.9021" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_445_)" d="M32.03,52.83c0.71-1.06,1.42-2.13,2.14-3.2c-0.71-1.18-1.42-2.35-2.12-3.53 - c-1.42-0.1-2.84-0.2-4.26-0.31c-0.71,1.06-1.42,2.12-2.13,3.17c0.71,1.17,1.42,2.34,2.12,3.51C29.19,52.59,30.61,52.71,32.03,52.83 - z"/> - - <linearGradient id="SVGID_446_" gradientUnits="userSpaceOnUse" x1="233.8633" y1="-300.4727" x2="237.7207" y2="-293.7914" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_446_)" d="M32.05,42.88c0.71-1.08,1.42-2.15,2.14-3.24c-0.71-1.17-1.42-2.33-2.13-3.49 - c-1.42-0.08-2.84-0.16-4.26-0.24c-0.71,1.07-1.42,2.14-2.13,3.21c0.71,1.16,1.42,2.32,2.12,3.48 - C29.21,42.69,30.63,42.78,32.05,42.88z"/> - - <linearGradient id="SVGID_447_" gradientUnits="userSpaceOnUse" x1="233.8306" y1="-310.4131" x2="237.7173" y2="-303.6811" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_447_)" d="M32.07,32.93c0.71-1.09,1.43-2.17,2.14-3.27c-0.71-1.16-1.42-2.31-2.13-3.46 - c-1.42-0.06-2.84-0.12-4.27-0.18c-0.71,1.08-1.43,2.16-2.14,3.24c0.71,1.14,1.42,2.29,2.13,3.44 - C29.23,32.78,30.65,32.86,32.07,32.93z"/> - - <linearGradient id="SVGID_448_" gradientUnits="userSpaceOnUse" x1="233.8008" y1="-320.3525" x2="237.7163" y2="-313.5706" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_448_)" d="M32.09,22.98c0.71-1.1,1.43-2.2,2.14-3.3c-0.71-1.15-1.42-2.29-2.13-3.43 - c-1.42-0.04-2.85-0.07-4.27-0.11c-0.71,1.1-1.43,2.19-2.14,3.27c0.71,1.13,1.42,2.27,2.13,3.41 - C29.24,22.88,30.67,22.93,32.09,22.98z"/> - - <linearGradient id="SVGID_449_" gradientUnits="userSpaceOnUse" x1="233.7666" y1="-330.2925" x2="237.7119" y2="-323.459" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_449_)" d="M32.11,13.03c0.71-1.11,1.43-2.22,2.14-3.33c-0.71-1.13-1.42-2.27-2.13-3.4 - c-1.42-0.01-2.85-0.03-4.27-0.04c-0.71,1.11-1.43,2.21-2.14,3.31c0.71,1.12,1.42,2.25,2.13,3.38 - C29.26,12.98,30.68,13.01,32.11,13.03z"/> - - <linearGradient id="SVGID_450_" gradientUnits="userSpaceOnUse" x1="234.6597" y1="-338.6313" x2="237.7095" y2="-333.3489" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_450_)" d="M25.72-0.28c0.71,1.11,1.42,2.22,2.13,3.34c1.42,0.01,2.85,0.02,4.27,0.02 - c0.71-1.12,1.43-2.24,2.14-3.37C31.42-0.28,28.57-0.28,25.72-0.28z"/> - - <linearGradient id="SVGID_451_" gradientUnits="userSpaceOnUse" x1="244.7446" y1="-267.2954" x2="247.4238" y2="-262.6549" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_451_)" d="M23.38,72.94c-0.71-1.19-1.41-2.38-2.12-3.57c-1.41-0.17-2.83-0.34-4.25-0.51 - c-0.71,1.01-1.42,2.01-2.13,3.01C17.71,72.24,20.55,72.59,23.38,72.94z"/> - - <linearGradient id="SVGID_452_" gradientUnits="userSpaceOnUse" x1="244.7158" y1="-277.0654" x2="248.4365" y2="-270.621" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_452_)" d="M21.26,66.21c0.71-1.02,1.42-2.05,2.13-3.08c-0.71-1.18-1.42-2.36-2.12-3.53 - c-1.42-0.14-2.84-0.29-4.26-0.43c-0.71,1.02-1.42,2.04-2.13,3.05c0.71,1.17,1.41,2.34,2.12,3.52 - C18.43,65.89,19.85,66.05,21.26,66.21z"/> - - <linearGradient id="SVGID_453_" gradientUnits="userSpaceOnUse" x1="244.6895" y1="-286.8335" x2="248.4409" y2="-280.3358" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_453_)" d="M21.28,56.43c0.71-1.04,1.42-2.08,2.13-3.12c-0.71-1.17-1.42-2.33-2.12-3.5 - c-1.42-0.12-2.84-0.24-4.26-0.36c-0.71,1.03-1.42,2.06-2.13,3.08c0.71,1.16,1.42,2.32,2.12,3.48 - C18.44,56.16,19.86,56.29,21.28,56.43z"/> - - <linearGradient id="SVGID_454_" gradientUnits="userSpaceOnUse" x1="244.6626" y1="-296.5991" x2="248.4438" y2="-290.0498" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_454_)" d="M21.29,46.65c0.71-1.04,1.42-2.09,2.13-3.15c-0.71-1.16-1.42-2.31-2.13-3.46 - c-1.42-0.1-2.84-0.2-4.26-0.3c-0.71,1.04-1.42,2.09-2.13,3.12c0.71,1.14,1.42,2.29,2.12,3.44C18.45,46.43,19.87,46.54,21.29,46.65z - "/> - - <linearGradient id="SVGID_455_" gradientUnits="userSpaceOnUse" x1="244.6372" y1="-306.3667" x2="248.4497" y2="-299.7632" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_455_)" d="M21.3,36.88c0.71-1.06,1.43-2.12,2.13-3.19c-0.71-1.15-1.42-2.29-2.12-3.42 - c-1.42-0.08-2.84-0.15-4.26-0.22c-0.71,1.06-1.42,2.11-2.13,3.16c0.71,1.13,1.42,2.27,2.13,3.41C18.46,36.7,19.88,36.79,21.3,36.88 - z"/> - - <linearGradient id="SVGID_456_" gradientUnits="userSpaceOnUse" x1="244.6079" y1="-316.1377" x2="248.4536" y2="-309.4767" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_456_)" d="M21.31,27.1c0.71-1.07,1.42-2.14,2.14-3.22c-0.71-1.13-1.42-2.27-2.13-3.39 - c-1.42-0.05-2.84-0.1-4.27-0.15c-0.71,1.07-1.42,2.13-2.13,3.19c0.71,1.12,1.42,2.24,2.13,3.37C18.47,26.97,19.89,27.04,21.31,27.1 - z"/> - - <linearGradient id="SVGID_457_" gradientUnits="userSpaceOnUse" x1="244.5815" y1="-325.9062" x2="248.46" y2="-319.1886" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_457_)" d="M21.33,17.33c0.71-1.08,1.42-2.17,2.13-3.26c-0.71-1.12-1.42-2.24-2.13-3.36 - c-1.42-0.03-2.85-0.05-4.27-0.08c-0.71,1.08-1.42,2.16-2.14,3.23c0.71,1.11,1.42,2.22,2.13,3.34 - C18.48,17.24,19.91,17.28,21.33,17.33z"/> - - <linearGradient id="SVGID_458_" gradientUnits="userSpaceOnUse" x1="244.5532" y1="-335.6743" x2="248.4624" y2="-328.9034" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_458_)" d="M21.34,7.55c0.71-1.09,1.43-2.19,2.14-3.29c-0.71-1.11-1.42-2.22-2.13-3.33 - c-1.42,0-2.85-0.01-4.27-0.01c-0.71,1.09-1.42,2.18-2.14,3.27c0.71,1.09,1.42,2.19,2.13,3.3C18.49,7.51,19.92,7.53,21.34,7.55z"/> - - <linearGradient id="SVGID_459_" gradientUnits="userSpaceOnUse" x1="255.856" y1="-273.0938" x2="259.4858" y2="-266.8066" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_459_)" d="M10.17,70.07c0.71-0.99,1.42-1.98,2.12-2.98c-0.71-1.17-1.42-2.34-2.12-3.51 - c-1.42-0.17-2.83-0.33-4.25-0.51c-0.71,0.99-1.42,1.97-2.13,2.95c0.71,1.16,1.42,2.32,2.12,3.49C7.34,69.71,8.75,69.89,10.17,70.07 - z"/> - - <linearGradient id="SVGID_460_" gradientUnits="userSpaceOnUse" x1="255.8354" y1="-282.6714" x2="259.4985" y2="-276.3267" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_460_)" d="M10.18,60.49c0.71-1,1.42-2.01,2.13-3.02c-0.71-1.16-1.41-2.31-2.12-3.47 - c-1.42-0.14-2.83-0.29-4.25-0.43c-0.71,1-1.42,1.99-2.13,2.98C4.51,57.7,5.22,58.85,5.92,60C7.34,60.17,8.76,60.33,10.18,60.49z"/> - - <linearGradient id="SVGID_461_" gradientUnits="userSpaceOnUse" x1="255.8149" y1="-292.249" x2="259.5117" y2="-285.846" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_461_)" d="M10.18,50.9c0.71-1.01,1.42-2.03,2.13-3.06c-0.71-1.15-1.42-2.29-2.13-3.43 - c-1.42-0.12-2.83-0.24-4.26-0.36c-0.71,1.01-1.42,2.02-2.13,3.02c0.71,1.13,1.42,2.27,2.13,3.41C7.35,50.63,8.76,50.77,10.18,50.9z - "/> - - <linearGradient id="SVGID_462_" gradientUnits="userSpaceOnUse" x1="255.7964" y1="-301.8252" x2="259.5254" y2="-295.3664" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_462_)" d="M10.19,41.31c0.71-1.03,1.42-2.06,2.13-3.09c-0.71-1.13-1.42-2.26-2.13-3.39 - c-1.42-0.09-2.84-0.19-4.26-0.28c-0.71,1.02-1.42,2.05-2.13,3.06c0.71,1.12,1.42,2.24,2.13,3.37C7.35,41.1,8.76,41.21,10.19,41.31z - "/> - - <linearGradient id="SVGID_463_" gradientUnits="userSpaceOnUse" x1="255.7729" y1="-311.4058" x2="259.5381" y2="-304.8843" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_463_)" d="M10.19,31.73c0.71-1.04,1.42-2.08,2.13-3.13c-0.71-1.12-1.42-2.24-2.13-3.36 - c-1.42-0.06-2.84-0.13-4.26-0.2c-0.71,1.04-1.42,2.07-2.13,3.1c0.71,1.11,1.42,2.22,2.13,3.33C7.35,31.56,8.77,31.64,10.19,31.73z" - /> - - <linearGradient id="SVGID_464_" gradientUnits="userSpaceOnUse" x1="255.7559" y1="-320.9819" x2="259.5527" y2="-314.4055" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_464_)" d="M10.2,22.14c0.71-1.05,1.42-2.11,2.13-3.17c-0.71-1.11-1.42-2.21-2.13-3.31 - c-1.42-0.04-2.84-0.08-4.27-0.13c-0.71,1.05-1.42,2.1-2.13,3.14c0.71,1.09,1.42,2.19,2.13,3.29C7.36,22.02,8.77,22.08,10.2,22.14z" - /> - - <linearGradient id="SVGID_465_" gradientUnits="userSpaceOnUse" x1="255.7334" y1="-330.5615" x2="259.5659" y2="-323.9234" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_465_)" d="M10.2,12.55c0.71-1.06,1.43-2.13,2.13-3.2c-0.71-1.1-1.42-2.19-2.13-3.28 - C8.78,6.05,7.36,6.03,5.93,6.02C5.22,7.08,4.51,8.14,3.8,9.2c0.71,1.08,1.42,2.16,2.13,3.25C7.36,12.48,8.78,12.52,10.2,12.55z"/> - - <linearGradient id="SVGID_466_" gradientUnits="userSpaceOnUse" x1="256.5825" y1="-338.6318" x2="259.5781" y2="-333.4433" gradientTransform="matrix(-1 0 0 1 265.7217 336.5049)"> - <stop offset="0.1264" style="stop-color:#80E6FF"/> - <stop offset="0.6429" style="stop-color:#2BD5FF"/> - <stop offset="1" style="stop-color:#2BD5FF"/> - </linearGradient> - <path fill="url(#SVGID_466_)" d="M3.8-0.28c0.71,1.07,1.42,2.14,2.13,3.22c1.43,0.01,2.85,0.02,4.27,0.03 - c0.71-1.08,1.43-2.16,2.14-3.24C9.5-0.28,6.65-0.28,3.8-0.28z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_default_icon_68x68px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_default_icon_68x68px.svg deleted file mode 100644 index 1ffeedde1b..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_default_icon_68x68px.svg +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="68px" height="68px" viewBox="0 0 68 68" enable-background="new 0 0 68 68" xml:space="preserve"> -<g> - <path fill="#29CAF2" d="M68.03,63.85c0,2.35-1.9,4.25-4.25,4.25H4.28c-2.35,0-4.25-1.9-4.25-4.25V4.35C0.03,2,1.94,0.1,4.28,0.1 - h59.5c2.35,0,4.25,1.9,4.25,4.25V63.85z"/> - <g> - <rect x="4.35" y="4.89" fill="#2BD5FF" width="58.44" height="58.44"/> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="8.9175" y1="36.4287" x2="62.7471" y2="36.4287"> - <stop offset="0.1538" style="stop-color:#27C0E6"/> - <stop offset="0.4396" style="stop-color:#25B7DB"/> - <stop offset="0.7253" style="stop-color:#22A5C4"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M62.65,63.24c0.15-4.38,0.2-10.69-0.56-11.92c-3.75-6.06-15.11-4.72-18.33-4.21 - c0-1.52-0.01-2.86-0.02-3.88c0.66-0.68,1.26-1.46,1.81-2.31l0.08,0.25c4.67,0.67,5.26-14.6,5.26-14.6 - C51.22,4.85,37.65,9.83,35.49,10.76c-3.99-1.01-13.46-1.7-13.19,14.65c0,0-0.69,14.47,4.61,14.88c0.65,1.11,1.4,2.09,2.21,2.94 - c-0.01,0.94-0.05,2.15-0.1,3.54c-6.95-0.48-19.27-0.11-20.08,8.36c-0.08,0.82,0.15,4.82,0.36,8.11L62.65,63.24z"/> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_status_idle_38x38px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_status_idle_38x38px.svg deleted file mode 100644 index 71f49aa719..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_status_idle_38x38px.svg +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="38px" height="38px" viewBox="0 0 38 38" enable-background="new 0 0 38 38" xml:space="preserve"> -<g> - <circle fill="#29CAF2" cx="19.08" cy="19.08" r="19"/> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="19.0747" y1="31.4219" x2="19.0747" y2="6.7417"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M19.08,31.42c-6.8,0-12.34-5.54-12.34-12.34c0-6.8,5.54-12.34,12.34-12.34 - c6.8,0,12.34,5.54,12.34,12.34C31.41,25.88,25.88,31.42,19.08,31.42L19.08,31.42z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="9.5791" y1="12.4316" x2="28.57" y2="25.7292"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_2_)" cx="19.07" cy="19.08" r="11.59"/> - <g> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="11.3086" y1="13.7173" x2="26.6309" y2="24.4461"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M18.97,28.44c-5.16,0-9.36-4.19-9.36-9.35c0-5.16,4.2-9.36,9.36-9.36c5.16,0,9.35,4.2,9.35,9.36 - C28.32,24.24,24.13,28.44,18.97,28.44L18.97,28.44z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="25.4668" y1="24.5332" x2="12.4717" y2="13.629"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_4_)" cx="18.97" cy="19.08" r="8.48"/> - <path fill="#FF901F" d="M18.97,26.44c-4.06,0-7.36-3.3-7.36-7.36c0-4.06,3.3-7.36,7.36-7.36c4.06,0,7.36,3.3,7.36,7.36 - C26.33,23.14,23.03,26.44,18.97,26.44L18.97,26.44z"/> - <g> - <path fill="#FFD06B" d="M16.68,16.79c2.07-2.07,5.23-2.37,7.63-0.92c-0.25-0.42-0.56-0.83-0.93-1.19 - c-2.43-2.43-6.39-2.43-8.82,0c-2.43,2.43-2.43,6.39,0,8.82c0.37,0.37,0.77,0.67,1.19,0.92C14.3,22.02,14.61,18.85,16.68,16.79z" - /> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-119.9077" y1="69.291" x2="-124.6987" y2="60.9927" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#FF901F"/> - <stop offset="1" style="stop-color:#FFB81F"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M23.38,23.49c2.07-2.07,2.37-5.23,0.93-7.63c-2.4-1.45-5.56-1.14-7.63,0.92 - c-2.07,2.07-2.37,5.23-0.92,7.63C18.15,25.86,21.31,25.55,23.38,23.49z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_status_offline_38x38px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_status_offline_38x38px.svg deleted file mode 100644 index 84c2514adc..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_status_offline_38x38px.svg +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="38px" height="38px" viewBox="0 0 38 38" enable-background="new 0 0 38 38" xml:space="preserve"> -<g> - <circle fill="#29CAF2" cx="19.08" cy="19.09" r="19"/> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="19.0757" y1="31.4287" x2="19.0757" y2="6.7485"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M19.08,31.43c-6.8,0-12.34-5.54-12.34-12.34c0-6.8,5.54-12.34,12.34-12.34s12.34,5.54,12.34,12.34 - C31.42,25.89,25.88,31.43,19.08,31.43L19.08,31.43z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="9.5801" y1="12.439" x2="28.5702" y2="25.736"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_2_)" cx="19.07" cy="19.09" r="11.59"/> - <g> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="11.3101" y1="13.7241" x2="26.6308" y2="24.4518"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M18.97,28.44c-5.16,0-9.36-4.2-9.36-9.35c0-5.16,4.2-9.36,9.36-9.36c5.16,0,9.35,4.2,9.35,9.36 - C28.32,24.25,24.13,28.44,18.97,28.44L18.97,28.44z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="25.4678" y1="24.54" x2="12.4734" y2="13.6365"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_4_)" cx="18.97" cy="19.09" r="8.48"/> - <path fill="#BD0700" d="M18.97,26.45c-4.06,0-7.36-3.3-7.36-7.36s3.3-7.36,7.36-7.36c4.06,0,7.36,3.3,7.36,7.36 - S23.03,26.45,18.97,26.45L18.97,26.45z"/> - <g> - <path fill="#F25757" d="M16.68,16.79c2.07-2.07,5.23-2.37,7.63-0.92c-0.25-0.42-0.56-0.83-0.92-1.19 - c-2.43-2.43-6.39-2.43-8.82,0c-2.43,2.43-2.43,6.39,0,8.82c0.37,0.37,0.77,0.67,1.19,0.92C14.3,22.02,14.61,18.86,16.68,16.79z" - /> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-119.9072" y1="69.2979" x2="-124.6982" y2="60.9996" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#BD0700"/> - <stop offset="1" style="stop-color:#E35D58"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M23.38,23.5c2.07-2.07,2.37-5.23,0.92-7.63c-2.4-1.45-5.56-1.14-7.63,0.92 - c-2.07,2.07-2.37,5.23-0.92,7.63C18.15,25.86,21.31,25.56,23.38,23.5z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_status_online_38x38px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_status_online_38x38px.svg deleted file mode 100644 index 76daf31809..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/blue_SVG/blue_user_status_online_38x38px.svg +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="38px" height="38px" viewBox="0 0 38 38" enable-background="new 0 0 38 38" xml:space="preserve"> -<g> - <circle fill="#29CAF2" cx="19.07" cy="19.08" r="19"/> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="19.0737" y1="31.4219" x2="19.0737" y2="6.7417"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M19.07,31.42c-6.8,0-12.34-5.54-12.34-12.34c0-6.8,5.54-12.34,12.34-12.34s12.34,5.54,12.34,12.34 - C31.41,25.88,25.88,31.42,19.07,31.42L19.07,31.42z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="9.5786" y1="12.4321" x2="28.5695" y2="25.7297"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_2_)" cx="19.07" cy="19.08" r="11.59"/> - <g> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="11.3086" y1="13.7178" x2="26.6293" y2="24.4454"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M18.97,28.44c-5.16,0-9.36-4.19-9.36-9.35c0-5.16,4.2-9.36,9.36-9.36s9.35,4.2,9.35,9.36 - C28.32,24.24,24.13,28.44,18.97,28.44L18.97,28.44z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="25.4648" y1="24.5322" x2="12.4713" y2="13.6293"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_4_)" cx="18.97" cy="19.08" r="8.48"/> - <path fill="#09B300" d="M18.97,26.44c-4.06,0-7.36-3.3-7.36-7.36c0-4.06,3.3-7.36,7.36-7.36c4.06,0,7.36,3.3,7.36,7.36 - C26.33,23.14,23.03,26.44,18.97,26.44L18.97,26.44z"/> - <g> - <path fill="#57EB51" d="M16.68,16.79c2.07-2.07,5.23-2.37,7.62-0.92c-0.25-0.42-0.56-0.83-0.92-1.19 - c-2.43-2.43-6.39-2.43-8.82,0c-2.43,2.43-2.43,6.39,0,8.82c0.37,0.37,0.77,0.67,1.19,0.93C14.3,22.02,14.61,18.85,16.68,16.79z" - /> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-119.9087" y1="69.292" x2="-124.6997" y2="60.9937" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#09AA00"/> - <stop offset="1" style="stop-color:#4DCC46"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M23.38,23.49c2.07-2.07,2.37-5.23,0.92-7.63c-2.39-1.45-5.56-1.14-7.62,0.92 - c-2.07,2.07-2.37,5.23-0.93,7.63C18.15,25.86,21.31,25.55,23.38,23.49z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/areacodes.txt b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/areacodes.txt deleted file mode 100644 index dc7e7d81b6..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/areacodes.txt +++ /dev/null @@ -1,62 +0,0 @@ -+30 -+31 -+32 -+33 -+34 -+350 -+351 -+352 -+353 -+354 -+355 -+356 -+357 -+358 -+359 -+36 -+3 -+370 -+371 -+372 -+373 -+374 -+375 -+376 -+377 -+377 44 -+378 -+379 -+38 -+380 -+381 -+382 -+383 -+384 -+385 -+386 -+386 49 -+387 -+388 -+388 3 -+389 -+39 -+40 -+41 -+42 -+420 -+421 -+422 -+423 -+424 -+425 -+426 -+427 -+428 -+429 -+43 -+44 -+45 -+46 -+47 -+48 -+49
\ No newline at end of file diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/firstnamesF.txt b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/firstnamesF.txt deleted file mode 100644 index 4bf14924a7..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/firstnamesF.txt +++ /dev/null @@ -1,100 +0,0 @@ -Aida -Aija -Aila -Aili -Ailikki -Aimi -Aina -Alexia -Alice -Amanda -Amber -Amy -Angela -Angelica -Ann -Beth -Brenda -Brooke -Caitlin -Camilla -Camille -Carmen -Cassandra -Catherine -Edna -Eeva -Eeve -Eevi -Eija -Eila -Eimi -Eleanor -Eleonora -Elizabeth -Ellen -Enna -Enni -Erica -Erika -Erja -Essi -Essie -Heini -Heleena -Helen -Helena -Helene -Helga -Hilja -Hilkka -Hille -Hillervo -Hillevi -Hilma -Irene -Irina -Irja -Irma -Irmeli -Iro -Jacqueline -Jane -Jennifer -Jenny -Jessica -Jill -Kaire -Kaisa -Kaisla -Kaisu -Katarine -Kate -Kate -Kateriina -Katharina -Katharine -Katherine -Kathleen -Marge -Mary -May -Megan -Melinda -Morgan -Nellie -Nelly -Pauline -Peggy -Pepi -Scarlett -Sheila -Shirley -Sissy -Stephanie -Sylvia -Taylor -Terrie -Terry -Victoria -Violet
\ No newline at end of file diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/firstnamesM.txt b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/firstnamesM.txt deleted file mode 100644 index 189d8d015f..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/firstnamesM.txt +++ /dev/null @@ -1,100 +0,0 @@ -Aabraham -Aadam -Aadolf -Aake -Aaku -Aatu -Ahti -Ahvo -Aimo -Aki -Akseli -Aku -Bartholomew -Ben -Benjamin -Bill -Billie -Billy -Bob -Brendan -Brian -Bryan -Calvin -Carl -Charles -Chester -Chris -Christian -Christopher -Chuck -Dale -Dave -David -Dennis -Dick -Dominick -Donald -Dustin -Dusty -Harri -Heikki -Heimo -Heino -Helmer -Helmeri -Hemmi -Hemmo -Henri -Jeff -Jeffrey -Jermu -Jero -Jerri -Jerry -Jesper -Jesperi -Jesse -Jetro -Jim -Jimi -Jimmy -Joakim -Joe -John -Johnny -Jonah -Jonathan -Joseph -Leevi -Leimo -Leimu -Leino -Leivo -Lenne -Lennu -Mark -Martin -Matt -Matthew -Michael -Mike -Niko -Nooa -Nuutti -Nyyrikki -Okke -Okko -Olavi -Oliver -Olli -Onni -Pertti -Perttu -Walter -Warren -Wesley -William -Willie -Winston -Woodrow
\ No newline at end of file diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/lastnames.txt b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/lastnames.txt deleted file mode 100644 index 35b3f9f9c2..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/contacts/lastnames.txt +++ /dev/null @@ -1,150 +0,0 @@ -Adams -Allen -Anderson -Bailey -Baker -Barnes -Bell -Bennett -Brooks -Brown -Butler -Campbell -Carter -Clark -Collins -Cook -Cooper -Cox -Cruz -Davis -Díaz -Edwards -Evans -Fisher -Flores -Foster -García -Gómez -González -Gray -Green -Gutiérrez -Hall -Harris -Heikkinen -Helenius -Helve -Hernández -Hill -Hiltunen -Hirvonen -Holm -Honkanen -Howard -Hughes -Huhtala -Huttunen -Hyppönen -Jackson -James -Jenkins -Johnson -Jones -Kauppinen -Kelly -Kemppainen -King -Klemetti -Kokkonen -Kolehmainen -Korhonen -Kurikka -Kuura -Kyrö -Kärkkäinen -Lee -Lewis -Long -López -Martikainen -Martin -Martínez -Mattila -Mikkola -Mikkonen -Miller -Mitchell -Moore -Morales -Morgan -Morris -Muje -Murphy -Mustonen -Myers -Myllärinen -Mäenpää -Mäkelä -Mäkinen -Nelson -Nguyen -Ortiz -Parker -Pérez -Perry -Peterson -Phillips -Powell -Price -Ramírez -Reed -Reyes -Richardson -Rivera -Roberts -Robinson -Rodríguez -Rogers -Ross -Russell -Saarinen -Saaristo -Salminen -Salo -Salonen -Sánchez -Sanders -Scott -Seppänen -Silvennoinen -Silvo -Smith -Sokura -Stewart -Sullivan -Suomalainen -Taylor -Thomas -Thompson -Torres -Turner -Valkeapää -Walker -Valo -Valtonen -Vanhanen -Ward -Watson -Venäläinen -Vesa -White -Vihavainen -Williams -Wilson -Virtanen -Wood -Voutilainen -Wright -Vuorela -Young
\ No newline at end of file diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_background_360x640px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_background_360x640px.svg deleted file mode 100644 index 8daf275b19..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_background_360x640px.svg +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="360px" height="640px" viewBox="0 0 360 640" enable-background="new 0 0 360 640" xml:space="preserve"> -<g> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="180.5498" y1="640.4805" x2="180.5498" y2="0.4805"> - <stop offset="0" style="stop-color:#9EFF78"/> - <stop offset="0.3626" style="stop-color:#46F200"/> - <stop offset="1" style="stop-color:#3AC900"/> - </linearGradient> - <rect x="0.55" y="0.48" fill="url(#SVGID_1_)" width="360" height="640"/> - </g> -</g> -<g> - <path opacity="0.5" fill="#3FD900" enable-background="new " d="M81.87,177.64c-26.04,112.67-2.73,201.9,36.7,294.07 - c29.47,68.89,20.63,130.26,7.36,168.61H0.55V0.53h174.27C157.12,65.8,96.34,115.02,81.87,177.64z"/> - - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="458.8857" y1="1985.248" x2="-180.46" y2="1985.248" gradientTransform="matrix(0 -1 0.7343 0 -1400.0699 459.4961)"> - <stop offset="0" style="stop-color:#9EFF78"/> - <stop offset="0.3626" style="stop-color:#46F200"/> - <stop offset="1" style="stop-color:#3AC900"/> - </linearGradient> - <path opacity="0.5" fill="url(#SVGID_2_)" enable-background="new " d="M102.88,480.39c25.66,64.29,6.13,119.47-25.71,159.56 - H0.69V536.03c32.62-1.35,73.55,32.06,82.03-30.04c6.33-46.35-59-157.3-41.01-287.49c6.61-47.82,9.32-133.33-6.81-217.89h72.92 - C92.79,58.16,62.46,114.8,49.63,219.24C41.9,282.07,51.58,351.9,102.88,480.39z"/> - <path opacity="0.5" fill="#3FD900" enable-background="new " d="M279.23,463.41c26.04-112.67,2.74-201.9-36.7-294.07 - c-29.47-68.89-20.63-130.26-7.36-168.61h125.38v639.81H186.27C215.23,586.79,264.76,526.04,279.23,463.41z"/> - - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="655.6582" y1="83.9292" x2="16.3125" y2="83.9291" gradientTransform="matrix(0 1 -0.7343 0 366.7535 -15.209)"> - <stop offset="0" style="stop-color:#9EFF78"/> - <stop offset="0.3626" style="stop-color:#46F200"/> - <stop offset="1" style="stop-color:#3AC900"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M258.22,160.67C232.57,96.37,268.5-25.81,330.4,63.01l30-61.91V158.9 - c0-79.74-73.55-85.93-82.03-23.82c-6.33,46.35,59,157.3,41.01,287.49c-6.61,47.82-9.32,133.33,6.81,217.89h-72.92 - c15.02-57.56,45.35-114.2,58.18-218.63C319.2,358.99,309.51,289.15,258.22,160.67z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_background_horisontal_640x360px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_background_horisontal_640x360px.svg deleted file mode 100644 index c2b070a3b1..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_background_horisontal_640x360px.svg +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="640px" height="360px" viewBox="0 0 640 360" enable-background="new 0 0 640 360" xml:space="preserve"> -<g> - <g> - <rect x="0.02" y="0.02" fill="#FFFFFF" width="640" height="360"/> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="320.0181" y1="358.0205" x2="320.018" y2="2.0205"> - <stop offset="0" style="stop-color:#9EFF78"/> - <stop offset="0.3626" style="stop-color:#46F200"/> - <stop offset="1" style="stop-color:#3AC900"/> - </linearGradient> - <polygon fill="url(#SVGID_1_)" points="638.02,358.02 2.02,358.02 2.02,2.02 638.02,2.02 638.02,358.02 "/> - </g> - <path opacity="0.5" fill="#3FD900" d="M144.17,100.86c-45.53,62.62-4.77,112.21,64.16,163.44c51.53,38.29,36.07,72.4,12.87,93.71 - H2.03V2.42h304.66C275.74,38.7,169.48,66.06,144.17,100.86z"/> - - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="507.0713" y1="-1386.6294" x2="151.7412" y2="-1386.6294" gradientTransform="matrix(0 -1 -0.7343 0 -916.2726 509.4961)"> - <stop offset="0" style="stop-color:#9EFF78"/> - <stop offset="0.3626" style="stop-color:#46F200"/> - <stop offset="1" style="stop-color:#3AC900"/> - </linearGradient> - <path opacity="0.5" fill="url(#SVGID_2_)" d="M180.9,269.08c44.86,35.73,10.73,66.4-44.95,88.68H2.28V300 - c57.02-0.75,128.57,17.82,143.4-16.7c11.07-25.76-103.15-87.42-71.7-159.78C85.52,96.94,90.26,49.41,62.07,2.42h127.46 - c-26.25,31.99-79.27,63.47-101.71,121.51C74.31,158.85,91.24,197.67,180.9,269.08z"/> - <path opacity="0.5" fill="#3FD900" d="M495.59,259.17c45.54-62.62,4.77-112.21-64.15-163.44c-51.53-38.29-36.07-72.4-12.87-93.71 - h219.17l0,355.59H333.07C383.69,327.74,470.28,293.98,495.59,259.17z"/> - - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="499.5596" y1="193.2451" x2="144.2295" y2="193.2451" gradientTransform="matrix(0 1 0.7343 0 398.9562 -142.209)"> - <stop offset="0" style="stop-color:#9EFF78"/> - <stop offset="0.3626" style="stop-color:#46F200"/> - <stop offset="1" style="stop-color:#3AC900"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M458.86,90.7C414,54.97,476.82-12.94,585.04,36.43l52.45-34.41v87.7 - c0-44.32-128.57-47.76-143.4-13.24c-11.07,25.76,103.15,87.42,71.7,159.78c-11.55,26.57-16.29,74.11,11.91,121.09H450.24 - c26.25-31.99,79.27-63.47,101.71-121.51C565.45,200.92,548.52,162.11,458.86,90.7z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_default_icon_53x53px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_default_icon_53x53px.svg deleted file mode 100644 index 6e34f255b2..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_default_icon_53x53px.svg +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="53px" height="53px" viewBox="0 0 53 53" enable-background="new 0 0 53 53" xml:space="preserve"> -<g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="26.4878" y1="53.0156" x2="26.4878" y2="0.0156"> - <stop offset="0" style="stop-color:#8BF261"/> - <stop offset="0.1255" style="stop-color:#7AE74D"/> - <stop offset="0.3699" style="stop-color:#5DD62C"/> - <stop offset="0.6034" style="stop-color:#49C914"/> - <stop offset="0.8191" style="stop-color:#3CC205"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M-0.01,49.7c0,1.83,1.48,3.31,3.31,3.31h46.38c1.83,0,3.31-1.48,3.31-3.31V3.33 - c0-1.83-1.48-3.31-3.31-3.31H3.3c-1.83,0-3.31,1.48-3.31,3.31V49.7z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="26.4878" y1="50.6777" x2="26.4878" y2="2.354"> - <stop offset="0" style="stop-color:#3ED900"/> - <stop offset="0.3899" style="stop-color:#3DD500"/> - <stop offset="0.7931" style="stop-color:#3AC800"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_2_)" d="M2.33,49.7c0,0.54,0.44,0.98,0.97,0.98h46.38l0,0c0.54,0,0.97-0.44,0.97-0.98V3.33 - c0-0.54-0.44-0.97-0.97-0.97H3.3c-0.54,0-0.97,0.44-0.97,0.97V49.7z"/> - <path fill="#43EB00" d="M45.55,50.68c0.11-8.96,0.14-13.45-0.4-14.33c-2.67-4.31-10.75-3.36-13.04-2.99c0-1.08-0.01-2.04-0.01-2.76 - c0.47-0.49,0.9-1.04,1.29-1.64l0.06,0.18c3.33,0.47,3.74-10.39,3.74-10.39C37.41,3.29,27.75,6.83,26.22,7.49 - c-2.84-0.72-9.58-1.21-9.39,10.43c0,0-0.49,10.29,3.28,10.59c0.46,0.79,0.99,1.49,1.58,2.09c-0.01,0.67-0.04,1.53-0.07,2.52 - c-4.95-0.34-13.71-0.08-14.29,5.95c-0.05,0.58,0.11,3.43,0.26,11.62H45.55z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_default_icon_highlight_53x53px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_default_icon_highlight_53x53px.svg deleted file mode 100644 index 29c284de08..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_default_icon_highlight_53x53px.svg +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="53px" height="53px" viewBox="0 0 53 53" enable-background="new 0 0 53 53" xml:space="preserve"> -<g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="26.5083" y1="53.0332" x2="26.5083" y2="0.0342"> - <stop offset="0" style="stop-color:#8BF261"/> - <stop offset="0.1471" style="stop-color:#A7F587"/> - <stop offset="0.3385" style="stop-color:#C6F9B2"/> - <stop offset="0.5243" style="stop-color:#DFFBD3"/> - <stop offset="0.7006" style="stop-color:#F1FDEB"/> - <stop offset="0.8635" style="stop-color:#FBFFFA"/> - <stop offset="1" style="stop-color:#FFFFFF"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M0.01,49.72c0,1.83,1.48,3.31,3.31,3.31H49.7c1.83,0,3.31-1.48,3.31-3.31V3.35 - c0-1.83-1.48-3.31-3.31-3.31H3.32c-1.83,0-3.31,1.48-3.31,3.31V49.72z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="26.5083" y1="50.6963" x2="26.5083" y2="2.3726"> - <stop offset="0" style="stop-color:#3ED900"/> - <stop offset="0.3899" style="stop-color:#3DD500"/> - <stop offset="0.7931" style="stop-color:#3AC800"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_2_)" d="M2.35,49.72c0,0.54,0.44,0.98,0.97,0.98H49.7l0,0c0.54,0,0.97-0.44,0.97-0.98V3.35 - c0-0.54-0.44-0.97-0.97-0.97H3.32c-0.54,0-0.97,0.44-0.97,0.97V49.72z"/> - <path fill="#43EB00" d="M45.57,50.7c0.11-8.96,0.14-13.45-0.4-14.33c-2.67-4.31-10.75-3.36-13.04-2.99c0-1.09-0.01-2.04-0.01-2.76 - c0.47-0.49,0.9-1.04,1.29-1.64l0.06,0.17c3.33,0.47,3.74-10.39,3.74-10.39C37.43,3.3,27.77,6.85,26.24,7.51 - c-2.84-0.72-9.58-1.21-9.39,10.43c0,0-0.49,10.29,3.28,10.59c0.46,0.79,0.99,1.49,1.58,2.09c-0.01,0.67-0.04,1.53-0.07,2.52 - c-4.95-0.34-13.71-0.08-14.29,5.95C7.29,39.66,7.45,42.51,7.6,50.7L45.57,50.7z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_list_divider_360x76px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_list_divider_360x76px.svg deleted file mode 100644 index db9fc7af33..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_list_divider_360x76px.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="360px" height="76px" viewBox="0 0 360 76" enable-background="new 0 0 360 76" xml:space="preserve"> -<rect x="0.01" y="0.35" opacity="0.2" fill="#FFFFFF" width="360" height="76"/> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_list_highlighter_357x80px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_list_highlighter_357x80px.svg deleted file mode 100644 index 0ee3ea23e6..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_list_highlighter_357x80px.svg +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="357px" height="80px" viewBox="0 0 357 80" enable-background="new 0 0 357 80" xml:space="preserve"> -<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="8.300781e-03" y1="40.0156" x2="357.0078" y2="40.0156"> - <stop offset="0" style="stop-color:#46F200"/> - <stop offset="1" style="stop-color:#94FF69"/> -</linearGradient> -<rect x="0.01" y="0.02" fill="url(#SVGID_1_)" width="357" height="80"/> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_status_idle_27x47.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_status_idle_27x47.svg deleted file mode 100644 index 925d3eb36e..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_status_idle_27x47.svg +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="27px" height="47px" viewBox="0 0 27 47" enable-background="new 0 0 27 47" xml:space="preserve"> -<g> - <path opacity="0.2" fill="#FFFFFF" d="M0.04,0.04c15.51,0,27,10.52,27,23.5c0,12.98-11.49,23.5-27,23.5V0.04z"/> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-18.8911" y1="23.5415" x2="18.8759" y2="23.5415"> - <stop offset="0" style="stop-color:#3ED900"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M18.88,23.54C18.88,13,10.45,4.45,0.04,4.43v6.7c6.74,0.03,12.22,5.58,12.22,12.41 - S6.78,35.93,0.04,35.96v6.7C10.45,42.63,18.88,34.08,18.88,23.54z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="6.1475" y1="35.9551" x2="6.1475" y2="11.1284"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_2_)" d="M11.51,23.54c0,6.43-5.13,11.64-11.48,11.66v0.75c6.74-0.02,12.22-5.58,12.22-12.41 - S6.78,11.15,0.04,11.13v0.75C6.38,11.91,11.51,17.12,11.51,23.54z"/> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-8.9409" y1="16.0107" x2="10.0672" y2="29.3204"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M11.51,23.54c0-6.43-5.13-11.64-11.48-11.66v2.25c5.06,0.08,9.15,4.27,9.15,9.41 - c0,5.14-4.09,9.32-9.15,9.4v2.25C6.38,35.18,11.51,29.97,11.51,23.54z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-7.3013" y1="17.4404" x2="8.0348" y2="28.1788"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_4_)" d="M8.32,23.54c0,4.66-3.7,8.44-8.28,8.53v0.88c5.06-0.08,9.15-4.26,9.15-9.4 - c0-5.14-4.09-9.32-9.15-9.41v0.88C4.62,15.1,8.32,18.88,8.32,23.54z"/> - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="7.0356" y1="28.2002" x2="-5.98" y2="17.2788"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M8.32,23.54c0-4.66-3.7-8.44-8.28-8.52v1.13C4,16.23,7.2,19.51,7.2,23.54 - c0,4.03-3.2,7.31-7.16,7.39v1.13C4.62,31.99,8.32,28.2,8.32,23.54z"/> - <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="0.0371" y1="23.542" x2="7.2012" y2="23.542"> - <stop offset="0" style="stop-color:#FF901F"/> - <stop offset="1" style="stop-color:#FFB81F"/> - </linearGradient> - <path fill="url(#SVGID_6_)" d="M4.27,19.1c0.36,0.37,0.67,0.77,0.92,1.2c1.44,2.41,1.13,5.6-0.92,7.67 - c-1.17,1.18-2.7,1.77-4.23,1.81v1.15C4,30.86,7.2,27.57,7.2,23.54c0-4.03-3.2-7.32-7.16-7.4v1.13C1.57,17.31,3.1,17.92,4.27,19.1z - "/> - <path fill="#FFD06B" d="M5.19,20.3c-0.25-0.43-0.56-0.83-0.92-1.2c-1.17-1.18-2.7-1.79-4.23-1.83v2.46 - C1.74,19.17,3.62,19.35,5.19,20.3z"/> - - <linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-137.9243" y1="73.1523" x2="-142.7352" y2="64.8197" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#FF901F"/> - <stop offset="1" style="stop-color:#FFB81F"/> - </linearGradient> - <path fill="url(#SVGID_7_)" d="M5.19,20.3c-1.56-0.96-3.45-1.14-5.15-0.57v10.05c1.54-0.04,3.06-0.62,4.23-1.81 - C6.32,25.9,6.62,22.71,5.19,20.3z"/> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_status_offline_27x47.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_status_offline_27x47.svg deleted file mode 100644 index 6f74723f09..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_status_offline_27x47.svg +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="27px" height="47px" viewBox="0 0 27 47" enable-background="new 0 0 27 47" xml:space="preserve"> -<g> - <path opacity="0.2" fill="#FFFFFF" d="M0.04,0.04c15.51,0,27,10.52,27,23.5c0,12.98-11.49,23.5-27,23.5V0.04z"/> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-18.8911" y1="23.542" x2="18.8759" y2="23.542"> - <stop offset="0" style="stop-color:#3ED900"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M18.88,23.54C18.88,13,10.45,4.45,0.04,4.43v6.7c6.74,0.03,12.22,5.58,12.22,12.41 - c0,6.83-5.48,12.39-12.22,12.41v6.7C10.45,42.63,18.88,34.08,18.88,23.54z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="6.1475" y1="35.9551" x2="6.1475" y2="11.1289"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_2_)" d="M11.51,23.54c0,6.43-5.13,11.64-11.48,11.66v0.75c6.74-0.03,12.22-5.58,12.22-12.41 - c0-6.83-5.48-12.39-12.22-12.41v0.75C6.38,11.91,11.51,17.12,11.51,23.54z"/> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-8.9409" y1="16.0107" x2="10.0672" y2="29.3204"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M11.51,23.54c0-6.43-5.13-11.64-11.48-11.66v2.25c5.06,0.08,9.15,4.27,9.15,9.41 - c0,5.14-4.09,9.32-9.15,9.4v2.25C6.38,35.18,11.51,29.97,11.51,23.54z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-7.3013" y1="17.4409" x2="8.0348" y2="28.1793"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_4_)" d="M8.32,23.54c0,4.66-3.7,8.44-8.28,8.53v0.88c5.06-0.08,9.15-4.27,9.15-9.4 - c0-5.14-4.09-9.32-9.15-9.41v0.88C4.62,15.1,8.32,18.88,8.32,23.54z"/> - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="7.0361" y1="28.2012" x2="-5.9795" y2="17.2798"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M8.32,23.54c0-4.66-3.7-8.44-8.28-8.52v1.13C4,16.23,7.2,19.51,7.2,23.54 - c0,4.03-3.2,7.31-7.16,7.39v1.13C4.62,31.99,8.32,28.2,8.32,23.54z"/> - <path fill="#BD0700" d="M4.27,19.1c0.36,0.37,0.67,0.77,0.92,1.2c1.44,2.41,1.13,5.6-0.92,7.67c-1.17,1.19-2.7,1.77-4.23,1.81 - v1.15C4,30.86,7.2,27.57,7.2,23.54c0-4.03-3.2-7.32-7.16-7.4v1.13C1.57,17.31,3.1,17.92,4.27,19.1z"/> - <path fill="#F25757" d="M5.19,20.3c-0.25-0.43-0.56-0.83-0.92-1.2c-1.17-1.18-2.7-1.79-4.23-1.83v2.46 - C1.74,19.17,3.62,19.35,5.19,20.3z"/> - - <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-137.9243" y1="73.1533" x2="-142.7357" y2="64.8198" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#BD0700"/> - <stop offset="1" style="stop-color:#E35D58"/> - </linearGradient> - <path fill="url(#SVGID_6_)" d="M5.19,20.3c-1.56-0.96-3.45-1.14-5.15-0.57v10.05c1.54-0.04,3.06-0.62,4.23-1.81 - C6.32,25.9,6.62,22.72,5.19,20.3z"/> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_status_online_27x47.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_status_online_27x47.svg deleted file mode 100644 index 56951605de..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_contact_status_online_27x47.svg +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="27px" height="47px" viewBox="0 0 27 47" enable-background="new 0 0 27 47" xml:space="preserve"> -<g> - <path opacity="0.2" fill="#FFFFFF" d="M0.04,0.03c15.51,0,27,10.52,27,23.5c0,12.98-11.49,23.5-27,23.5V0.03z"/> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-18.8911" y1="23.5264" x2="18.8759" y2="23.5264"> - <stop offset="0" style="stop-color:#3ED900"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M18.88,23.53c0-10.54-8.43-19.09-18.84-19.11v6.7c6.74,0.02,12.22,5.58,12.22,12.41 - c0,6.83-5.48,12.39-12.22,12.41v6.7C10.45,42.62,18.88,34.07,18.88,23.53z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="6.1475" y1="35.9414" x2="6.1475" y2="11.1152"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_2_)" d="M11.51,23.53c0,6.43-5.13,11.64-11.48,11.66v0.75c6.74-0.03,12.22-5.58,12.22-12.41 - c0-6.83-5.48-12.39-12.22-12.41v0.75C6.38,11.89,11.51,17.1,11.51,23.53z"/> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-8.9414" y1="15.9961" x2="10.0667" y2="29.3057"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M11.51,23.53c0-6.43-5.13-11.64-11.48-11.66v2.25c5.06,0.08,9.15,4.27,9.15,9.41 - c0,5.14-4.09,9.32-9.15,9.4v2.25C6.38,35.16,11.51,29.95,11.51,23.53z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-7.3013" y1="17.4268" x2="8.0348" y2="28.1652"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_4_)" d="M8.32,23.53c0,4.66-3.7,8.44-8.28,8.53v0.88c5.06-0.08,9.15-4.27,9.15-9.4 - c0-5.14-4.09-9.33-9.15-9.41V15C4.62,15.08,8.32,18.87,8.32,23.53z"/> - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="7.0356" y1="28.1865" x2="-5.98" y2="17.2651"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M8.32,23.53c0-4.66-3.7-8.44-8.28-8.52v1.13C4,16.21,7.2,19.5,7.2,23.53c0,4.03-3.2,7.31-7.16,7.39 - v1.13C4.62,31.97,8.32,28.19,8.32,23.53z"/> - <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="0.0371" y1="23.5283" x2="7.2012" y2="23.5283"> - <stop offset="0" style="stop-color:#09AA00"/> - <stop offset="1" style="stop-color:#4DCC46"/> - </linearGradient> - <path fill="url(#SVGID_6_)" d="M4.27,19.09c0.36,0.37,0.67,0.77,0.92,1.2c1.44,2.41,1.13,5.6-0.92,7.67 - c-1.17,1.19-2.7,1.77-4.23,1.81v1.15C4,30.84,7.2,27.56,7.2,23.53c0-4.03-3.2-7.32-7.16-7.4v1.13C1.57,17.3,3.1,17.91,4.27,19.09z - "/> - <path fill="#57EB51" d="M5.19,20.29c-0.25-0.43-0.56-0.83-0.92-1.2c-1.17-1.19-2.7-1.79-4.23-1.83v2.46 - C1.74,19.15,3.62,19.33,5.19,20.29z"/> - - <linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-137.9243" y1="73.1387" x2="-142.7352" y2="64.806" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#09AA00"/> - <stop offset="1" style="stop-color:#4DCC46"/> - </linearGradient> - <path fill="url(#SVGID_7_)" d="M5.19,20.29c-1.56-0.96-3.45-1.14-5.15-0.57v10.05c1.54-0.04,3.06-0.62,4.23-1.81 - C6.32,25.88,6.62,22.7,5.19,20.29z"/> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_scroll_5x80px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_scroll_5x80px.svg deleted file mode 100644 index 4f6482afa5..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_scroll_5x80px.svg +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="5px" height="80px" viewBox="0 0 5 80" enable-background="new 0 0 5 80" xml:space="preserve"> -<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2.4917" y1="0.0908" x2="2.4917" y2="80.0913"> - <stop offset="0" style="stop-color:#46F200"/> - <stop offset="0.3516" style="stop-color:#94FF69"/> - <stop offset="0.9176" style="stop-color:#3FD900"/> -</linearGradient> -<rect x="-0.01" y="0.09" fill="url(#SVGID_1_)" width="5" height="80"/> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_scrollbar_5x14px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_scrollbar_5x14px.svg deleted file mode 100644 index 54a40c3cc8..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_scrollbar_5x14px.svg +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="5px" height="14px" viewBox="0 0 5 14" enable-background="new 0 0 5 14" xml:space="preserve"> -<rect fill="#41E600" width="5" height="14"/> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_status_field_left_14x24px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_status_field_left_14x24px.svg deleted file mode 100644 index a21c91df48..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_status_field_left_14x24px.svg +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="14px" height="24px" viewBox="0 0 14 24" enable-background="new 0 0 14 24" xml:space="preserve"> -<g> - <path fill="none" d="M4.96,21.94c-0.28-0.33-0.53-0.67-0.77-1.03C4.43,21.27,4.68,21.62,4.96,21.94z"/> - <path fill="none" d="M2.15,15.41c-0.05-0.46-0.09-0.92-0.09-1.39C2.06,14.49,2.09,14.96,2.15,15.41z"/> - <path fill="none" d="M4.12,20.81c-0.23-0.35-0.45-0.71-0.64-1.09C3.03,18.89,2.69,18,2.45,17.06C2.79,18.42,3.36,19.69,4.12,20.81z - "/> - <path fill="none" d="M2.41,16.91c-0.09-0.38-0.16-0.77-0.22-1.17C2.25,16.13,2.32,16.52,2.41,16.91z"/> - <path fill="#38BF00" d="M4.17,20.81c-0.74-1.13-1.3-2.39-1.64-3.75c-0.01-0.05-0.02-0.1-0.04-0.16c-0.09-0.38-0.16-0.77-0.22-1.17 - c-0.01-0.11-0.03-0.21-0.04-0.32c-0.05-0.46-0.08-0.92-0.08-1.39c0-6.63,5.57-12,11.86-12l0,0v-2H11.4c-6.29,0-11.39,5.37-11.39,12 - c0,4.13,1.98,7.76,4.99,9.92c-0.27-0.33-0.52-0.67-0.76-1.03C4.21,20.88,4.19,20.85,4.17,20.81z"/> - <path fill="#8BF261" d="M10.21,22.02c-2.5,0-4.8-0.86-6.68-2.29c0.19,0.38,0.41,0.73,0.63,1.09c0.02,0.03,0.04,0.07,0.07,0.1 - c0.24,0.36,0.49,0.7,0.76,1.03c1.82,1.31,4.03,2.08,6.4,2.08h2.61v-2H10.21z"/> - <path fill="#80E6FF" d="M4.12,20.81c0.02,0.04,0.04,0.07,0.07,0.1C4.16,20.88,4.14,20.85,4.12,20.81z"/> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="8.0742" y1="22.0195" x2="8.0742" y2="2.0205"> - <stop offset="0" style="stop-color:#3ED900"/> - <stop offset="0.3899" style="stop-color:#3DD500"/> - <stop offset="0.7931" style="stop-color:#3AC800"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M14.01,2.02c-6.29,0-11.86,5.37-11.86,12c0,0.47,0.03,0.94,0.08,1.39c0.01,0.11,0.03,0.22,0.04,0.32 - c0.06,0.4,0.12,0.79,0.22,1.17c0.01,0.05,0.02,0.1,0.04,0.16C2.76,18,3.1,18.89,3.53,19.73c1.88,1.44,4.18,2.29,6.68,2.29h3.8V2.02 - L14.01,2.02z"/> - <path fill="#2BD5FF" d="M2.45,17.06c-0.01-0.05-0.02-0.1-0.04-0.16C2.42,16.96,2.43,17.01,2.45,17.06z"/> - <path fill="#2BD5FF" d="M2.19,15.74c-0.01-0.11-0.03-0.21-0.04-0.32C2.16,15.52,2.17,15.63,2.19,15.74z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_status_field_middle_10x24px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_status_field_middle_10x24px.svg deleted file mode 100644 index b84200d9b1..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_status_field_middle_10x24px.svg +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="10px" height="24px" viewBox="0 0 10 24" enable-background="new 0 0 10 24" xml:space="preserve"> -<g> - - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="62.5" y1="-100.9995" x2="62.5" y2="-79" gradientTransform="matrix(1 0 0 -1 -57.5 -78)"> - <stop offset="0" style="stop-color:#3ED900"/> - <stop offset="0.3899" style="stop-color:#3DD500"/> - <stop offset="0.7931" style="stop-color:#3AC800"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <rect y="1" fill="url(#SVGID_1_)" width="10" height="22"/> - <rect fill="#38BF00" width="10" height="2"/> - <rect y="22" fill="#8BF261" width="10" height="2"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_status_field_right_14x24px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_status_field_right_14x24px.svg deleted file mode 100644 index 231560dd9e..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_status_field_right_14x24px.svg +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="14px" height="24px" viewBox="0 0 14 24" enable-background="new 0 0 14 24" xml:space="preserve"> -<g> - <path fill="#38BF00" d="M4.59,2.02c2.42,0,4.66,0.77,6.52,2.08C8.98,1.6,5.88,0.02,2.42,0.02H0.01v2H4.59z"/> - <path fill="#8BF261" d="M11.6,4.73c0.76,1.6,1.2,3.39,1.2,5.29c0,6.63-5.19,12-11.59,12H0.01v2h2.41c6.4,0,11.59-5.37,11.59-12 - C14.01,9.27,13.1,6.75,11.6,4.73z"/> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="6.4028" y1="22.0205" x2="6.4028" y2="2.021"> - <stop offset="0" style="stop-color:#3ED900"/> - <stop offset="0.3899" style="stop-color:#3DD500"/> - <stop offset="0.7931" style="stop-color:#3AC800"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M0.01,2.02v20h1.21c6.4,0,11.59-5.37,11.59-12c0-1.9-0.44-3.69-1.2-5.29 - c-0.16-0.22-0.32-0.43-0.5-0.64c-1.86-1.31-4.1-2.08-6.52-2.08H0.01z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_topbar_356x96px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_topbar_356x96px.svg deleted file mode 100644 index 679d9a5305..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_topbar_356x96px.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="356px" height="96px" viewBox="0 0 356 96" enable-background="new 0 0 356 96" xml:space="preserve"> -<g> - <g> - - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-184.8071" y1="-51.2339" x2="-112.3086" y2="147.9543" gradientTransform="matrix(-1 0 0 1 29.2188 0)"> - <stop offset="0" style="stop-color:#46F200"/> - <stop offset="0.3516" style="stop-color:#94FF69"/> - <stop offset="0.9176" style="stop-color:#3FD900"/> - </linearGradient> - <polygon fill="url(#SVGID_1_)" points="355.87,95.84 355.87,0.39 -0.14,0.39 -0.14,96.39 "/> - - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-148.647" y1="96.3936" x2="-148.647" y2="58.96" gradientTransform="matrix(-1 0 0 1 29.2188 0)"> - <stop offset="0" style="stop-color:#46F200"/> - <stop offset="0.9176" style="stop-color:#3FD900"/> - </linearGradient> - <polygon fill="url(#SVGID_2_)" points="355.87,96.18 355.87,58.96 -0.14,58.96 -0.14,96.39 "/> - <polygon fill="#38BF00" points="355.87,96.37 355.87,92.21 -0.14,92.21 -0.14,96.39 "/> - </g> - <polygon opacity="0.2" fill="#FFFFFF" points="266.5,92.09 167.84,92.09 272.84,0.77 326.5,0.77 "/> - <polygon opacity="0.2" fill="#FFFFFF" points="314.5,92.09 285.84,92.09 330.84,0.77 339.5,0.77 "/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_topbar_horisontal_636x96px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_topbar_horisontal_636x96px.svg deleted file mode 100644 index 1ef4fb9224..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_topbar_horisontal_636x96px.svg +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="636px" height="96px" viewBox="0 0 636 96" enable-background="new 0 0 636 96" xml:space="preserve"> -<g> - <g> - - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-61.3369" y1="-96.5996" x2="43.9144" y2="192.5761" gradientTransform="matrix(-1 0 0 1 309.2188 0)"> - <stop offset="0" style="stop-color:#46F200"/> - <stop offset="0.3516" style="stop-color:#94FF69"/> - <stop offset="0.9176" style="stop-color:#3FD900"/> - </linearGradient> - <polygon fill="url(#SVGID_1_)" points="636.02,95.46 636.02,0.02 0.02,0.02 0.02,96.02 "/> - - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-8.8003" y1="96.0205" x2="-8.8003" y2="58.5869" gradientTransform="matrix(-1 0 0 1 309.2188 0)"> - <stop offset="0" style="stop-color:#46F200"/> - <stop offset="0.9176" style="stop-color:#3FD900"/> - </linearGradient> - <polygon fill="url(#SVGID_2_)" points="636.02,95.8 636.02,58.59 0.02,58.59 0.02,96.02 "/> - <polygon fill="#38BF00" points="636.02,95.99 636.02,91.84 0.02,91.84 0.02,96.02 "/> - </g> - <polygon opacity="0.2" fill="#FFFFFF" points="546.65,91.72 447.99,91.72 552.99,0.4 606.65,0.4 "/> - <polygon opacity="0.2" fill="#FFFFFF" points="594.65,91.72 565.99,91.72 610.99,0.4 619.65,0.4 "/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_default_icon_84x68px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_default_icon_84x68px.svg deleted file mode 100644 index 4df0214e56..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_default_icon_84x68px.svg +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="84px" height="68px" viewBox="0 0 84 68" enable-background="new 0 0 84 68" xml:space="preserve"> -<g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="42.1343" y1="68.0352" x2="42.1343" y2="0.0361"> - <stop offset="0" style="stop-color:#8BF261"/> - <stop offset="0.1255" style="stop-color:#7AE74D"/> - <stop offset="0.3699" style="stop-color:#5DD62C"/> - <stop offset="0.6034" style="stop-color:#49C914"/> - <stop offset="0.8191" style="stop-color:#3CC205"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M80.01,0.04h-59.5c-2.35,0-4.25,1.9-4.25,4.25v25.78c-9,0.13-16.26,7.46-16.26,16.49 - c0,9.03,7.26,16.36,16.26,16.49v0.75c0,2.35,1.9,4.25,4.25,4.25h59.5c2.35,0,4.25-1.9,4.25-4.25V4.29 - C84.26,1.94,82.36,0.04,80.01,0.04z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="42.1333" y1="65.0371" x2="42.1333" y2="3.0366"> - <stop offset="0" style="stop-color:#3ED900"/> - <stop offset="0.3899" style="stop-color:#3DD500"/> - <stop offset="0.7931" style="stop-color:#3AC800"/> - <stop offset="1" style="stop-color:#38BF00"/> - </linearGradient> - <path fill="url(#SVGID_2_)" d="M80.01,65.04h-59.5c-0.69,0-1.25-0.56-1.25-1.25v-0.75v-2.96l-2.96-0.04 - c-7.33-0.11-13.3-6.16-13.3-13.49s5.97-13.38,13.3-13.49l2.96-0.04v-2.96V4.29c0-0.69,0.56-1.25,1.25-1.25h59.5 - c0.69,0,1.25,0.56,1.25,1.25v59.5C81.26,64.47,80.7,65.04,80.01,65.04L80.01,65.04z"/> - <path fill="#43EB00" d="M74.71,65.04c0.14-11.5,0.19-17.26-0.51-18.38c-3.42-5.53-13.79-4.31-16.74-3.84 - c0-1.39-0.01-2.61-0.02-3.54c0.6-0.62,1.15-1.33,1.65-2.11l0.08,0.22c4.27,0.61,4.8-13.33,4.8-13.33 - C64.28,4.23,51.88,8.78,49.91,9.62C46.27,8.7,37.62,8.07,37.87,23c0,0-0.63,13.21,4.21,13.58c0.59,1.01,1.28,1.91,2.02,2.69 - c-0.01,0.86-0.05,1.96-0.09,3.23c-6.35-0.43-17.59-0.1-18.33,7.63c-0.07,0.74,0.14,4.4,0.33,14.91L74.71,65.04z"/> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_status_idle_24x24px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_status_idle_24x24px.svg deleted file mode 100644 index 2d6da38ad0..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_status_idle_24x24px.svg +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> -<g> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="12.0337" y1="23.9922" x2="12.0337" y2="-7.812500e-03"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M12.03,23.99c-6.62,0-12-5.38-12-12c0-6.62,5.39-12,12-12s12,5.38,12,12 - C24.03,18.61,18.65,23.99,12.03,23.99L12.03,23.99z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.7993" y1="5.5259" x2="21.267" y2="18.4571"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_2_)" cx="12.03" cy="11.99" r="11.27"/> - <g> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="4.4814" y1="6.7754" x2="19.3806" y2="17.2079"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M11.93,21.09c-5.02,0-9.1-4.08-9.1-9.09c0-5.02,4.08-9.1,9.1-9.1s9.1,4.08,9.1,9.1 - C21.03,17.01,16.95,21.09,11.93,21.09L11.93,21.09z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="18.249" y1="17.293" x2="5.613" y2="6.6901"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_4_)" cx="11.93" cy="11.99" r="8.25"/> - <path fill="#FF901F" d="M11.93,19.15c-3.95,0-7.16-3.21-7.16-7.15c0-3.95,3.21-7.16,7.16-7.16c3.94,0,7.16,3.21,7.16,7.16 - C19.09,15.94,15.88,19.15,11.93,19.15L11.93,19.15z"/> - <g> - <path fill="#FFD06B" d="M9.7,9.76c2.01-2.01,5.09-2.3,7.42-0.9c-0.25-0.41-0.54-0.8-0.9-1.16c-2.36-2.37-6.21-2.37-8.58,0 - c-2.36,2.37-2.36,6.21,0,8.58c0.36,0.36,0.75,0.65,1.16,0.9C7.39,14.85,7.69,11.77,9.7,9.76z"/> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-127.042" y1="62.0576" x2="-131.7007" y2="53.9885" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#FF901F"/> - <stop offset="1" style="stop-color:#FFB81F"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M16.22,16.28c2.01-2.01,2.3-5.09,0.9-7.42c-2.33-1.41-5.41-1.11-7.42,0.9 - c-2.01,2.01-2.31,5.09-0.9,7.42C11.13,18.58,14.21,18.29,16.22,16.28z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_status_offline_24x24px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_status_offline_24x24px.svg deleted file mode 100644 index d5920268b1..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_status_offline_24x24px.svg +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> -<g> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="12.0005" y1="24.0449" x2="12.0005" y2="0.0454"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M12,24.04c-6.62,0-12-5.38-12-12c0-6.62,5.39-12,12-12s12,5.38,12,12 - C24,18.66,18.62,24.04,12,24.04L12,24.04z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.7661" y1="5.5786" x2="21.2346" y2="18.5104"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_2_)" cx="12" cy="12.04" r="11.27"/> - <g> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="4.4487" y1="6.8286" x2="19.3479" y2="17.2611"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M11.9,21.14c-5.02,0-9.1-4.08-9.1-9.09c0-5.02,4.08-9.1,9.1-9.1c5.02,0,9.1,4.08,9.1,9.1 - C20.99,17.06,16.92,21.14,11.9,21.14L11.9,21.14z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="18.2168" y1="17.3467" x2="5.5801" y2="6.7432"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_4_)" cx="11.9" cy="12.04" r="8.25"/> - <path fill="#BD0700" d="M11.9,19.2c-3.95,0-7.16-3.21-7.16-7.15c0-3.95,3.21-7.16,7.16-7.16c3.95,0,7.16,3.21,7.16,7.16 - C19.05,15.99,15.84,19.2,11.9,19.2L11.9,19.2z"/> - <g> - <path fill="#F25757" d="M9.67,9.81c2.01-2.01,5.09-2.3,7.42-0.9c-0.25-0.41-0.54-0.8-0.9-1.16c-2.36-2.37-6.21-2.37-8.58,0 - c-2.36,2.37-2.36,6.21,0,8.58c0.36,0.36,0.75,0.65,1.16,0.9C7.36,14.9,7.66,11.82,9.67,9.81z"/> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-127.0752" y1="62.1104" x2="-131.7339" y2="54.0413" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#BD0700"/> - <stop offset="1" style="stop-color:#E35D58"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M16.19,16.33c2.01-2.01,2.3-5.08,0.9-7.41c-2.33-1.41-5.41-1.11-7.42,0.9 - c-2.01,2.01-2.31,5.09-0.9,7.42C11.1,18.63,14.18,18.34,16.19,16.33z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_status_online_24x24px.svg b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_status_online_24x24px.svg deleted file mode 100644 index 46ad07dbbd..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/resources/lime_SVG/lime_user_status_online_24x24px.svg +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> -<g> - <g> - <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="12.0337" y1="23.9502" x2="12.0337" y2="-0.0498"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.8407" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#D9D9D9"/> - </linearGradient> - <path fill="url(#SVGID_1_)" d="M12.03,23.95c-6.62,0-12-5.38-12-12c0-6.62,5.38-12,12-12c6.62,0,12,5.38,12,12 - C24.03,18.57,18.65,23.95,12.03,23.95L12.03,23.95z"/> - <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.7988" y1="5.4839" x2="21.2673" y2="18.4157"> - <stop offset="0.1099" style="stop-color:#FFFFFF"/> - <stop offset="0.6978" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_2_)" cx="12.03" cy="11.95" r="11.27"/> - <g> - <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="4.4819" y1="6.7339" x2="19.3803" y2="17.1658"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <path fill="url(#SVGID_3_)" d="M11.93,21.05c-5.01,0-9.1-4.08-9.1-9.09c0-5.02,4.08-9.1,9.1-9.1c5.02,0,9.1,4.08,9.1,9.1 - C21.03,16.97,16.95,21.05,11.93,21.05L11.93,21.05z"/> - <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="18.248" y1="17.251" x2="5.6128" y2="6.6487"> - <stop offset="0" style="stop-color:#A6A6A6"/> - <stop offset="0.4341" style="stop-color:#8C8C8C"/> - <stop offset="0.7308" style="stop-color:#999999"/> - <stop offset="1" style="stop-color:#E6E6E6"/> - </linearGradient> - <circle fill="url(#SVGID_4_)" cx="11.93" cy="11.95" r="8.25"/> - <path fill="#09B300" d="M11.93,19.11c-3.95,0-7.16-3.21-7.16-7.15c0-3.95,3.21-7.16,7.16-7.16c3.94,0,7.16,3.21,7.16,7.16 - C19.09,15.9,15.88,19.11,11.93,19.11L11.93,19.11z"/> - <g> - <path fill="#57EB51" d="M9.7,9.72c2.01-2.01,5.09-2.3,7.42-0.9c-0.25-0.41-0.54-0.8-0.9-1.16c-2.36-2.37-6.21-2.37-8.57,0 - c-2.36,2.37-2.36,6.21,0,8.58c0.36,0.36,0.75,0.65,1.16,0.9C7.39,14.8,7.69,11.73,9.7,9.72z"/> - - <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-127.042" y1="62.0156" x2="-131.7007" y2="53.9465" gradientTransform="matrix(1 0 0 1 142.3301 -45.0029)"> - <stop offset="0" style="stop-color:#09AA00"/> - <stop offset="1" style="stop-color:#4DCC46"/> - </linearGradient> - <path fill="url(#SVGID_5_)" d="M16.22,16.24c2.01-2.01,2.3-5.09,0.9-7.42c-2.33-1.41-5.41-1.11-7.42,0.9 - c-2.01,2.01-2.31,5.09-0.9,7.42C11.13,18.54,14.21,18.25,16.22,16.24z"/> - </g> - </g> - </g> -</g> -</svg> diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemcontainer.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemcontainer.cpp deleted file mode 100644 index 00481a638d..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemcontainer.cpp +++ /dev/null @@ -1,382 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include <QDebug> -#include <QGraphicsLayout> - -#include "abstractitemcontainer.h" -#include "abstractitemview.h" -#include "abstractviewitem.h" -#include "scrollbar.h" - -AbstractItemContainer::AbstractItemContainer(int bufferSize, QGraphicsWidget *parent) - : GvbWidget(parent), - m_items(), - m_itemView(0), - m_prototype(0), - m_bufferSize(bufferSize), - m_twoColumns(false) -{ -} - -AbstractItemContainer::~AbstractItemContainer() -{ - delete m_prototype; - m_prototype = 0; -} - -AbstractViewItem *AbstractItemContainer::prototype() -{ - return m_prototype; -} - -int AbstractItemContainer::bufferSize() const -{ - return m_bufferSize; -} - -bool AbstractItemContainer::event(QEvent *e) -{ - if (e->type() == QEvent::LayoutRequest) - updateItemBuffer(); - - return QGraphicsWidget::event(e); -} - - -bool AbstractItemContainer::eventFilter(QObject *obj, QEvent *event) -{ - if (event->type()==QEvent::GraphicsSceneResize && m_itemView) { - const bool caching = m_itemView->listItemCaching(); - m_itemView->setListItemCaching(false); - - QSizeF s = m_itemView->size(); - s.setWidth(s.width()-m_itemView->verticalScrollBar()->size().width()); - adjustVisibleContainerSize(s); - - m_itemView->updateViewContent(); - updateItemBuffer(); - - m_itemView->setListItemCaching(caching); - } - - return QGraphicsWidget::eventFilter(obj, event); -} - -QVariant AbstractItemContainer::itemChange(GraphicsItemChange change, const QVariant &value) -{ - QVariant ichange = QGraphicsWidget::itemChange(change,value); - - if (change == ItemPositionChange) { - if (m_itemView && layout() && !layout()->isActivated()) - m_itemView->refreshContainerGeometry(); - } - return ichange; - } - -/*virtual*/ -void AbstractItemContainer::setItemView(AbstractItemView *view) -{ - m_itemView = view; - - if (m_itemView) { - setParentItem(m_itemView); - m_itemView->installEventFilter(this); - } -} -/*virtual*/ -void AbstractItemContainer::setItemPrototype(AbstractViewItem *ptype) -{ - m_prototype = ptype; - m_prototype->setParentItem(0); - m_prototype->hide(); -} - -/*virtual*/ -void AbstractItemContainer::reset() -{ - qDeleteAll(m_items); - m_items.clear(); - updateItemBuffer(); -} - - -/*virtual*/ -void AbstractItemContainer::addItem(const QModelIndex &index) -{ - if (m_items.count() < maxItemCountInItemBuffer() || - (m_items.count() > 0 && - m_items.first()->modelIndex().row()-1 <= index.row() && - m_items.last()->modelIndex().row() >= index.row())) { - int itemPos = 0; - if (m_items.count() != 0) - itemPos = qMax(0, index.row() - m_items.first()->modelIndex().row()); - - if (itemPos >= m_items.count() || m_items.at(itemPos)->modelIndex() != index) { - AbstractViewItem *item = 0; - if (m_prototype) - item = m_prototype->newItemInstance(); - - if (item) { - item->setModel(m_itemView->model()); - item->setTwoColumns(m_twoColumns); - m_items.insert(itemPos, item); - addItemToVisibleLayout(itemPos, item); - - if (item->modelIndex() != index) { - item->setModelIndex(index); - } - } - } - updateItemBuffer(); - } -} -void AbstractItemContainer::removeItem(const QModelIndex &index) -{ - AbstractViewItem *item = findItemByIndex(index); - - if (item) { - if (maxItemCountInItemBuffer() < m_items.count()) { - m_items.removeOne(item); - removeItemFromVisibleLayout(item); - - delete item; - } - else { - m_items.removeOne(item); - removeItemFromVisibleLayout(item); - - QModelIndex newIndex = m_itemView->nextIndex(m_items.last()->modelIndex()); - if (newIndex.isValid()) { - // Item readded as last item in buffer. - m_items.append(item); - addItemToVisibleLayout(m_items.count() - 1, item); - item->setModelIndex(newIndex); - } else { - // Item readded as first item in buffer. - newIndex = m_itemView->previousIndex(m_items.first()->modelIndex()); - - m_items.prepend(item); - addItemToVisibleLayout(0, item); - item->setModelIndex(newIndex); - } - } - } -} - -/*virtual*/ -int AbstractItemContainer::itemCount() const -{ - return m_items.count(); -} - -AbstractViewItem *AbstractItemContainer::firstItem() -{ - return m_items.first(); -} - -/*virtual*/ -AbstractViewItem* AbstractItemContainer::itemAt(const int row) const -{ - if (row<0 || row >= m_items.count()) - return 0; - return m_items.at(row); -} - -AbstractViewItem* AbstractItemContainer::findItemByIndex(const QModelIndex &index) const -{ - AbstractViewItem *item = 0; - for (int i = 0; i < m_items.count(); ++i) { - if (m_items.at(i)->modelIndex() == index) { - item = m_items.at(i); - break; - } - } - return item; -} - -bool AbstractItemContainer::itemVisibleInView(AbstractViewItem* item, const QRectF &viewRect, bool fullyVisible) const -{ - if (!item || !m_itemView) - return false; - - QRectF itemRectBoundingRect = item->mapToItem(m_itemView, item->boundingRect()).boundingRect(); - - if (fullyVisible && viewRect.contains(itemRectBoundingRect)) - return true; - else if (viewRect.intersects(itemRectBoundingRect)) - return true; - - return false; -} - -void AbstractItemContainer::updateItemBuffer() -{ - if (!m_itemView || (m_itemView && !m_itemView->boundingRect().isValid())) - return; - - int maxCount = maxItemCountInItemBuffer(); - - if (m_items.count() < maxCount) { - // New items needs to be added. - QModelIndex index; - if (m_items.count() > 0) - index = m_items.last()->modelIndex(); - while (m_items.count() < maxCount) { - index = m_itemView->nextIndex(index); - - if (!index.isValid()) - break; - - insertItem(m_items.count(), index); - } - - index = m_items.first()->modelIndex(); - while (m_items.count() < maxCount) { - index = m_itemView->previousIndex(index); - - if (!index.isValid()) - break; - - insertItem(0, index); - } - } - - QRectF viewRect = boundingRect(); - - while (m_items.count() > maxCount) { - int firstVisible = 0; - int lastVisible = 0; - findFirstAndLastVisibleBufferIndex(firstVisible, lastVisible, viewRect, false); - - AbstractViewItem* item = 0; - if (lastVisible != m_items.count() - 1) { - item = m_items.takeLast(); - } - else if (firstVisible != 0 && m_items.first()->modelIndex().row() != firstVisible-1) { - item = m_items.takeFirst(); - } - else { - // All the items are visible. Take the item at the end of the buffer. - item = m_items.takeLast(); - } - - m_items.removeOne(item); - removeItemFromVisibleLayout(item); - delete item; - } -} - -void AbstractItemContainer::insertItem(int pos, const QModelIndex &index) -{ - AbstractViewItem *item = 0; - if (m_prototype) - item = m_prototype->newItemInstance(); - - if (item) { - item->setModel(m_itemView->model()); - item->setModelIndex(index); - item->setTwoColumns(m_twoColumns); - m_items.insert(pos, item); - addItemToVisibleLayout(pos, item); - item->updateItemContents(); - if (pos == 0) - m_itemView->scrollContentsBy(qreal(0.0), - item->effectiveSizeHint(Qt::PreferredSize).height()); - } -} - -void AbstractItemContainer::findFirstAndLastVisibleBufferIndex(int &firstVisibleBufferIndex, - int &lastVisibleBufferIndex, - const QRectF &viewRect, - bool fullyVisible) const -{ - if (layout() && !layout()->isActivated()) - layout()->activate(); - - firstVisibleBufferIndex = -1; - lastVisibleBufferIndex = -1; - - int count = m_items.count(); - for (int i = 0; i < count; ++i) { - if (itemVisibleInView(m_items.at(i), viewRect, fullyVisible)) { - if (firstVisibleBufferIndex == -1) - firstVisibleBufferIndex = i; - lastVisibleBufferIndex = i; - } - else if ( lastVisibleBufferIndex != -1 ) - break; // lastVisibleBufferIndex is already set - } -} - -/*virtual*/ -int AbstractItemContainer::maxItemCountInItemBuffer() const -{ - if (m_itemView && !m_itemView->boundingRect().isEmpty()) - { - return m_itemView->indexCount(); - } - return 0; -} - - -void AbstractItemContainer::themeChange() -{ - for (int i = 0; i <m_items.count(); ++i) - m_items.at(i)->themeChange(); -} - -void AbstractItemContainer::updateContent() -{ - for (int i = 0; i <m_items.count(); ++i) - m_items.at(i)->updateItemContents(); -} - -void AbstractItemContainer::setSubtreeCacheEnabled(bool enabled) -{ - for (int i = 0; i <m_items.count(); ++i) - m_items.at(i)->setSubtreeCacheEnabled(enabled); - if (m_prototype) - m_prototype->setSubtreeCacheEnabled(enabled); -} - -void AbstractItemContainer::setTwoColumns(const bool enabled) -{ - if (m_twoColumns == enabled) - return; - - m_twoColumns = enabled; - - for (int i = 0; i < m_items.count(); ++i) - m_items.at(i)->setTwoColumns(enabled); -} - -bool AbstractItemContainer::twoColumns() -{ - return m_twoColumns; -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemcontainer.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemcontainer.h deleted file mode 100644 index 7373f66deb..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemcontainer.h +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ABSTRACTITEMCONTAINER_H -#define ABSTRACTITEMCONTAINER_H - -#include <QModelIndex> - -#include "gvbwidget.h" - -class QGraphicsWidget; -class AbstractItemView; -class AbstractViewItem; - -class AbstractItemContainer : public GvbWidget -{ - Q_OBJECT -public: - AbstractItemContainer(int bufferSize, QGraphicsWidget *parent=0); - virtual ~AbstractItemContainer(); - - virtual void addItem(const QModelIndex &index); - virtual void removeItem(const QModelIndex &index); - - virtual void setItemView(AbstractItemView *view); - virtual void setItemPrototype(AbstractViewItem *ptype); - virtual void reset(); - virtual int itemCount() const; - virtual AbstractViewItem* itemAt(const int row) const; - AbstractViewItem* findItemByIndex(const QModelIndex &index) const; - AbstractViewItem *prototype(); - AbstractViewItem *firstItem(); - void updateContent(); - void themeChange(); - int bufferSize() const; - virtual void setTwoColumns(const bool enabled); - bool twoColumns(); - - void setSubtreeCacheEnabled(const bool enabled); - virtual void setListItemCaching(const bool enabled, const int index) = 0; - -protected: - virtual void adjustVisibleContainerSize(const QSizeF &size) = 0; - virtual void addItemToVisibleLayout(int index, AbstractViewItem *item) = 0; - virtual void removeItemFromVisibleLayout(AbstractViewItem *item) = 0; - - virtual bool event(QEvent *e); - virtual bool eventFilter(QObject *obj, QEvent *event); - virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); - virtual int maxItemCountInItemBuffer() const; - bool itemVisibleInView(AbstractViewItem* item, const QRectF &viewRect, bool fullyVisible = true) const; - -protected: - void updateItemBuffer(); - void findFirstAndLastVisibleBufferIndex(int &firstVisibleBufferIndex, - int &lastVisibleBufferIndex, - const QRectF &viewRect, - bool fullyVisible) const; - QList<AbstractViewItem*> m_items; - AbstractItemView *m_itemView; - AbstractViewItem *m_prototype; - int m_bufferSize; - -private: - void insertItem(int pos, const QModelIndex &index); - bool m_twoColumns; - - Q_DISABLE_COPY(AbstractItemContainer) -}; - -#endif // ABSTRACTITEMCONTAINER_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemview.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemview.cpp deleted file mode 100644 index 961cf4e03c..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemview.cpp +++ /dev/null @@ -1,425 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include <QGraphicsLayout> - -#include "abstractitemview.h" -#include "abstractviewitem.h" -#include "scrollbar.h" - -AbstractItemView::AbstractItemView(QGraphicsWidget *parent) - : AbstractScrollArea(parent), - m_model(0), - m_rootIndex(), - m_container(0), - m_selectionModel(0), - m_currentIndex(), - m_scroller() -{ - setRootIndex(QModelIndex()); -} - -/*virtual*/ -AbstractItemView::~AbstractItemView() -{ -} - -/*virtual*/ -void AbstractItemView::setModel(QAbstractItemModel *model, AbstractViewItem *prototype) -{ - if (m_model == model || !model) - return; - - if (m_model) { - disconnect(m_model, SIGNAL(destroyed()), - this, SLOT(_q_modelDestroyed())); - disconnect(m_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), - this, SLOT(dataChanged(QModelIndex,QModelIndex))); - disconnect(m_model, SIGNAL(rowsInserted(QModelIndex,int,int)), - this, SLOT(rowsInserted(QModelIndex,int,int))); - disconnect(m_model, SIGNAL(rowsRemoved(QModelIndex,int,int)), - this, SLOT(rowsRemoved(QModelIndex,int,int))); - disconnect(m_model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(rowsAboutToBeRemoved(QModelIndex,int,int))); - disconnect(m_model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(rowsAboutToBeInserted(QModelIndex,int,int))); - disconnect(m_model, SIGNAL(columnsInserted(QModelIndex,int,int)), - this, SLOT(columnsInserted(QModelIndex,int,int))); - disconnect(m_model, SIGNAL(columnsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(columnsAboutToBeInserted(QModelIndex,int,int))); - disconnect(m_model, SIGNAL(columnsRemoved(QModelIndex,int,int)), - this, SLOT(columnsRemoved(QModelIndex,int,int))); - disconnect(m_model, SIGNAL(columnsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(columnsAboutToBeRemoved(QModelIndex,int,int))); - disconnect(m_model, SIGNAL(modelReset()), this, SLOT(reset())); - disconnect(m_model, SIGNAL(layoutChanged()), this, SLOT(_q_layoutChanged())); - - m_model = 0; - } - - setSelectionModel(0); - - m_currentIndex = QModelIndex(); - m_rootIndex = QModelIndex(); - - m_model = model; - - Q_ASSERT_X(m_model->index(0,0) == m_model->index(0,0), - "AbstractItemView::setModel", - "A model should return the exact same index " - "(including its internal id/pointer) when asked for it twice in a row."); - Q_ASSERT_X(m_model->index(0,0).parent() == QModelIndex(), - "AbstractItemView::setModel", - "The parent of a top level index should be invalid"); - - - connect(m_model, SIGNAL(destroyed()), this, SLOT(modelDestroyed())); - connect(m_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), - this, SLOT(dataChanged(QModelIndex,QModelIndex))); - connect(m_model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(rowsAboutToBeInserted(QModelIndex,int,int))); - connect(m_model, SIGNAL(rowsInserted(QModelIndex,int,int)), - this, SLOT(rowsInserted(QModelIndex,int,int))); - connect(m_model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(rowsAboutToBeRemoved(QModelIndex,int,int))); - connect(m_model, SIGNAL(rowsRemoved(QModelIndex,int,int)), - this, SLOT(rowsRemoved(QModelIndex,int,int))); - connect(m_model, SIGNAL(modelReset()), this, SLOT(reset())); - connect(m_model, SIGNAL(layoutChanged()), this, SLOT(layoutChanged())); - - setSelectionModel(new QItemSelectionModel(m_model)); - - if (prototype && m_container) { - m_container->setItemPrototype(prototype); - m_container->reset(); - } -} - -/*virtual*/ -void AbstractItemView::setContainer(AbstractItemContainer *container) -{ - m_container = container; - m_container->setItemView(this); - m_container->setParentItem(viewport()); - - viewport()->setFlag( - QGraphicsItem::ItemClipsChildrenToShape, true); - m_scroller.setScrollable(this); - installEventFilter(&m_scroller); -} - -/*virtual*/ -void AbstractItemView::setRootIndex(const QModelIndex &index) -{ - m_rootIndex = index; - // TODO fix this if we change index, container should be updated? Or do we need root index? -} - -/*virtual*/ -int AbstractItemView::indexCount() const -{ - if (m_model) - return m_model->rowCount(m_rootIndex); - return 0; -} - -/*virtual*/ -QAbstractItemModel* AbstractItemView::model() const -{ - return m_model; -} - -/*virtual*/ -QModelIndex AbstractItemView::nextIndex(const QModelIndex &index) const -{ - if (!m_model) - return QModelIndex(); - - if (index.isValid()) - return m_model->index(index.row() + 1, 0, m_rootIndex); - else - return m_model->index(0, 0, m_rootIndex); -} - -/*virtual*/ -QModelIndex AbstractItemView::previousIndex(const QModelIndex &index) const -{ - if (!m_model) - return QModelIndex(); - - if (index.isValid()) - return m_model->index(index.row() - 1, 0, m_rootIndex); - else - return m_model->index(m_model->rowCount(m_rootIndex) - 1, 0, m_rootIndex); -} - -/*virtual*/ -void AbstractItemView::setItemPrototype(AbstractViewItem* prototype) -{ - if (prototype && m_container) { - m_container->setItemPrototype(prototype); - m_container->reset(); - } -} - -void AbstractItemView::setSelectionModel(QItemSelectionModel *smodel) -{ - if (smodel && smodel->model() != m_model) { - return; - } - if (m_selectionModel) { - disconnect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(currentSelectionChanged(QItemSelection,QItemSelection))); - - disconnect(m_selectionModel, SIGNAL(currentChanged(QModelIndex,QModelIndex)), - this, SLOT(currentIndexChanged(QModelIndex,QModelIndex))); - - delete m_selectionModel; - m_selectionModel = 0; - } - - m_selectionModel = smodel; - - if (m_selectionModel) { - connect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(currentSelectionChanged(QItemSelection,QItemSelection))); - connect(m_selectionModel, SIGNAL(currentChanged(QModelIndex,QModelIndex)), - this, SLOT(currentIndexChanged(QModelIndex,QModelIndex))); - } -} - -/*virtual*/ -void AbstractItemView::currentIndexChanged(const QModelIndex ¤t, const QModelIndex &previous) -{ - Q_UNUSED(previous) - - if (current != m_currentIndex) - m_currentIndex = current; -} - -/*virtual*/ -void AbstractItemView::currentSelectionChanged(const QItemSelection &selected, - const QItemSelection &deselected) -{ - Q_UNUSED(selected) - Q_UNUSED(deselected) -} - -/*virtual*/ -void AbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight) -{ - Q_UNUSED(topLeft) - Q_UNUSED(bottomRight) - // TODO implement if we like to edit view items. -} - -/*virtual*/ -void AbstractItemView::rowsAboutToBeInserted(const QModelIndex &index, int start, int end) -{ - Q_UNUSED(index) - Q_UNUSED(start) - Q_UNUSED(end) - - // TODO implement -} - -/*virtual*/ -void AbstractItemView::rowsAboutToBeRemoved(const QModelIndex &index,int start, int end) -{ - Q_UNUSED(index) - Q_UNUSED(start) - Q_UNUSED(end) -} - -/*virtual*/ -void AbstractItemView::rowsRemoved(const QModelIndex &parent,int start, int end) -{ - Q_UNUSED(parent) - Q_UNUSED(start) - Q_UNUSED(end) - - if (start <= m_currentIndex.row() && m_currentIndex.row() <= end) { - QModelIndex newCurrentIndex = m_model->index(start, 0, m_rootIndex); - if (!newCurrentIndex.isValid()) { - newCurrentIndex = m_model->index(qMax(0,start - 1), 0, m_rootIndex); - } - - if (m_selectionModel) { - m_selectionModel->setCurrentIndex(newCurrentIndex, QItemSelectionModel::NoUpdate); - } - } - for (int i = end; i >= start; --i) //The items are already removed from the model. - m_container->removeItem(QModelIndex()); // Indexes are already invalid. -} - -/*virtual*/ -void AbstractItemView::reset() -{ - m_rootIndex = QModelIndex(); - - if (m_container) - m_container->reset(); - - setCurrentIndex(QModelIndex()); - - ScrollBar *sb = verticalScrollBar(); - - if (sb) - sb->setSliderSize(0); -} - -/*virtual*/ -void AbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end) -{ - if (!m_container) - return; - - for (int i = start; i <= end; ++i) - m_container->addItem(m_model->index(i, 0, parent)); - - refreshContainerGeometry(); -} - -/*virtual*/ -void AbstractItemView::modelDestroyed() -{ - m_model = 0; - setSelectionModel(0); - reset(); -} - -/*virtual*/ -void AbstractItemView::layoutChanged() -{ - m_container->reset(); -} - -bool AbstractItemView::event(QEvent *e) -{ - bool result = AbstractScrollArea::event(e); - if (e && e->type()==QEvent::LayoutRequest) { - refreshContainerGeometry(); - result = true; - } - if (e && e->type()==QEvent::GraphicsSceneResize) { - m_scroller.stopScrolling(); - refreshContainerGeometry(); - - m_container->resize(this->size().width()-verticalScrollBar()->size().width(), - m_container->preferredHeight()); - - if (verticalScrollBar()->sliderPosition() > verticalScrollBar()->sliderSize()) - verticalScrollBar()->setSliderPosition(verticalScrollBar()->sliderSize()); - - result = true; - } - return result; -} - -void AbstractItemView::setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags selectionFlag) -{ - if (m_selectionModel) - m_selectionModel->setCurrentIndex(index, selectionFlag); -} - -void AbstractItemView::refreshContainerGeometry() -{ - if (!m_container || !m_model) - return; - - if (m_container->layout() && !m_container->layout()->isActivated()) - m_container->layout()->activate(); - - ScrollBar *sb = verticalScrollBar(); - - if (sb) { - AbstractViewItem *item = m_container->itemAt(0); - if (item) { - qreal oneItemH = item->size().height(); - sb->setSliderSize(oneItemH*m_model->rowCount(m_rootIndex)-size().height()); - } - if (!sb->isVisible() && verticalScrollBarPolicy() != Qt::ScrollBarAlwaysOff && - contentsRect().height() < m_container->boundingRect().height()) - sb->show(); - } -} - -void AbstractItemView::scrollContentsBy(qreal dx, qreal dy) -{ - AbstractScrollArea::scrollContentsBy(dx, dy); - - if (!viewport() || !m_container || (m_container && m_container->itemCount() <= 0) || - !m_model || (m_model && m_model->rowCount() <= 0) || - (viewport() && viewport()->boundingRect().height() < contentsRect().height())) - return; - - qreal itemH = 1; - - AbstractViewItem *item = m_container->itemAt(0); - if (item && item->size().height() > 1) { - itemH = item->size().height(); - } else if (item && item->preferredHeight() > 1) { - itemH = item->preferredHeight(); - } - - qreal vpx = m_container->pos().x(); - qreal vpy = m_container->pos().y(); - - if ((vpy+m_container->size().height()-dy > pos().y()+size().height()) && - (qAbs(dy) < itemH) && (vpy-dy <= 0)) { - m_container->setPos(vpx, vpy-dy); - } else { - qreal vPos = verticalScrollBar()->sliderPosition(); - int startRow = m_model->index(vPos/itemH, 0).row(); - int itemsInContainer = m_container->itemCount(); - - for (int i = 0; i<itemsInContainer; ++i) { - AbstractViewItem *changedItem = m_container->itemAt(i); - changedItem->setModelIndex(m_model->index(startRow+i,0)); - m_container->setListItemCaching(listItemCaching(), i); - } - - qreal diff = vPos-startRow*itemH; - - if (diff < 0) - m_container->setPos(vpx, diff); - else - m_container->setPos(vpx, -diff); - } -} - -void AbstractItemView::changeTheme() -{ - if (m_container) - m_container->themeChange(); -} - -void AbstractItemView::updateViewContent() -{ - if (m_container) - m_container->updateContent(); -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemview.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemview.h deleted file mode 100644 index 8cd295ba89..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractitemview.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ABSTRACTITEMVIEW_H -#define ABSTRACTITEMVIEW_H - -#include <QAbstractItemModel> -#include <QGraphicsSceneResizeEvent> -#include <QPersistentModelIndex> -#include <QItemSelection> - -#include "listitemcontainer.h" -#include "abstractscrollarea.h" -#include "scroller.h" - -class QItemSelectionModel; - -class AbstractItemView : public AbstractScrollArea -{ - Q_OBJECT -public: - AbstractItemView(QGraphicsWidget *parent = 0); - virtual ~AbstractItemView(); - virtual void setContainer(AbstractItemContainer *container); - virtual void setModel(QAbstractItemModel *model, AbstractViewItem *prototype); - virtual QAbstractItemModel* model() const; - virtual void setItemPrototype(AbstractViewItem* prototype); - - void setSelectionModel(QItemSelectionModel *smodel); - - virtual QModelIndex nextIndex(const QModelIndex &index) const; - virtual QModelIndex previousIndex(const QModelIndex &index) const; - - virtual int indexCount() const; - - void refreshContainerGeometry(); // TODO Can this be moved to scroll area? - - void updateViewContent(); - virtual void scrollContentsBy(qreal dx, qreal dy); - - virtual bool listItemCaching() const = 0; - virtual void setListItemCaching(bool enabled) = 0; - -protected: - virtual bool event(QEvent *e); - void changeTheme(); - -public slots: - virtual void setRootIndex(const QModelIndex &index); - void setCurrentIndex(const QModelIndex &index, - QItemSelectionModel::SelectionFlags selectionFlag = QItemSelectionModel::NoUpdate); -protected slots: - virtual void currentIndexChanged(const QModelIndex ¤t, const QModelIndex &previous); - virtual void currentSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); - virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); - virtual void rowsAboutToBeInserted(const QModelIndex &index, int start, int end); - virtual void rowsInserted(const QModelIndex &parent, int start, int end); - virtual void rowsAboutToBeRemoved(const QModelIndex &index,int start, int end); - virtual void rowsRemoved(const QModelIndex &parent,int start, int end); - virtual void modelDestroyed(); - virtual void layoutChanged(); - virtual void reset(); - -protected: - - QAbstractItemModel *m_model; - QPersistentModelIndex m_rootIndex; - AbstractItemContainer *m_container; - QItemSelectionModel *m_selectionModel; - QPersistentModelIndex m_currentIndex; - -private: - Q_DISABLE_COPY(AbstractItemView) - Scroller m_scroller; -}; - - -#endif // ABSTRACTITEMVIEW_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractscrollarea.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractscrollarea.cpp deleted file mode 100644 index 39847b8edb..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractscrollarea.cpp +++ /dev/null @@ -1,236 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QGraphicsSceneResizeEvent> -#include <QGraphicsWidget> -#include <QDebug> -#include "abstractscrollarea.h" -#include "scrollbar.h" - -AbstractScrollArea::AbstractScrollArea(QGraphicsWidget *parent) - : GvbWidget(parent) - , m_viewport(0) - , m_horizontalScrollBar(0) - , m_verticalScrollBar(0) - , m_prevHorizontalValue(0.0) - , m_prevVerticalValue(0.0) -{ - setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - setContentsMargins(0, 0, 0, 0); - - m_horizontalScrollBar = new ScrollBar(Qt::Horizontal, this); - m_horizontalScrollBar->hide(); - m_horizontalScrollBar->setContentsMargins(0, 0, 0, 0); - m_horizontalScrollBarPolicy = Qt::ScrollBarAsNeeded; - m_horizontalScrollBar->setZValue(zValue()+1); // Raise scroll bar to top - m_horizontalScrollBar->setVisible(false); - - connect(m_horizontalScrollBar, SIGNAL(sliderPositionChange(qreal)), - this, SLOT(horizontalScroll(qreal))); - connect(m_horizontalScrollBar, SIGNAL(sliderPressed()), - this, SLOT(horizontalScrollStart())); - - m_verticalScrollBar = new ScrollBar(Qt::Vertical, this); - m_verticalScrollBar->hide(); - m_verticalScrollBar->setContentsMargins(0, 0, 0, 0); - m_verticalScrollBarPolicy = Qt::ScrollBarAsNeeded; - m_verticalScrollBar->setZValue(zValue()+1); // Raise scroll bar to top - m_verticalScrollBar->setVisible(false); - - connect(m_verticalScrollBar, SIGNAL(sliderPositionChange(qreal)), - this, SLOT(verticalScroll(qreal))); - connect(m_verticalScrollBar, SIGNAL(sliderPressed()), - this, SLOT(verticalScrollStart())); - - QGraphicsWidget *viewport = new QGraphicsWidget; - setViewport(viewport); -} - -AbstractScrollArea::~AbstractScrollArea() -{ -} - -ScrollBar *AbstractScrollArea::verticalScrollBar() const -{ - return m_verticalScrollBar; -} - -ScrollBar *AbstractScrollArea::horizontalScrollBar() const -{ - return m_horizontalScrollBar; -} - -void AbstractScrollArea::setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy policy) -{ - m_horizontalScrollBarPolicy = policy; -} - -void AbstractScrollArea::setVerticalScrollBarPolicy(Qt::ScrollBarPolicy policy) -{ - m_verticalScrollBarPolicy = policy; -} - -Qt::ScrollBarPolicy AbstractScrollArea::verticalScrollBarPolicy() const -{ - return m_verticalScrollBarPolicy; -} - -Qt::ScrollBarPolicy AbstractScrollArea::horizontalScrollBarPolicy() const -{ - return m_horizontalScrollBarPolicy; -} - -QGraphicsWidget *AbstractScrollArea::viewport() const -{ - return m_viewport; -} - -void AbstractScrollArea::setViewport(QGraphicsWidget *viewport) -{ - if (m_viewport) { - m_viewport->setParentItem(0); - - QList<QGraphicsItem*> children = m_viewport->childItems(); - - foreach (QGraphicsItem *child, children) - child->setParentItem(0); - - delete m_viewport; - } - - m_viewport = viewport; - - if (viewport) { - - m_viewport->setParentItem(this); - m_viewport->setContentsMargins(0, 0, 0, 0); - - adjustScrollBars(); - } - - emit viewportChanged(viewport); -} - -bool AbstractScrollArea::event(QEvent *e) -{ - if (e->type() == QEvent::ApplicationLayoutDirectionChange - || e->type() == QEvent::LayoutDirectionChange) { - } else if (e->type() == QEvent::GraphicsSceneResize) { - QGraphicsSceneResizeEvent *event = - static_cast<QGraphicsSceneResizeEvent*>(e); - - QSizeF newSize = event->newSize(); - QRectF hrect = m_horizontalScrollBar->boundingRect(); - QRectF vrect = m_verticalScrollBar->boundingRect(); - - QSizeF vpSize = newSize; - - if (m_horizontalScrollBarPolicy != Qt::ScrollBarAlwaysOff) - vpSize.setHeight(newSize.height() - hrect.height()); - if (m_verticalScrollBarPolicy != Qt::ScrollBarAlwaysOff) - vpSize.setWidth(newSize.width() - vrect.width()); - - m_viewport->resize(vpSize); - - adjustScrollBars(); - } - - return QGraphicsWidget::event(e); -} - - -void AbstractScrollArea::scrollContentsBy(qreal dx, qreal dy) -{ - Q_UNUSED(dx) - Q_UNUSED(dy) - prepareGeometryChange(); -} - -void AbstractScrollArea::verticalScrollStart() -{ - m_prevVerticalValue = m_verticalScrollBar->sliderPosition(); -} - -void AbstractScrollArea::verticalScroll(qreal value) -{ - qreal dy = value - m_prevVerticalValue; - if (!qFuzzyCompare(dy,qreal(0.0))) { - scrollContentsBy(0.0, dy); - m_prevVerticalValue = value; - } -} - -void AbstractScrollArea::horizontalScrollStart() -{ - m_prevHorizontalValue = m_horizontalScrollBar->sliderPosition(); -} - -void AbstractScrollArea::horizontalScroll(qreal value) -{ - qreal dx = value - m_prevHorizontalValue; - if (!qFuzzyCompare(dx,qreal(0.0))) { - scrollContentsBy(dx, 0.0); - m_prevHorizontalValue = value; - } -} - -void AbstractScrollArea::adjustScrollBars() -{ - if (m_horizontalScrollBarPolicy == Qt::ScrollBarAlwaysOff) { - m_horizontalScrollBar->hide(); - } else { - m_horizontalScrollBar->show(); - - QRectF sbgeom = boundingRect(); - - sbgeom.setTop(sbgeom.bottom() - m_horizontalScrollBar->boundingRect().height()); - sbgeom.setRight(sbgeom.right() - m_verticalScrollBar->boundingRect().width()); - m_horizontalScrollBar->setGeometry(sbgeom); - } - - if (m_verticalScrollBarPolicy == Qt::ScrollBarAlwaysOff) { - m_verticalScrollBar->hide(); - QRectF sbgeom = boundingRect(); - sbgeom.setLeft(sbgeom.right()); - sbgeom.setBottom(sbgeom.bottom()); - m_verticalScrollBar->setGeometry(sbgeom); - } else { - m_verticalScrollBar->show(); - - QRectF sbgeom = boundingRect(); - - sbgeom.setLeft(sbgeom.right() - m_verticalScrollBar->boundingRect().width()); - if (m_horizontalScrollBarPolicy != Qt::ScrollBarAlwaysOff) - sbgeom.setBottom(sbgeom.bottom() - m_horizontalScrollBar->boundingRect().height()); - m_verticalScrollBar->setGeometry(sbgeom); - } -} - - - - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractscrollarea.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractscrollarea.h deleted file mode 100644 index f681ca9fce..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractscrollarea.h +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ABSTRACTSCROLLAREA_H -#define ABSTRACTSCROLLAREA_H - -#include "gvbwidget.h" - -class ScrollBar; -class QGraphicsGridLayout; - -class AbstractScrollArea : public GvbWidget -{ - Q_OBJECT - -public: - - AbstractScrollArea(QGraphicsWidget *parent = 0); - ~AbstractScrollArea(); - -public: - - void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy policy); - void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy policy); - Qt::ScrollBarPolicy verticalScrollBarPolicy() const; - Qt::ScrollBarPolicy horizontalScrollBarPolicy() const; - - QGraphicsWidget *viewport() const; - void setViewport(QGraphicsWidget *viewport); - - ScrollBar *verticalScrollBar() const; - ScrollBar *horizontalScrollBar() const; - -signals: - - void viewportChanged(QGraphicsWidget *viewport); - -protected: - - virtual bool event(QEvent *e); - virtual void scrollContentsBy(qreal dx, qreal dy); - -private slots: - - void verticalScrollStart(); - void verticalScroll(qreal); - void horizontalScrollStart(); - void horizontalScroll(qreal); - -private: - - void adjustScrollBars(); - - QGraphicsWidget *m_viewport; - ScrollBar *m_horizontalScrollBar; - ScrollBar *m_verticalScrollBar; - Qt::ScrollBarPolicy m_verticalScrollBarPolicy; - Qt::ScrollBarPolicy m_horizontalScrollBarPolicy; - qreal m_prevHorizontalValue; - qreal m_prevVerticalValue; -}; - -#endif // ABSTRACTSCROLLAREA_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractviewitem.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractviewitem.cpp deleted file mode 100644 index 6a6df15e23..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractviewitem.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "abstractviewitem.h" - -AbstractViewItem::AbstractViewItem(QGraphicsWidget *parent) - : GvbWidget(parent), - m_index(), - m_itemView(0), - m_prototype(0) -{ -} - -/*virtual*/ -AbstractViewItem::~AbstractViewItem() -{ -} - -QModelIndex AbstractViewItem::modelIndex() const -{ - return m_index; -} - -AbstractViewItem *AbstractViewItem::prototype() const -{ - return m_prototype; -} - -AbstractItemView *AbstractViewItem::itemView() const -{ - return m_itemView; -} - -void AbstractViewItem::setItemView(AbstractItemView *itemView) -{ - m_itemView = itemView; -} - -void AbstractViewItem::setModelIndex(const QModelIndex &index) -{ - if (m_index != index) { - m_index = index; - updateItemContents(); - } -} - -/*virtual*/ -QSizeF AbstractViewItem::effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint) const -{ - return GvbWidget::effectiveSizeHint(which, constraint); -} - -/*virtual*/ -bool AbstractViewItem::event(QEvent *e) -{ - return QGraphicsWidget::event(e); -} - -/*virtual*/ -void AbstractViewItem::updateItemContents() -{ - ; // No impl yet -} - -/*virtual*/ -void AbstractViewItem::themeChange() -{ - ; // No impl yet -} - -/*virtual*/ -void AbstractViewItem::setSubtreeCacheEnabled(bool enabled) -{ - Q_UNUSED(enabled) - ; // No impl -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractviewitem.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractviewitem.h deleted file mode 100644 index 4f9fbf4623..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/abstractviewitem.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ABSTRACTVIEWITEM_H -#define ABSTRACTVIEWITEM_H - -#include <QModelIndex> - -#include "gvbwidget.h" -#include "abstractitemview.h" -#include "listitem.h" - -class QGraphicsWidget; - -class AbstractViewItem : public GvbWidget -{ - Q_OBJECT -public: - AbstractViewItem(QGraphicsWidget *parent = 0); - virtual ~AbstractViewItem(); - - virtual AbstractViewItem *newItemInstance() = 0; - - QModelIndex modelIndex() const; - - void setModelIndex(const QModelIndex &index); - - AbstractViewItem *prototype() const; - AbstractItemView *itemView() const; - void setItemView(AbstractItemView *itemView) ; - virtual void updateItemContents(); - virtual void themeChange(); - - virtual void setSubtreeCacheEnabled(bool enabled); - - virtual QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; - - virtual void setModel(QAbstractItemModel *model) = 0; - virtual QVariant data(int role) const = 0; - virtual void setData(const QVariant &value, int role = Qt::DisplayRole) = 0; - virtual void setTwoColumns(const bool enabled) = 0; - -protected: - virtual bool event(QEvent *e); - - QPersistentModelIndex m_index; - -private: - Q_DISABLE_COPY(AbstractViewItem) - - AbstractItemView *m_itemView; - AbstractViewItem *m_prototype; - -}; - -#endif // ABSTRACTVIEWITEM_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/backgrounditem.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/backgrounditem.cpp deleted file mode 100644 index 9f5f16d373..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/backgrounditem.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QStyleOptionGraphicsItem> -#include <QGraphicsSceneResizeEvent> -#include <QPainter> -#include <QRectF> - -#include "backgrounditem.h" -#include "theme.h" - -BackgroundItem::BackgroundItem(const QString &filename, QGraphicsWidget *parent) - : GvbWidget(parent), - m_background(), - m_fileName(filename) -{ - setContentsMargins(0,0,0,0); - - connect(Theme::p(), SIGNAL(themeChanged()), this, SLOT(themeChange())); -} - -BackgroundItem::~BackgroundItem() -{ -} - -void BackgroundItem::resizeEvent(QGraphicsSceneResizeEvent *event) -{ - GvbWidget::resizeEvent(event); - m_background = Theme::p()->pixmap(m_fileName, size().toSize()); -} - -void BackgroundItem::paint(QPainter *painter, - const QStyleOptionGraphicsItem *option, - QWidget *widget) -{ - Q_UNUSED(widget) - painter->setCompositionMode(QPainter::CompositionMode_Source); - painter->drawPixmap(option->exposedRect, m_background, option->exposedRect); -} - -void BackgroundItem::themeChange() -{ - m_background = Theme::p()->pixmap(m_fileName, size().toSize()); - update(); -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/backgrounditem.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/backgrounditem.h deleted file mode 100644 index 0cb0ee778c..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/backgrounditem.h +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef __BACKGROUNDITEM_H__ -#define __BACKGROUNDITEM_H__ - -#include <QPixmap> - -#include "gvbwidget.h" - -class QGraphicsWidget; - -class BackgroundItem : public GvbWidget -{ - Q_OBJECT - -public: - BackgroundItem(const QString &filename, QGraphicsWidget *parent=0); - ~BackgroundItem(); - - void paint(QPainter *painter, - const QStyleOptionGraphicsItem *option, - QWidget *widget = 0); - void resizeEvent(QGraphicsSceneResizeEvent *event); - -public slots: - void themeChange(); - -private: - QPixmap m_background; - QString m_fileName; -}; - -#endif /* __BACKGROUNDITEM_H__ */ diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/button.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/button.cpp deleted file mode 100644 index b8bd55789d..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/button.cpp +++ /dev/null @@ -1,196 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui> -#include "button.h" -#include "theme.h" - -static const int MinTextWidthAsChars = 8; - -class ButtonPrivate { - Q_DECLARE_PUBLIC(Button) - -public: - - ButtonPrivate(Button *button) - : down(false) - , q_ptr(button) - { - textItem = new QGraphicsSimpleTextItem(q_ptr); - } - - QGraphicsSimpleTextItem *textItem; - bool down; - Button *q_ptr; -}; - -Button::Button(const QString &text, QGraphicsItem *parent, QSizeF minimumSize) - : QGraphicsWidget(parent) - , d_ptr(new ButtonPrivate(this)), m_background(), m_selected(false) -{ - Q_D(Button); - setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); - //setCacheMode(QGraphicsItem::ItemCoordinateCache); - if(minimumSize.isValid()) - setMinimumSize(minimumSize); - setContentsMargins(0, 0, 0, 0); - d->textItem->setText(text); - prepareGeometryChange(); - - m_font = Theme::p()->font(Theme::MenuItem); - d->textItem->setFont(m_font); - connect(Theme::p(), SIGNAL(themeChanged()), this, SLOT(themeChange())); -} - -Button::~Button() -{ - delete d_ptr; -} - -bool Button::isDown() -{ - Q_D(Button); - - return d->down; -} - -void Button::setText(const QString &text) -{ - Q_D(Button); - d->textItem->setText(text); - update(); -} - -QString Button::text() -{ - Q_D(Button); - return d->textItem->text(); -} - -void Button::paint(QPainter *painter, - const QStyleOptionGraphicsItem *option, - QWidget *widget) -{ - Q_UNUSED(widget); - Q_UNUSED(option); - - if(!m_background.isNull()) - painter->drawPixmap(QPoint(), m_background); - if(m_selected) { - painter->setBrush(Qt::black); - painter->setOpacity(0.2); - painter->drawRect(boundingRect().toRect()); - } -} - -QSizeF Button::sizeHint(Qt::SizeHint which, - const QSizeF &constraint) const -{ - Q_D(const Button); - - switch (which) - { - case Qt::MinimumSize: - { - QFontMetricsF fm(d->textItem->font()); - return QSizeF(MinTextWidthAsChars * fm.maxWidth(), fm.height()); - } - case Qt::PreferredSize: - { - QFontMetricsF fm(d->textItem->font()); - return QSizeF(fm.horizontalAdvance(d->textItem->text()), fm.height()); - } - default: - return QGraphicsWidget::sizeHint(which, constraint); - } -} - -void Button::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(Button); - - if (event->button() != Qt::LeftButton || - !sceneBoundingRect().contains(event->scenePos())) - return; - - d->down = true; - - prepareGeometryChange(); - emit pressed(); - -} - -void Button::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(Button); - - if (!d->down || event->button() != Qt::LeftButton) - return; - - d->down = false; - - prepareGeometryChange(); - - emit released(); - - if (sceneBoundingRect().contains(event->scenePos())) - emit clicked(); -} - -void Button::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_UNUSED(event); -} - -void Button::resizeEvent(QGraphicsSceneResizeEvent *event) -{ - Q_D(Button); - QGraphicsWidget::resizeEvent(event); - - QRectF rect = d->textItem->boundingRect(); - QRectF buttonrect = this->boundingRect(); - d->textItem->setPos((buttonrect.width() - rect.width())/2, (buttonrect.height() - rect.height())/2 ); - - QSize currentSize = buttonrect.size().toSize(); - if( m_background.size() != currentSize && (currentSize.width() > 0 && currentSize.height() > 0) ) { - m_background = Theme::p()->pixmap("status_field_middle.svg", buttonrect.size().toSize()); - } -} - -void Button::setBackground(QPixmap& background) -{ - m_background = background; -} - -void Button::themeChange() -{ - Q_D(Button); - - m_font = Theme::p()->font(Theme::MenuItem); - d->textItem->setFont(m_font); -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/button.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/button.h deleted file mode 100644 index 8e76b88463..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/button.h +++ /dev/null @@ -1,89 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef BUTTON_H -#define BUTTON_H - -#include <QGraphicsWidget> - -class ButtonPrivate; -class QTextDocument; - -class QPixmap; -class QFont; - -class Button : public QGraphicsWidget -{ - Q_OBJECT - Q_DECLARE_PRIVATE(Button) - -public: - - Button(const QString &text, QGraphicsItem *parent=0, QSizeF minimumSize = QSizeF()); - virtual ~Button(); - -signals: - - void clicked(bool checked = false); - void pressed(); - void released(); - -public slots: - - void themeChange(); - void setText(const QString &text); - QString text(); - -public: - - void setBackground(QPixmap& background); - bool isDown(); - void select(bool select){m_selected = select;} - void click() {emit clicked();} - -private: - - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget = 0); - QSizeF sizeHint(Qt::SizeHint which, - const QSizeF &constraint = QSizeF()) const; - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void resizeEvent(QGraphicsSceneResizeEvent *event); - -private: - Q_DISABLE_COPY(Button) - ButtonPrivate *d_ptr; - QPixmap m_background; - QFont m_font; - bool m_selected; -}; - -#endif // BUTTON_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/commandline.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/commandline.cpp deleted file mode 100644 index 226c60cec8..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/commandline.cpp +++ /dev/null @@ -1,183 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QStringList> -#include <QDebug> - -#include "commandline.h" - -static void usage(const char *appname) -{ - Q_UNUSED(appname); - printf(" GraphicsViewBenchmark related options:\n"); - printf(" -h,-help,--help: This help\n"); - printf(" -resolution : UI resolution in format WxH where width and height are positive values\n"); - printf(" -opengl : Enables OpenGL usage. Building PRECONDITIONS: QT_NO_OPENGL is off.\n"); - printf(" -manual : Run test manually \n"); - printf("\n The following options are available in manual mode:\n"); - printf(" -rotation : UI rotation in degrees\n"); - printf(" -subtree-cache : Enables usage of subtree caching method\n"); - printf(" -fps : Output FPS count to stdout during application execution\n"); - printf(" -items : Count of items created to the list\n"); - printf("\n"); -} - -static inline bool argumentOnlyAvailableInManualMode(const char *arg) -{ - return (strcmp(arg, "-rotation") == 0) - || (strcmp(arg, "-subtree-cache") == 0) - || (strcmp(arg, "-fps") == 0) - || (strcmp(arg, "-items") == 0); -} - -bool readSettingsFromCommandLine(int argc, char *argv[], - Settings& config) -{ - bool builtWithOpenGL = false; - Settings::Options options; - -#ifndef QT_NO_OPENGL - builtWithOpenGL = true; -#endif - for (int i = 1; i < argc; ++i) { - if (strcmp(argv[i], "-manual") == 0) { - options |= Settings::ManualTest; - argv[i] = 0; - break; - } - } - - for (int i = 1; i < argc; ++i) { - if (!argv[i]) - continue; - if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "-help") == 0 || strcmp(argv[i], "--help") == 0) { - usage(argv[0]); - return true; - } - if (strcmp(argv[i], "-opengl") == 0) { - if (builtWithOpenGL) { - options |= Settings::UseOpenGL; - argv[i] = 0; - } else { - printf("-opengl parameter can be used only with building PRECONDITIONS: QT_NO_OPENGL is off.\n"); - usage(argv[0]); - return false; - } - } else if (strcmp(argv[i], "-resolution") == 0) { - if (i + 1 >= argc) { - printf("-resolution needs an extra parameter specifying the application UI resolution\n"); - usage(argv[0]); - return false; - } - else { - QStringList res = QString(argv[i+1]).split(QLatin1Char('x')); - if (res.count() != 2) { - printf("-resolution parameter UI resolution should be set in format WxH where width and height are positive values\n"); - usage(argv[0]); - return false; - } - int width = res.at(0).toInt(); - int height = res.at(1).toInt(); - - config.setSize(QSize(width, height)); - - if (width <=0 || height <=0) { - printf("-resolution parameter UI resolution should be set in format WxH where width and height are positive values\n"); - usage(argv[0]); - return false; - } - argv[i] = 0; - i++; - argv[i] = 0; - } - } - - if (!argv[i]) - continue; - - if (!(options & Settings::ManualTest)) { - if (argumentOnlyAvailableInManualMode(argv[i])) { - printf("\nWrong option: '%s' is only available in manual mode\n\n", argv[i]); - usage(argv[0]); - return false; - } - continue; - } - - if (strcmp(argv[i], "-rotation") == 0) { - if (i + 1 >= argc) { - printf("-rotation needs an extra parameter specifying the application UI rotation in degrees\n"); - usage(argv[0]); - return false; - } - else { - bool ok; - int angle = QString(argv[i+1]).toInt(&ok); - if (!ok) { - printf("-rotation parameter should specify rotation angle in degrees\n"); - usage(argv[0]); - return false; - } - config.setAngle(angle); - argv[i] = 0; - i++; - argv[i] = 0; - } - } else if (strcmp(argv[i], "-subtree-cache") == 0) { - options |= Settings::UseListItemCache; - argv[i] = 0; - } else if (strcmp(argv[i], "-fps") == 0) { - options |= Settings::OutputFps; - argv[i] = 0; - } else if (strcmp(argv[i], "-items") == 0) { - if (i + 1 >= argc) { - printf("-items needs an extra parameter specifying amount of list items\n"); - usage(argv[0]); - return false; - } - else { - bool ok; - int amount = QString(argv[i+1]).toInt(&ok); - if (!ok) { - printf("-items needs an extra parameter specifying amount (integer) of list items\n"); - usage(argv[0]); - return false; - } - config.setListItemCount(amount); - argv[i] = 0; - i++; - argv[i] = 0; - } - } - } - - config.setOptions(options); - - return true; -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/commandline.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/commandline.h deleted file mode 100644 index eaddeac59d..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/commandline.h +++ /dev/null @@ -1,39 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef COMMANDLINE_H -#define COMMANDLINE_H - -#include "settings.h" - -bool readSettingsFromCommandLine(int argc, - char *argv[], - Settings& settings); - - -#endif // COMMANDLINE_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/dummydatagen.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/dummydatagen.cpp deleted file mode 100644 index 7809b38050..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/dummydatagen.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QFile> -#include <QRandomGenerator> -#include "theme.h" - -#include "dummydatagen.h" - -DummyDataGenerator::DummyDataGenerator() : m_isMale(false) -{ - QFile countryCodeFile(":/contact/areacodes.txt"); - countryCodeFile.open(QIODevice::ReadOnly); - while (!countryCodeFile.atEnd()) { - m_countryCodes << QString(countryCodeFile.readLine()).remove("\n"); - } - - QFile firstNameFFile(":/contact/firstnamesF.txt"); - firstNameFFile.open(QIODevice::ReadOnly); - while (!firstNameFFile.atEnd()) { - m_firstNamesF << QString(firstNameFFile.readLine()).remove("\n"); - } - - QFile firstNameMFile(":/contact/firstnamesM.txt"); - firstNameMFile.open(QIODevice::ReadOnly); - while (!firstNameMFile.atEnd()) { - m_firstNamesM << QString(firstNameMFile.readLine()).remove("\n"); - } - - QFile lastNameFile(":/contact/lastnames.txt"); - lastNameFile.open(QIODevice::ReadOnly); - while (!lastNameFile.atEnd()) { - m_lastNames << QString(lastNameFile.readLine()).remove("\n"); - } - Reset(); -} - -DummyDataGenerator::~DummyDataGenerator() -{ -} - -void DummyDataGenerator::Reset() -{ -} - -QString DummyDataGenerator::randomPhoneNumber(QString indexNumber) -{ - int index = QRandomGenerator::global()->bounded(m_countryCodes.count()); - QString countryCode = m_countryCodes.at(index); - QString areaCode = QString::number(index) + QString("0").repeated(2-QString::number(index).length()); - QString beginNumber = QString::number(555-index*2); - QString endNumber = QString("0").repeated(4-indexNumber.length()) + indexNumber; - - return countryCode + QLatin1Char(' ') + areaCode +QLatin1Char(' ') + beginNumber - + QLatin1Char(' ') + endNumber; -} - -QString DummyDataGenerator::randomFirstName() -{ - m_isMale = !m_isMale; - if (m_isMale) - return m_firstNamesM.at(QRandomGenerator::global()->bounded(m_firstNamesM.count())); - return m_firstNamesF.at(QRandomGenerator::global()->bounded(m_firstNamesF.count())); -} - -QString DummyDataGenerator::randomLastName() -{ - return m_lastNames.at(QRandomGenerator::global()->bounded(m_lastNames.count())); -} - -QString DummyDataGenerator::randomName() -{ - return QString(randomFirstName()+QString(", ")+randomLastName()); -} - -QString DummyDataGenerator::randomIconItem() -{ - QString avatar = Theme::p()->pixmapPath() + "contact_default_icon.svg"; - if (QRandomGenerator::global()->bounded(4)) { - int randVal = 1+QRandomGenerator::global()->bounded(25); - - if (m_isMale && randVal > 15) { - randVal -= 15; - } - if (!m_isMale && randVal <= 10) { - randVal += 10; - } - - avatar = QString(":/avatars/avatar_%1.png").arg(randVal, 3, 10, QChar('0')); - } - return avatar; -} - -QString DummyDataGenerator::randomStatusItem() -{ - switch (QRandomGenerator::global()->bounded(3)) { - case 0: return Theme::p()->pixmapPath() + "contact_status_online.svg"; - case 1: return Theme::p()->pixmapPath() + "contact_status_offline.svg"; - case 2: return Theme::p()->pixmapPath() + "contact_status_idle.svg"; - } - return 0; -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/dummydatagen.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/dummydatagen.h deleted file mode 100644 index bcb9681d5d..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/dummydatagen.h +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef __DUMMYDATAGEN_H__ -#define __DUMMYDATAGEN_H__ - -#include <QObject> -#include <QStringList> - -class DummyDataGenerator : public QObject -{ - Q_OBJECT -public: - DummyDataGenerator(); - ~DummyDataGenerator(); - -public: - void Reset(); - QString randomPhoneNumber(QString indexNumber); - QString randomFirstName(); - QString randomLastName(); - QString randomName(); - QString randomIconItem(); - QString randomStatusItem(); - -private: - QStringList m_countryCodes; - QStringList m_firstNamesF; - QStringList m_firstNamesM; - QStringList m_lastNames; - bool m_isMale; -}; - -#endif // __DUMMYDATAGEN_H__ diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.cpp deleted file mode 100644 index 3682ae55e1..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui> -#include "gvbwidget.h" - -GvbWidget::GvbWidget(QGraphicsItem * parent, Qt::WindowFlags wFlags) - : QGraphicsWidget(parent, wFlags) -{ - -} - -GvbWidget::~GvbWidget() -{ -} - -void GvbWidget::keyPressEvent(QKeyEvent *event) -{ - Q_UNUSED(event) -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.h deleted file mode 100644 index 7e247b63a4..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/gvbwidget.h +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef GVBWIDGET_H -#define GVBWIDGET_H - -#include <QGraphicsWidget> - -class GvbWidget : public QGraphicsWidget -{ - Q_OBJECT - -public: - - GvbWidget(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0); - ~GvbWidget(); - virtual void keyPressEvent(QKeyEvent *event); -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/iconitem.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/iconitem.cpp deleted file mode 100644 index a081e1b064..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/iconitem.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui> -#include <QSvgRenderer> -#include <QGraphicsEffect> - -#include "iconitem.h" - -IconItem::IconItem(const QString &filename, QGraphicsItem *parent) - : GvbWidget(parent) - , m_filename(filename) - , m_rotation(0.0) - , m_opacityEffect(0) - , m_smoothTransformation(false) -{ - setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); - setContentsMargins(0,0,0,0); - setPreferredSize(58,58); -} - -IconItem::~IconItem() -{ -} - -void IconItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - Q_UNUSED(option); - Q_UNUSED(widget); - - reload(); - - const QPointF c = boundingRect().center(); - painter->translate(c.x(), c.y()); - painter->rotate(m_rotation); - painter->translate(-c.x(), -c.y()); - - if (m_smoothTransformation) - painter->setRenderHints(QPainter::SmoothPixmapTransform); - - painter->drawPixmap(0,0, m_pixmap); -} - -QSizeF IconItem::sizeHint(Qt::SizeHint which, - const QSizeF &constraint) const -{ - switch (which) - { - case Qt::MinimumSize: - case Qt::PreferredSize: - case Qt::MaximumSize: - return m_pixmap.size(); - - default: - return GvbWidget::sizeHint(which, constraint); - } -} - -void IconItem::reload() -{ - const QSize iconSize = size().toSize(); - if (iconSize.width() == 0 || iconSize.height() == 0) - return; - - const QString key = m_filename+QString::number(iconSize.width())+QString::number(iconSize.height()); - if (QPixmapCache::find(key, m_pixmap)) - return; - - if (m_filename.endsWith(".svg", Qt::CaseInsensitive)) - { - m_pixmap = QPixmap(iconSize); - m_pixmap.fill(Qt::transparent); - QSvgRenderer doc(m_filename); - QPainter painter(&m_pixmap); - painter.setViewport(0, 0, iconSize.width(), iconSize.height()); - doc.render(&painter); - } - else - { - m_pixmap = QPixmap(m_filename).scaled(iconSize); - } - - QPixmapCache::insert(key, m_pixmap); - updateGeometry(); -} - -QString IconItem::fileName() const -{ - return m_filename; -} - -void IconItem::setFileName(const QString &filename) -{ - if( m_filename != filename) { - m_filename = filename; - reload(); - } -} - -void IconItem::setOpacityEffectEnabled(const bool enable) -{ - if (!m_opacityEffect) - { - QRadialGradient gradient(0.5, 0.5, 1.0); - gradient.setCoordinateMode(QGradient::ObjectBoundingMode); - gradient.setColorAt(0.0, QColor(0,0,0, 255)); - gradient.setColorAt(0.46, QColor(0,0,0, 255)); - gradient.setColorAt(0.62, QColor(0,0,0, 0)); - - m_opacityEffect = new QGraphicsOpacityEffect; - m_opacityEffect->setOpacityMask(gradient); - m_opacityEffect->setOpacity(1.0); - this->setGraphicsEffect(m_opacityEffect); - } - m_opacityEffect->setEnabled(enable); -} - -bool IconItem::isOpacityEffectEnabled() const -{ - if (m_opacityEffect) - return m_opacityEffect->isEnabled(); - - return false; -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/iconitem.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/iconitem.h deleted file mode 100644 index 48d1bafe9f..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/iconitem.h +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ICONITEM_H -#define ICONITEM_H - -#include <QPainter> - -#include "gvbwidget.h" - -class QGraphicsOpacityEffect; -class QPainter; - -class IconItem : public GvbWidget -{ - Q_OBJECT - -public: - - IconItem(const QString &filename = "", QGraphicsItem *parent = 0); - - virtual ~IconItem(); - - QString fileName() const; - void setFileName(const QString &filename); - - void setOpacityEffectEnabled(const bool enable); - bool isOpacityEffectEnabled() const; - - void setRotation(const qreal rotation) { m_rotation = rotation; } - qreal rotation() const { return m_rotation; } - - void setSmoothTransformationEnabled(const bool enable) { m_smoothTransformation = enable; } - bool isSmoothTransformationEnabled() const { return m_smoothTransformation; } - -private: - - virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget */*widget = 0*/); - QSizeF sizeHint(Qt::SizeHint which, - const QSizeF &constraint = QSizeF()) const; - -private: - Q_DISABLE_COPY(IconItem) - void reload(); - - QString m_filename; - QPixmap m_pixmap; - qreal m_rotation; - QGraphicsOpacityEffect *m_opacityEffect; - bool m_smoothTransformation; -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglist.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglist.cpp deleted file mode 100644 index eabe3671e5..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglist.cpp +++ /dev/null @@ -1,248 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QDebug> -#include <QTime> - -#include "itemrecyclinglist.h" -#include "listitemcontainer.h" -#include "abstractviewitem.h" -#include "recycledlistitem.h" -#include "theme.h" -#include "scrollbar.h" - -ItemRecyclingList::ItemRecyclingList(const int itemBuffer, QGraphicsWidget * parent) - : ItemRecyclingListView(parent), - m_listModel(new ListModel(this)) -{ - ListItemContainer *container = new ListItemContainer(itemBuffer, this, this); - container->setParentItem(this); - ItemRecyclingListView::setContainer(container); - ItemRecyclingListView::setModel(m_listModel, new RecycledListItem(this)); - setObjectName("ItemRecyclingList"); - connect(Theme::p(), SIGNAL(themeChanged()), this, SLOT(themeChange())); - - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); -} - -/* virtual */ -ItemRecyclingList::~ItemRecyclingList() -{ -} - -/* virtual */ -void ItemRecyclingList::insertItem(int index, RecycledListItem *item) -{ - if (index<0) - index = 0; - if (index > m_listModel->rowCount()) - index = m_listModel->rowCount(); - if (m_listModel && item) - m_listModel->insert(index,item); - - updateListItemBackgrounds(index); -} - -/* virtual */ -void ItemRecyclingList::addItem(RecycledListItem *item) -{ - if (item) - m_listModel->appendRow(item); - - const int index = m_listModel->rowCount()-1; - updateListItemBackgrounds(index); -} - -/* virtual */ -void ItemRecyclingList::clear() -{ - m_listModel->clear(); -} - -/* virtual */ -AbstractViewItem *ItemRecyclingList::takeItem(const int row) -{ - if (row < 0 || row >= m_listModel->rowCount() || !m_listModel) - return 0; - return m_listModel->takeItem(row); -} - -/*virtual*/ -void ItemRecyclingList::setItemPrototype(AbstractViewItem* prototype) -{ - ItemRecyclingListView::setItemPrototype(prototype); -} - -void ItemRecyclingList::themeChange() -{ - const bool caching = listItemCaching(); - setListItemCaching(false); - - const QString iconName = Theme::p()->pixmapPath()+"contact_default_icon.svg"; - const int count = m_listModel->rowCount(); - - for (int i=0; i<count; ++i) - { - RecycledListItem *ritem = m_listModel->item(i); - if (ritem) { - ListItem *item = ritem->item(); - - // Update default icons - const QString filename = item->icon(ListItem::LeftIcon)->fileName(); - if (filename.contains("contact_default_icon")) { - item->icon(ListItem::LeftIcon)->setFileName(iconName); - } - - // Update status icons - QString statusIcon = item->icon(ListItem::RightIcon)->fileName(); - const int index = statusIcon.indexOf("contact_status"); - if (index != -1) { - statusIcon.remove(0, index); - item->icon(ListItem::RightIcon)->setFileName(Theme::p()->pixmapPath()+statusIcon); - } - - // Update fonts - item->setFont(Theme::p()->font(Theme::ContactName), ListItem::FirstPos); - item->setFont(Theme::p()->font(Theme::ContactNumber), ListItem::SecondPos); - item->setFont(Theme::p()->font(Theme::ContactEmail), ListItem::ThirdPos); - - // Update list dividers - if (i%2) { - item->setBackgroundBrush(Theme::p()->listItemBackgroundBrushOdd()); - item->setBackgroundOpacity(Theme::p()->listItemBackgroundOpacityOdd()); - } - else { - item->setBackgroundBrush(Theme::p()->listItemBackgroundBrushEven()); - item->setBackgroundOpacity(Theme::p()->listItemBackgroundOpacityEven()); - } - - // Update borders - item->setBorderPen(Theme::p()->listItemBorderPen()); - item->setRounding(Theme::p()->listItemRounding()); - - // Update icons - item->icon(ListItem::LeftIcon)->setRotation(Theme::p()->iconRotation(ListItem::LeftIcon)); - item->icon(ListItem::RightIcon)->setRotation(Theme::p()->iconRotation(ListItem::RightIcon)); - item->icon(ListItem::LeftIcon)->setOpacityEffectEnabled(Theme::p()->isIconOpacityEffectEnabled(ListItem::LeftIcon)); - item->icon(ListItem::RightIcon)->setOpacityEffectEnabled(Theme::p()->isIconOpacityEffectEnabled(ListItem::RightIcon)); - item->icon(ListItem::LeftIcon)->setSmoothTransformationEnabled(Theme::p()->isIconSmoothTransformationEnabled(ListItem::LeftIcon)); - item->icon(ListItem::RightIcon)->setSmoothTransformationEnabled(Theme::p()->isIconSmoothTransformationEnabled(ListItem::RightIcon)); - } - } - updateViewContent(); - setListItemCaching(caching); -} - -void ItemRecyclingList::keyPressEvent(QKeyEvent *event) -{ - static QTime keyPressInterval = QTime::currentTime(); - static qreal step = 0.0; - static bool repeat = false; - int interval = keyPressInterval.elapsed(); - - ScrollBar* sb = verticalScrollBar(); - qreal currentValue = sb->sliderPosition(); - - if(interval < 250 ) { - if(!repeat) step = 0.0; - step = step + 2.0; - if(step > 100) step = 100; - repeat = true; - } - else { - step = 1.0; - if(m_listModel->item(0)) m_listModel->item(0)->size().height(); - step = m_listModel->item(0)->size().height(); - repeat = false; - } - - if(event->key() == Qt::Key_Up ) { //Up Arrow - sb->setSliderPosition(currentValue - step); - } - - if(event->key() == Qt::Key_Down ) { //Down Arrow - sb->setSliderPosition(currentValue + step); - } - keyPressInterval.start(); -} - -bool ItemRecyclingList::listItemCaching() const -{ - ListItemContainer *container = - static_cast<ListItemContainer *>(m_container); - - return container->listItemCaching(); -} - -void ItemRecyclingList::setListItemCaching(bool enabled) -{ - ListItemContainer *container = - static_cast<ListItemContainer *>(m_container); - container->setListItemCaching(enabled); -} - -void ItemRecyclingList::updateListItemBackgrounds(int index) -{ - const int itemCount = m_listModel->rowCount(); - - for (int i=index; i<itemCount; ++i) - { - RecycledListItem *ritem = m_listModel->item(i); - if (ritem) { - ListItem *item = ritem->item(); - if (i%2) { - item->setBackgroundBrush(Theme::p()->listItemBackgroundBrushOdd()); - item->setBackgroundOpacity(Theme::p()->listItemBackgroundOpacityOdd()); - } - else { - item->setBackgroundBrush(Theme::p()->listItemBackgroundBrushEven()); - item->setBackgroundOpacity(Theme::p()->listItemBackgroundOpacityEven()); - } - } - } -} - -void ItemRecyclingList::setTwoColumns(const bool enabled) -{ - if (twoColumns() == enabled) - return; - - const bool caching = listItemCaching(); - setListItemCaching(false); - - m_container->setTwoColumns(enabled); - refreshContainerGeometry(); - - setListItemCaching(caching); -} - -bool ItemRecyclingList::twoColumns() -{ - return m_container->twoColumns(); -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglist.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglist.h deleted file mode 100644 index a69b60c9e2..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglist.h +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ITEMRECYCLINGLIST_H -#define ITEMRECYCLINGLIST_H - -#include "listitem.h" -#include "abstractitemview.h" -#include "listmodel.h" -#include "itemrecyclinglistview.h" -#include "recycledlistitem.h" - -class QGraphicsWidget; - -class ItemRecyclingList : public ItemRecyclingListView -{ - Q_OBJECT - -public: - ItemRecyclingList(const int itemBuffer = 4, QGraphicsWidget * parent = 0); - virtual ~ItemRecyclingList(); - - virtual void insertItem(int index, RecycledListItem *item); - virtual void addItem(RecycledListItem *item); - virtual void clear(); - virtual AbstractViewItem *takeItem(const int row); - virtual void setItemPrototype(AbstractViewItem* prototype); - virtual void keyPressEvent(QKeyEvent *event); - virtual bool listItemCaching() const; - virtual void setListItemCaching(bool enabled); - - void setTwoColumns(const bool enabled); - bool twoColumns(); - -public slots: - void themeChange(); - -private: - void updateListItemBackgrounds(int index); - -private: - Q_DISABLE_COPY(ItemRecyclingList) - - ListModel *m_listModel; -}; - -#endif // ITEMRECYCLINGLIST_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglist.pri b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglist.pri deleted file mode 100644 index 55b551ef8f..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglist.pri +++ /dev/null @@ -1,19 +0,0 @@ -HEADERS += $$ROOTDIR/tests/itemrecyclinglist/itemrecyclinglist.h \ - $$ROOTDIR/tests/itemrecyclinglist/itemrecyclinglistview.h \ - $$ROOTDIR/tests/itemrecyclinglist/abstractitemview.h \ - $$ROOTDIR/tests/itemrecyclinglist/abstractviewitem.h \ - $$ROOTDIR/tests/itemrecyclinglist/recycledlistitem.h \ - $$ROOTDIR/tests/itemrecyclinglist/listitemcontainer.h \ - $$ROOTDIR/tests/itemrecyclinglist/abstractitemcontainer.h \ - $$ROOTDIR/tests/itemrecyclinglist/listmodel.h - -SOURCES += $$ROOTDIR/tests/itemrecyclinglist/itemrecyclinglist.cpp \ - $$ROOTDIR/tests/itemrecyclinglist/itemrecyclinglistview.cpp \ - $$ROOTDIR/tests/itemrecyclinglist/abstractitemview.cpp \ - $$ROOTDIR/tests/itemrecyclinglist/abstractviewitem.cpp \ - $$ROOTDIR/tests/itemrecyclinglist/recycledlistitem.cpp \ - $$ROOTDIR/tests/itemrecyclinglist/listitemcontainer.cpp \ - $$ROOTDIR/tests/itemrecyclinglist/abstractitemcontainer.cpp \ - $$ROOTDIR/tests/itemrecyclinglist/listmodel.cpp - -INCLUDEPATH += $$ROOTDIR/tests/itemrecyclinglist diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglistview.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglistview.cpp deleted file mode 100644 index 5aa93256ff..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglistview.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "itemrecyclinglistview.h" - -ItemRecyclingListView::ItemRecyclingListView(QGraphicsWidget * parent) - : AbstractItemView(parent), m_rootIndex() -{ -} - -/*virtual*/ -ItemRecyclingListView::~ItemRecyclingListView() -{ -} -void ItemRecyclingListView::setCurrentRow(const int row) -{ - setCurrentIndex(model()->index(row,0)); -} - -int ItemRecyclingListView::rows() const -{ - if (m_model) - return m_model->rowCount(); - return 0; -} - -/*virtual*/ -void ItemRecyclingListView::rowsInserted(const QModelIndex &parent, int start, int end) -{ - if (parent == m_rootIndex) { - AbstractItemView::rowsInserted(parent, start, end); - } -} - -/*virtual*/ -void ItemRecyclingListView::rowsRemoved(const QModelIndex &parent, int start, int end) -{ - if (parent == m_rootIndex) { - AbstractItemView::rowsRemoved(parent, start, end); - } -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglistview.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglistview.h deleted file mode 100644 index 467f193604..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/itemrecyclinglistview.h +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ITEMRECYCLINGLISTVIEW_H -#define ITEMRECYCLINGLISTVIEW_H - -#include "abstractitemview.h" - -class ItemRecyclingListView : public AbstractItemView -{ -public: - ItemRecyclingListView(QGraphicsWidget * parent = 0); - virtual ~ItemRecyclingListView(); - void setCurrentRow(const int row); - int rows() const; - virtual bool listItemCaching() const = 0; - virtual void setListItemCaching(bool enabled) = 0; - -protected: - void rowsInserted(const QModelIndex &parent, int start, int end); - void rowsRemoved(const QModelIndex &parent,int start,int end); - -private: - QModelIndex m_rootIndex; -}; - -#endif // ITEMRECYCLINGLISTVIEW_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/label.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/label.cpp deleted file mode 100644 index 5fb2ee1a51..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/label.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui> - -#include "label.h" - -Label::Label(const QString &text, QGraphicsItem *parent) - : GvbWidget(parent) -{ - m_textItem = new QGraphicsSimpleTextItem(this); - setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); - setContentsMargins(0, 0, 0, 0); - setText(text); - // This flag was introduced in Qt 4.6. - setFlag(QGraphicsItem::ItemHasNoContents, true); -} - -Label::~Label() -{ -} - -void Label::setText(const QString &text) -{ - m_textItem->setText(text); - prepareGeometryChange(); -} - -QString Label::text() const -{ - return m_textItem->text(); -} - -void Label::setFont(const QFont font) -{ - m_textItem->setFont(font); -} - -void Label::resizeEvent(QGraphicsSceneResizeEvent *event) -{ - GvbWidget::resizeEvent(event); -} - -QSizeF Label::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const -{ - switch (which) { - case Qt::MinimumSize: - // fall thru - case Qt::PreferredSize: { - QFontMetricsF fm(m_textItem->font()); - return QSizeF(fm.horizontalAdvance(m_textItem->text()), fm.height()); - } - default: - return GvbWidget::sizeHint(which, constraint); - } -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/label.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/label.h deleted file mode 100644 index 2c1f14b20e..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/label.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef TEXTITEM_H -#define TEXTITEM_H - -#include "gvbwidget.h" - -class QPainter; -class QStyleOptionGraphicsItem; -class QGraphicsTextItem; - -class Label : public GvbWidget -{ - Q_OBJECT - -public: - - Label(const QString& text, QGraphicsItem *parent = 0); - ~Label(); - -public: - - void setText(const QString& text); - QString text() const; - void setFont(const QFont font); - -private: - void resizeEvent(QGraphicsSceneResizeEvent *event); - QSizeF sizeHint(Qt::SizeHint which, - const QSizeF &constraint = QSizeF()) const; - -private: - Q_DISABLE_COPY(Label) - QGraphicsSimpleTextItem *m_textItem; -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitem.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitem.cpp deleted file mode 100644 index 1872bcc9d3..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitem.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QDebug> -#include <QGraphicsGridLayout> -#include <QGraphicsLinearLayout> -#include <QGraphicsSceneMouseEvent> -#include <QPainter> -#include <QStyleOptionGraphicsItem> -#include "listitem.h" -#include "theme.h" - -struct ItemData -{ - QHash<ListItem::TextPos, QString> texts; - QHash<ListItem::TextPos, QFont> fonts; - QHash<ListItem::IconItemPos, QString> icons; - QHash<ListItem::IconItemPos, qreal> iconRotations; - QHash<ListItem::IconItemPos, bool> iconSmoothTransformations; - QHash<ListItem::IconItemPos, bool> iconOpacityEffets; - QPen borderPen; - QBrush backgroundBrush; - qreal backgroundOpacity; - QSize rounding; -}; -Q_DECLARE_METATYPE(ItemData); - -ListItem::ListItem(QGraphicsWidget *parent) - : GvbWidget(parent) - , m_txtlayout(new QGraphicsGridLayout()) - , m_layout(new QGraphicsLinearLayout(Qt::Horizontal)) - , m_liconlayout(new QGraphicsLinearLayout(Qt::Horizontal)) - , m_riconlayout(new QGraphicsLinearLayout(Qt::Horizontal)) - , m_fonts() - , m_borderPen(Qt::NoPen) - , m_backgroundBrush(QBrush()) - , m_backgroundOpacity(1.0) - , m_rounding(0.0, 0.0) -{ - setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - setContentsMargins(0,4,4,0); - m_layout->setContentsMargins(0,0,0,0); - - m_txtlayout->setContentsMargins(0,8,0,8); - m_liconlayout->setContentsMargins(8,8,8,8); - m_riconlayout->setContentsMargins(0,8,4,8); - - m_layout->insertItem(0, m_liconlayout); - m_layout->insertItem(1, m_txtlayout); - m_layout->insertItem(2, m_riconlayout); - - m_layout->setStretchFactor(m_liconlayout, 1); - m_layout->setStretchFactor(m_txtlayout, 5); - m_layout->setStretchFactor(m_riconlayout, 1); - - setFlag(QGraphicsItem::ItemClipsToShape); - setLayout(m_layout); -} - -ListItem::~ListItem() -{ - if (!m_liconlayout->parentLayoutItem()) - delete m_liconlayout; - - if (!m_riconlayout->parentLayoutItem()) - delete m_riconlayout; -} - -void ListItem::setIcon(IconItem *iconItem, const IconItemPos iconPos) -{ - if (iconPos == LeftIcon) { - if (m_liconlayout->count() > 0 && m_liconlayout->itemAt(0)) { - delete m_liconlayout->itemAt(0); - m_liconlayout->addItem(iconItem); - } else { - m_liconlayout->addItem(iconItem); - } - m_liconlayout->itemAt(0)->setMaximumSize(58, 58); - } else if (iconPos == RightIcon) { - if (m_riconlayout->count() > 0 && m_riconlayout->itemAt(0)) { - delete m_riconlayout->itemAt(0); - m_riconlayout->addItem(iconItem); - } else { - m_riconlayout->addItem(iconItem); - } - m_riconlayout->itemAt(0)->setMaximumSize(22, 22); - } - m_layout->invalidate(); -} - -IconItem* ListItem::icon(const IconItemPos iconPos) const -{ - QGraphicsLayoutItem* item = 0; - - if (iconPos == LeftIcon && m_liconlayout->count() > 0) { - item = m_liconlayout->itemAt(0); - } - else if (iconPos == RightIcon && m_riconlayout->count() > 0) { - item = m_riconlayout->itemAt(0); - } - - if (item) { - IconItem* titem = static_cast<IconItem *>(item); - return titem; - } - return 0; -} - -QVariant ListItem::data(int role) const -{ - if (role != Qt::DisplayRole) - return QVariant(); - - ItemData data; - - if (text(ListItem::FirstPos).size() > 0) { - data.texts[ListItem::FirstPos] = text(ListItem::FirstPos); - data.fonts[ListItem::FirstPos] = m_fonts[ListItem::FirstPos]; - } - if (text(ListItem::SecondPos).size() > 0) { - data.texts[ListItem::SecondPos] = text(ListItem::SecondPos); - data.fonts[ListItem::SecondPos] = m_fonts[ListItem::SecondPos]; - } - if (text(ListItem::ThirdPos).size() > 0) { - data.texts[ListItem::ThirdPos] = text(ListItem::ThirdPos); - data.fonts[ListItem::ThirdPos] = m_fonts[ListItem::ThirdPos]; - } - if (text(ListItem::LastPos).size() > 0) { - data.texts[ListItem::LastPos] = text(ListItem::LastPos); - data.fonts[ListItem::LastPos] = m_fonts[ListItem::LastPos]; - } - - if (icon(ListItem::LeftIcon)) { - data.icons[ListItem::LeftIcon] = icon(ListItem::LeftIcon)->fileName(); - data.iconRotations[ListItem::LeftIcon] = icon(ListItem::LeftIcon)->rotation(); - data.iconSmoothTransformations[ListItem::LeftIcon] = icon(ListItem::LeftIcon)->isSmoothTransformationEnabled(); - data.iconOpacityEffets[ListItem::LeftIcon] = icon(ListItem::LeftIcon)->isOpacityEffectEnabled(); - } - - if (icon(ListItem::RightIcon)) { - data.icons[ListItem::RightIcon] = icon(ListItem::RightIcon)->fileName(); - data.iconRotations[ListItem::RightIcon] = icon(ListItem::RightIcon)->rotation(); - data.iconSmoothTransformations[ListItem::RightIcon] = icon(ListItem::RightIcon)->isSmoothTransformationEnabled(); - data.iconOpacityEffets[ListItem::RightIcon] = icon(ListItem::RightIcon)->isOpacityEffectEnabled(); - } - - data.borderPen = m_borderPen; - data.backgroundBrush = m_backgroundBrush; - data.backgroundOpacity = m_backgroundOpacity; - data.rounding = m_rounding; - - QVariant var; - var.setValue(data); - return var; -} - -void ListItem::setData(const QVariant &value, int role) -{ - if (role != Qt::DisplayRole) - return; - - ItemData data = value.value<ItemData>(); - QList<ListItem::TextPos> textkeys = data.texts.keys(); - - for (int i = 0; i<textkeys.count(); ++i) { - setText(data.texts[textkeys.at(i)], textkeys.at(i)); - setFont(data.fonts[textkeys.at(i)], textkeys.at(i)); - } - - QList<ListItem::IconItemPos> iconkeys = data.icons.keys(); - for (int i = 0; i<iconkeys.count(); ++i) { - IconItem *iconItem = icon(iconkeys.at(i)); - if (iconItem) - iconItem->setFileName(data.icons[iconkeys.at(i)]); - else { - IconItem *iconItem = new IconItem(data.icons[iconkeys.at(i)], this); - setIcon(iconItem, iconkeys.at(i)); - } - } - - if (icon(ListItem::LeftIcon)) { - icon(ListItem::LeftIcon)->setRotation(data.iconRotations[ListItem::LeftIcon]); - icon(ListItem::LeftIcon)->setSmoothTransformationEnabled(data.iconSmoothTransformations[ListItem::LeftIcon]); - icon(ListItem::LeftIcon)->setOpacityEffectEnabled(data.iconOpacityEffets[ListItem::LeftIcon]); - } - - if (icon(ListItem::RightIcon)) { - icon(ListItem::RightIcon)->setRotation(data.iconRotations[ListItem::RightIcon]); - icon(ListItem::RightIcon)->setSmoothTransformationEnabled(data.iconSmoothTransformations[ListItem::RightIcon]); - icon(ListItem::RightIcon)->setOpacityEffectEnabled(data.iconOpacityEffets[ListItem::RightIcon]); - } - - m_borderPen = data.borderPen; - m_backgroundBrush = data.backgroundBrush; - m_backgroundOpacity = data.backgroundOpacity; - m_rounding = data.rounding; -} - -void ListItem::setText(const QString str, const TextPos position) -{ - QGraphicsLayoutItem * item = 0; - - if (m_txtlayout->rowCount() > position && position >= 0) - item = m_txtlayout->itemAt(position, 0); - - if (!item) { - Label *label = new Label(str,this); - m_txtlayout->addItem(label, position, 0); - if (m_fonts.contains(position)) - label->setFont(m_fonts[position]); - } else { - Label *titem = static_cast<Label *>(item); - titem->setText(str); - } -} - -void ListItem::setFont(const QFont font, const TextPos position) -{ - m_fonts.insert(position, font); - QGraphicsLayoutItem * item = 0; - - if (m_txtlayout->rowCount() > position && position >= 0) - item = m_txtlayout->itemAt(position, 0); - - if (item) { - Label *titem = static_cast<Label *>(item); - titem->setFont(font); - } -} - -QString ListItem::text(const TextPos position) const -{ - QGraphicsLayoutItem * item = 0; - - if (m_txtlayout->rowCount() > position && position >= 0) - item = m_txtlayout->itemAt(position, 0); - - if (item) { - Label *titem = static_cast<Label *>(item); - return titem->text(); - } - return ""; -} - -void ListItem::paint(QPainter *painter, const QStyleOptionGraphicsItem */*option*/, QWidget */*widget*/) -{ - const int penWidth = m_borderPen.width(); - QRectF r = rect(); - r.adjust(penWidth, penWidth, -penWidth, -penWidth); - - if (m_borderPen != Qt::NoPen) { - painter->setPen(m_borderPen); - painter->drawRoundedRect(r, m_rounding.width(), m_rounding.height()); - } - - if (m_backgroundBrush != Qt::NoBrush) { - painter->setPen(Qt::NoPen); - painter->setBrush(m_backgroundBrush); - painter->setOpacity(m_backgroundOpacity); - painter->drawRoundedRect(r, m_rounding.width(), m_rounding.height()); - } -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitem.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitem.h deleted file mode 100644 index 4f033803ac..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitem.h +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef LISTITEM_H -#define LISTITEM_H - -#include <QPen> -#include "iconitem.h" -#include "label.h" -#include "gvbwidget.h" - -class QGraphicsGridLayout; -class QGraphicsLinearLayout; -class QGraphicsSceneMouseEvent; -class QGraphicsItem; - -class ListItem : public GvbWidget -{ - Q_OBJECT - -public: - - enum TextPos { - FirstPos = 0, - SecondPos = 1, - ThirdPos = 2, - LastPos = 3 - }; - - enum IconItemPos { - LeftIcon = 0, - RightIcon = 1 - }; - - ListItem(QGraphicsWidget *parent = 0); - virtual ~ListItem(); - - void setIcon(IconItem *iconItem, const IconItemPos iconPos); - IconItem* icon(const IconItemPos position) const; - void setText(const QString str, const TextPos position); - QString text(const TextPos position) const; - void setFont(const QFont font, const TextPos position); - - QVariant data(int role = Qt::DisplayRole) const; - void setData(const QVariant &value, int role = Qt::DisplayRole); - - void setBorderPen(const QPen pen) { m_borderPen = pen; } - void setBackgroundBrush(const QBrush brush) { m_backgroundBrush = brush; } - void setBackgroundOpacity(const qreal opacity) { m_backgroundOpacity = opacity; } - void setRounding(const QSize rounding) { m_rounding = rounding; } - -protected: - - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); - -private: - Q_DISABLE_COPY(ListItem) - QGraphicsGridLayout *m_txtlayout; - QGraphicsLinearLayout *m_layout; - QGraphicsLinearLayout *m_liconlayout; - QGraphicsLinearLayout *m_riconlayout; - QHash<TextPos, QFont> m_fonts; - - QPen m_borderPen; - QBrush m_backgroundBrush; - qreal m_backgroundOpacity; - QSize m_rounding; -}; - -#endif // LISTITEM_H - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcache.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcache.cpp deleted file mode 100644 index 0e4520d0a8..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcache.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QGraphicsItem> -#include <QPainter> -#include <QDebug> -#include "listitemcache.h" - -ListItemCache::ListItemCache() -{ -} - -ListItemCache::~ListItemCache() -{ - QPixmapCache::remove(m_cacheKey); -} - -void ListItemCache::draw(QPainter * painter) -{ - QRectF irect = sourceBoundingRect(Qt::LogicalCoordinates); - QRectF vrect = painter->clipPath().boundingRect(); - - if (vrect.intersects(irect)) { - QRectF newVisibleRect = irect.intersected(vrect); - QPixmap pixmap; - - if (!QPixmapCache::find(m_cacheKey, &pixmap) || - m_visibleRect.toRect() != newVisibleRect.toRect()) { - //qDebug() << "ListItemCache: caching" << m_visibleRect - // << "->" << newVisibleRect; - - pixmap = QPixmap(sourceBoundingRect().toRect().size()); - pixmap.fill(Qt::transparent); - - QPainter pixmapPainter(&pixmap); - drawSource(&pixmapPainter); - pixmapPainter.end(); - m_cacheKey = QPixmapCache::insert(pixmap); - - m_visibleRect = newVisibleRect; - } - - //qDebug() << "ListItemCache: blitting" << m_visibleRect; - painter->drawPixmap(0, 0, pixmap); - } -} - -void ListItemCache::sourceChanged(ChangeFlags) -{ - QPixmapCache::remove(m_cacheKey); -} - - - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcache.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcache.h deleted file mode 100644 index ba35023bbc..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcache.h +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef LISTITEMCACHE_H -#define LISTITEMCACHE_H - -#include <QGraphicsEffect> -#include <QPixmapCache> - -class ListItemCache : public QGraphicsEffect -{ - Q_OBJECT - -public: - - ListItemCache(); - ~ListItemCache(); - -public: // QGraphicsEffect - - void draw(QPainter *painter); - void sourceChanged(ChangeFlags flags); - -private: - - QPixmapCache::Key m_cacheKey; - QRectF m_visibleRect; -}; - -#endif // LISTITEMCACHE_H - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.cpp deleted file mode 100644 index 496919214d..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <qmath.h> -#include <QGraphicsLinearLayout> -#include <QGraphicsScene> - -#include "listitemcontainer.h" -#include "abstractviewitem.h" - -#include "recycledlistitem.h" -#include "listitemcache.h" -#include "itemrecyclinglist.h" - -ListItemContainer::ListItemContainer(int bufferSize, ItemRecyclingList *view, QGraphicsWidget *parent) - : AbstractItemContainer(bufferSize, parent) - , m_view(view) - , m_layout(new QGraphicsLinearLayout(Qt::Vertical)) - , m_listItemCaching(false) -{ - setContentsMargins(0,0,0,0); - m_layout->setContentsMargins(0,0,0,0); - m_layout->setSpacing(0); - setLayout(m_layout); -} - -/*virtual*/ -ListItemContainer::~ListItemContainer() -{ - setListItemCaching(false); - for (int i = 0; i < m_items.count(); ++i) { - m_layout->removeItem(m_items.at(i)); - m_items.at(i)->setParentItem(0); - } - qDeleteAll(m_items); - m_items.clear(); -} - -bool ListItemContainer::listItemCaching() const -{ - return m_listItemCaching; -} - -void ListItemContainer::setListItemCaching(const bool enabled) -{ - if (m_listItemCaching == enabled) - return; - - m_listItemCaching = enabled; - - const int itemCount = m_layout->count(); - - for (int i = 0; i < itemCount; ++i) - setListItemCaching(enabled, i); -} - -/*virtual*/ -void ListItemContainer::adjustVisibleContainerSize(const QSizeF &size) -{ - m_layout->setPreferredWidth(size.width()); -} - -/*virtual*/ -void ListItemContainer::addItemToVisibleLayout(int index, AbstractViewItem *item) -{ - m_layout->insertItem(index,item); - - setListItemCaching(m_listItemCaching, index); -} - -/*virtual*/ -void ListItemContainer::removeItemFromVisibleLayout(AbstractViewItem *item) -{ - m_layout->removeItem(item); - - RecycledListItem *recycledItem = static_cast<RecycledListItem*>(item); - - if (!recycledItem) - return; - - ListItem *listItem = recycledItem->item(); - - setListItemCaching(false, listItem); -} - -/*virtual*/ -int ListItemContainer::maxItemCountInItemBuffer() const -{ - int count = AbstractItemContainer::maxItemCountInItemBuffer(); - - if (count > 0) { - int currentItemCount = m_items.count(); - qreal heightOfOneItem = 0; - if (currentItemCount > 0) - { - heightOfOneItem = m_layout->effectiveSizeHint(Qt::PreferredSize).height() / currentItemCount; - } - int guess = 0; - if( heightOfOneItem <= 0 ) { - if (m_prototype) { - heightOfOneItem = m_prototype->effectiveSizeHint(Qt::PreferredSize).height(); - } - else - heightOfOneItem = 50; // TODO magic number, do we have better guess if prototype is not set? - } - if (heightOfOneItem > 0) { - guess = qCeil(m_itemView->boundingRect().height() / heightOfOneItem) + m_bufferSize; - - if (guess < currentItemCount) { - if( guess > currentItemCount-2) { // TODO magic number here, Can we use buffer size? - guess = currentItemCount; - } - } - } - count = qMin(guess, count); - } - return count; -} - -void ListItemContainer::setListItemCaching(const bool enabled, const int index) -{ - RecycledListItem *recycledItem = static_cast<RecycledListItem*>(m_layout->itemAt(index)); - - if (!recycledItem) - return; - - ListItem *listItem = recycledItem->item(); - - if (!listItem) - return; - - setListItemCaching(enabled, listItem); -} - -void ListItemContainer::setListItemCaching(const bool enabled, ListItem *listItem) -{ - if (!listItem) - return; - - // Deletes the effect. - listItem->setGraphicsEffect(0); - - if (enabled) { - ListItemCache* cache = new ListItemCache; - Q_ASSERT(!listItem->graphicsEffect()); - listItem->setGraphicsEffect(cache); - } -} - -void ListItemContainer::setTwoColumns(const bool twoColumns) -{ - AbstractItemContainer::setTwoColumns(twoColumns); - - if (!m_layout->isActivated()) - m_layout->activate(); -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.h deleted file mode 100644 index 62c9450c38..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listitemcontainer.h +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef LISTITEMCONTAINER_H -#define LISTITEMCONTAINER_H - -#include <QGraphicsWidget> -#include <QColor> - -#include "abstractitemcontainer.h" - -class QGraphicsLinearLayout; -class AbstractViewItem; -class ListItemCache; -class ListItem; -class ItemRecyclingList; - -class ListItemContainer : public AbstractItemContainer -{ - Q_OBJECT - -public: - ListItemContainer(int bufferSize, ItemRecyclingList *view, QGraphicsWidget *parent=0); - virtual ~ListItemContainer(); - - virtual void setTwoColumns(const bool twoColumns); - - bool listItemCaching() const; - void setListItemCaching(const bool enabled); - virtual void setListItemCaching(const bool enabled, const int index); - -protected: - - virtual void addItemToVisibleLayout(int index, AbstractViewItem *item); - virtual void removeItemFromVisibleLayout(AbstractViewItem *item); - - virtual void adjustVisibleContainerSize(const QSizeF &size); - virtual int maxItemCountInItemBuffer() const; - -private: - Q_DISABLE_COPY(ListItemContainer) - - ItemRecyclingList *m_view; - QGraphicsLinearLayout *m_layout; - - void setListItemCaching(const bool enabled, ListItem *listItem); - bool m_listItemCaching; -}; - -#endif // LISTITEMCONTAINER_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listmodel.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listmodel.cpp deleted file mode 100644 index fe87a2abc4..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listmodel.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "listmodel.h" -#include "recycledlistitem.h" - -ListModel::ListModel(QObject *parent) - : QAbstractListModel(parent) - , m_items() -{ - -} - -ListModel::~ListModel() -{ - qDeleteAll(m_items); - m_items.clear(); -} - -int ListModel::rowCount(const QModelIndex &parent) const -{ - if (parent.isValid()) - return 0; - return m_items.count(); -} - -QVariant ListModel::data(const QModelIndex &index, int role) const -{ - if (!index.isValid()) - return QVariant(); - - if (index.row() >= m_items.size() || index.row() < 0) - return QVariant(); - - switch (role) - { - case Qt::DisplayRole: - return QVariant::fromValue(m_items.at(index.row())->data(role)); - default: - return QVariant(); - } -} - -bool ListModel::setData(const QModelIndex &index, const QVariant &value, int role) -{ - // TODO implement if we like to edit list items - Q_UNUSED(index) - Q_UNUSED(value) - Q_UNUSED(role) - return false; -} - -void ListModel::clear() -{ - m_items.clear(); - reset(); -} - -QModelIndex ListModel::index(int row, int column, const QModelIndex &parent) const -{ - if (hasIndex(row, column, parent)) - return createIndex(row, column, m_items.at(row)); - - return QModelIndex(); -} - -void ListModel::insert(int row, RecycledListItem *item) -{ - if (item) - item->setModel(this); - if (!item || m_items.contains(item) ) { - return; - } - if (row < 0) - row = 0; - else if (row > m_items.count()) - row = m_items.count(); - beginInsertRows(QModelIndex(), row, row); - m_items.insert(row, item); - endInsertRows(); -} - -void ListModel::appendRow(RecycledListItem *item) -{ - if (!item) return; - item->setModel(this); - insert(rowCount(),item); -} - -RecycledListItem *ListModel::item(const int row) const -{ - if (row < 0 || row > m_items.count()) - return 0; - return m_items.at(row); -} - -RecycledListItem *ListModel::takeItem(const int row) -{ - if (row < 0 || row >= m_items.count()) - return 0; - - beginRemoveRows(QModelIndex(), row, row); - RecycledListItem *item = m_items.takeAt(row); - endRemoveRows(); - - return item; -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listmodel.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listmodel.h deleted file mode 100644 index 623c90dedc..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listmodel.h +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef LISTMODEL_H -#define LISTMODEL_H - -#include <QAbstractListModel> - -class RecycledListItem; -class ListItemCache; - -class ListModel : public QAbstractListModel -{ - Q_OBJECT - -public: - - ListModel(QObject *parent = 0); - ~ListModel(); - -public: - - int rowCount(const QModelIndex &parent = QModelIndex()) const; - - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole ) const; - bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); - - QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; - - void insert(const int row, RecycledListItem *item); - void appendRow(RecycledListItem *item); - - void clear(); - - RecycledListItem *item(const int row) const; - - RecycledListItem *takeItem(const int row); - -private: - Q_DISABLE_COPY(ListModel) - QList<RecycledListItem *> m_items; -}; - -#endif // LISTMODEL_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listwidget.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listwidget.cpp deleted file mode 100644 index 6e09a09d81..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listwidget.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QGraphicsSceneResizeEvent> -#include <QGraphicsGridLayout> -#include <QGraphicsLinearLayout> -#include <QTimer> -#include "listwidget.h" - -ListWidget::ListWidget(QGraphicsWidget * parent) - : GvbWidget(parent), - m_layout(new QGraphicsLinearLayout(Qt::Vertical)), - m_listView(new SimpleListView(this)) -{ - //listView->setViewport(listView->content()); - //listView->content()->setParentItem(listView); - setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - setContentsMargins(0,0,0,0); - m_layout->setContentsMargins(0,0,0,0); - m_listView->setContentsMargins(0,0,0,0); - m_layout->addItem(m_listView); - setLayout(m_layout); - - m_scroller.setScrollable(m_listView); - m_listView->installEventFilter(&m_scroller); - m_listView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); -} - -ListWidget::~ListWidget() -{ - -} - -void ListWidget::addItem(QGraphicsWidget *item) -{ - m_listView->addItem(item); -} - -void ListWidget::insertItem(int index, QGraphicsWidget *item) -{ - m_listView->insertItem(index, item); -} - -QGraphicsWidget* ListWidget::takeItem(int row) -{ - return m_listView->takeItem(row); -} - -QGraphicsWidget* ListWidget::itemAt(int row) -{ - return m_listView->itemAt(row); -} - -/* virtual */ -void ListWidget::resizeEvent( QGraphicsSceneResizeEvent * event ) -{ - QGraphicsWidget::resizeEvent(event); -} - -int ListWidget::itemCount() const -{ - if (m_listView) - return m_listView->itemCount(); - return 0; -} - -ScrollBar* ListWidget::verticalScrollBar() const -{ - if (m_listView) - return m_listView->verticalScrollBar(); - return 0; -} - -bool ListWidget::listItemCaching() const -{ - return m_listView->listItemCaching(); -} - -void ListWidget::setListItemCaching(bool enable) -{ - m_listView->setListItemCaching(enable); -} - -void ListWidget::setTwoColumns(const bool twoColumns) -{ - m_listView->setTwoColumns(twoColumns); -} - -bool ListWidget::twoColumns() -{ - return m_listView->twoColumns(); -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listwidget.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listwidget.h deleted file mode 100644 index 0dfd41a1c3..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/listwidget.h +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef LISTWIDGET_H -#define LISTWIDGET_H - -#include <QGraphicsWidget> -#include "simplelistview.h" -#include "scroller.h" -#include "gvbwidget.h" - -class AbstractViewItem; -class QGraphicsSceneResizeEvent; -class QGraphicsGridLayout; -class QGraphicsLinearLayout; - -class ListWidget : public GvbWidget -{ - Q_OBJECT - -public: - ListWidget(QGraphicsWidget * parent = 0); - virtual ~ListWidget(); - void addItem(QGraphicsWidget *item); - void insertItem(int index, QGraphicsWidget *item); - QGraphicsWidget* takeItem(int row); - QGraphicsWidget* itemAt(int row); - int itemCount() const; - bool listItemCaching() const; - void setListItemCaching(bool enable); - ScrollBar* verticalScrollBar() const; - - void setTwoColumns(const bool twoColumns); - bool twoColumns(); - -protected: - virtual void resizeEvent( QGraphicsSceneResizeEvent * event ); - -private: - Q_DISABLE_COPY(ListWidget) - - QGraphicsLinearLayout *m_layout; - SimpleListView *m_listView; - Scroller m_scroller; -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/mainview.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/mainview.cpp deleted file mode 100644 index c8ccb60dbb..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/mainview.cpp +++ /dev/null @@ -1,331 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QDebug> -#include <QApplication> -#include <QGraphicsLinearLayout> -#ifndef QT_NO_OPENGL -#include <QGLWidget> -#endif -#include <QObject> - -#include "button.h" -#include "label.h" -#include "menu.h" -#include "topbar.h" -#include "backgrounditem.h" -#include "theme.h" -#include "mainview.h" -#include "gvbwidget.h" - -MainView::MainView(const bool enableOpenGL, const bool outputFps, const bool imageRendering, QWidget *parent) - : QGraphicsView(parent) - , m_scene(0) - , m_mainLayout(0) - , m_mainWidget(0) - , m_testWidget(0) - , m_imageBasedRendering(imageRendering) - , m_pixmapToRender(0) - , m_OutputFps(outputFps) - , m_fpsUpdated() - , m_Fpss() - , m_angle(0) - , m_enableOpenGL(enableOpenGL) -{ - construct(); -} - -MainView::~MainView() -{ - if (!m_scene->parent()) - delete m_scene; - - delete m_pixmapToRender; -} - -void MainView::setTestWidget(QGraphicsWidget *testWidget) -{ - if (!testWidget) - return; - - if (m_testWidget) { - m_mainLayout->removeItem(m_testWidget); - if (!m_testWidget->parent() && !m_testWidget->parentLayoutItem()) - delete m_testWidget; - } - m_testWidget = testWidget; - m_mainLayout->addItem(m_testWidget); - resizeContent(size()); -} - -QGraphicsWidget *MainView::takeTestWidget() -{ - if (m_testWidget) { - m_mainLayout->removeItem(m_testWidget); - QGraphicsWidget *tmp = m_testWidget; - m_testWidget = 0; - return tmp; - } - return 0; -} - -QGraphicsWidget *MainView::testWidget() -{ - return m_testWidget; -} - -void MainView::setImageBasedRendering(const bool imageBasedRendering) -{ - m_imageBasedRendering = imageBasedRendering; - delete m_pixmapToRender; - m_pixmapToRender = 0; - viewport()->update(); -} - -bool MainView::imageBasedRendering() const -{ - return m_imageBasedRendering; -} - -qreal MainView::fps() -{ - if (m_Fpss.count() <= 0) - updateFps(); - - if (m_Fpss.count() <= 0) - return 0.0; - - qreal sum = 0; - int count = m_Fpss.count(); - for (int i = 0; i<count; ++i) - sum += m_Fpss.at(i); - m_Fpss.clear(); - fpsReset(); - return sum/qreal(count); -} - -void MainView::fpsReset() -{ - m_frameCount = 0; - m_fpsFirstTs.start(); - m_fpsLatestTs = m_fpsFirstTs; - m_fpsUpdated.start(); -} - -void MainView::rotateContent(int angle) -{ - bool portrait = ((m_angle+angle)%90 == 0) && ((m_angle+angle)%180 != 0); - bool landscape = ((m_angle+angle)%180 == 0); - if (!portrait && !landscape) - return; - - m_angle = (m_angle + angle)%360; - - rotate(angle); - - resizeContent(size()); -} - -int MainView::rotationAngle() const -{ - return m_angle; -} - -void MainView::resizeContent(const QSize &s) -{ - QSizeF l_size(s); - QSizeF p_size(l_size.height(), l_size.width()); - bool portrait = (m_angle%90 == 0) && (m_angle%180 != 0); - if (portrait) { - m_mainWidget->resize(p_size); - m_backGround->resize(p_size); - } - else { - m_mainWidget->resize(l_size); - m_backGround->resize(l_size); - } - m_menu->setPos(m_topBar->getStatusBarLocation()); - setSceneRect(QRectF(m_mainWidget->pos(), m_mainWidget->size())); -} - -void MainView::resizeEvent(QResizeEvent * event) -{ - QGraphicsView::resizeEvent(event); - resizeContent(event->size()); -} - -void MainView::paintEvent (QPaintEvent *event) -{ - if (m_imageBasedRendering) { - if (!m_pixmapToRender) - m_pixmapToRender = new QPixmap(size()); - - if (m_pixmapToRender->size() != size()) { - delete m_pixmapToRender; - m_pixmapToRender = new QPixmap(size()); - } - QPainter p(m_pixmapToRender); - render(&p); - p.end(); - } - else { - QGraphicsView::paintEvent(event); - } - - if (!m_OutputFps) - emit repainted(); - - m_frameCount++; - m_fpsLatestTs.start(); - if(m_fpsUpdated.elapsed() > 2000) { - updateFps(); - m_fpsUpdated.start(); - } -} - -void MainView::keyPressEvent(QKeyEvent *event) -{ - if (event->key() == Qt::Key_F) { - if (isFullScreen()) - showNormal(); - else - showFullScreen(); - } - - //S60 3.x specific - if(m_menu->menuVisible()) { - m_menu->keyPressEvent(event); - return; - } - - if(event->key() == 16777235 ) { //Up Arrow - GvbWidget* widget = qobject_cast<GvbWidget*>(m_testWidget); - if(widget) - widget->keyPressEvent(event); - } - - if(event->key() == 16777237 ) { //Down Arrow - GvbWidget* widget = qobject_cast<GvbWidget*>(m_testWidget); - if(widget) - widget->keyPressEvent(event); - } - - if(event->key() == 17825792 ) { //LSK - if(!m_menu->menuVisible()) - m_menu->menuShowHide(); - } - - if(event->key() == 17825793 ) { //RSK - QApplication::quit(); - } -} - -void MainView::construct() -{ - m_scene = new QGraphicsScene; - -#ifndef QT_NO_OPENGL - if (m_enableOpenGL) { - qDebug() << "OpenGL enabled"; - m_scene->setSortCacheEnabled(false); - setViewport(new QGLWidget); - - // Qt doc says: This is the preferred update mode for - // viewports that do not support partial updates, such as QGLWidget... - setViewportUpdateMode(QGraphicsView::FullViewportUpdate); - } else -#endif - setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate); - - setScene(m_scene); - m_scene->setItemIndexMethod(QGraphicsScene::NoIndex); - - //setCacheMode(QGraphicsView::CacheBackground); - setAlignment(Qt::AlignLeft | Qt::AlignTop); - - // Turn off automatic background - setAttribute(Qt::WA_OpaquePaintEvent); - setAttribute(Qt::WA_NoBackground); - setAttribute(Qt::WA_NoSystemBackground); - setAutoFillBackground(false); - - //Background - m_backGround = new BackgroundItem("background.svg"); - m_scene->addItem(m_backGround); - m_backGround->setZValue(0); - - //Menu - m_menu = new Menu(this); - m_scene->addItem(m_menu); //Add menu to the scene directly - m_menu->setZValue(10); //Bring to front - - m_mainLayout = new QGraphicsLinearLayout(Qt::Vertical); - m_mainLayout->setContentsMargins(0,0,0,0); - m_mainLayout->setSpacing(0); - - m_mainWidget = new QGraphicsWidget; - m_mainWidget->setLayout(m_mainLayout); - m_mainWidget->setZValue(1); - m_scene->addItem(m_mainWidget); - - //Topbar - m_topBar = new TopBar(this, 0); - m_mainLayout->addItem(m_topBar); - m_topBar->setZValue(1); - connect(m_topBar, SIGNAL(clicked(bool)), m_menu, SLOT(menuShowHide())); - - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setContentsMargins(0,0,0,0); - setViewportMargins(0,0,0,0); - setFrameShape(QFrame::NoFrame); - - fpsReset(); - m_fpsUpdated.start(); -} - -void MainView::updateFps() -{ - int msecs = m_fpsFirstTs.msecsTo(m_fpsLatestTs); - qreal fps = 0; - if (msecs > 0) { - fps = m_frameCount * 1000.0 / msecs; - - if (m_OutputFps) - qDebug() << "FPS: " << fps; - - m_Fpss.append(fps); - } - m_fpsFirstTs = m_fpsLatestTs; - m_frameCount = 0; -} - -Menu *MainView::menu() -{ - return m_menu; -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/mainview.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/mainview.h deleted file mode 100644 index d7fe404023..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/mainview.h +++ /dev/null @@ -1,110 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef __MAINWINDOW_H__ -#define __MAINWINDOW_H__ - -#include <QGraphicsView> -#include <QTime> -#include <QTimer> - -#include "settings.h" - -class QGraphicsScene; -class QGraphicsLinearLayout; -class QResizeEvent; -class Label; -class Menu; -class BackgroundItem; -class TopBar; - -class MainView : public QGraphicsView { - -Q_OBJECT - -public: - MainView(const bool enableOpenGL, const bool outputFps, const bool imageBasedRendering = false, QWidget *parent = 0); - ~MainView(); - - void setTestWidget(QGraphicsWidget *testWidget); - QGraphicsWidget *takeTestWidget(); - QGraphicsWidget *testWidget(); - - qreal fps(); - void fpsReset(); - void setImageBasedRendering(const bool imageBasedRendering); - bool imageBasedRendering() const; - Menu *menu(); - int rotationAngle() const; - -signals: - void repainted(); - -public slots: - void rotateContent(int angle); - -protected: - - virtual void resizeEvent(QResizeEvent * event); - virtual void paintEvent(QPaintEvent *event); - virtual void keyPressEvent(QKeyEvent *event); - virtual void wheelEvent(QWheelEvent *event) { Q_UNUSED (event); }; - -private slots: - void updateFps(); - -private: - void construct(); - void resizeContent(const QSize &s); - -private: - Q_DISABLE_COPY(MainView) - - QGraphicsScene *m_scene; - QGraphicsLinearLayout *m_mainLayout; - QGraphicsWidget *m_mainWidget; - QGraphicsWidget *m_testWidget; - Menu* m_menu; - BackgroundItem* m_backGround; - TopBar* m_topBar; - - bool m_imageBasedRendering; - QPixmap *m_pixmapToRender; - // Used for FPS - int m_frameCount; - QTime m_fpsFirstTs; - QTime m_fpsLatestTs; - bool m_OutputFps; - QTime m_fpsUpdated; - QList<qreal> m_Fpss; - - int m_angle; - bool m_enableOpenGL; -}; - -#endif //__MAINWINDOW_H__ diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/menu.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/menu.cpp deleted file mode 100644 index 1cc75d569b..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/menu.cpp +++ /dev/null @@ -1,189 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QGraphicsView> -#include <QGraphicsWidget> -#include <QGraphicsLinearLayout> -#include <QList> - -#include "button.h" -#include "menu.h" -#include "themeevent.h" -#include "theme.h" - -static const int MinMenuItemWidth = 150; -static const int MinMenuItemHeight = 40; - -Menu::Menu(QGraphicsView* parent) : QGraphicsWidget(), - m_Parent(parent), m_Layout(new QGraphicsLinearLayout(Qt::Vertical, this)), - m_ButtonContainer(0), m_isMenuVisible(false), m_currentSelectedIndex(-1) -{ - init(); -} - -Menu::~Menu() -{ - for(int i = 0; i < m_ButtonContainer->count(); i++ ) { - delete m_ButtonContainer->at(i); - } - m_ButtonContainer->clear(); - - delete m_ButtonContainer; - m_ButtonContainer = 0; -} - -void Menu::init() -{ - m_ButtonContainer = new QList<Button*>; - - m_Layout->setContentsMargins(0,0,0,0); - m_Layout->setSpacing(0); - - setMinimumWidth(150); - - setLayout(m_Layout); - - connect(Theme::p(), SIGNAL(themeChanged()), this, SLOT(themeChange())); -} - -Button* Menu::addMenuItem(const QString itemName, QObject* receiver, const char* member) -{ - Button* button = new Button(itemName ,this); - button->setVisible(m_isMenuVisible); - connect(button, SIGNAL(clicked(bool)), receiver, member); - connect(button, SIGNAL(clicked(bool)), this, SLOT(menuShowHide())); - m_ButtonContainer->append(button); - button->setMinimumWidth(MinMenuItemWidth); - button->setMinimumHeight(MinMenuItemHeight); - return button; -} - -void Menu::menuShowHide() -{ - m_isMenuVisible ? menuHide() : menuShow(); - m_isMenuVisible = !m_isMenuVisible; -} - -void Menu::menuShow() -{ - for(int i = 0; i < m_ButtonContainer->count(); i++) { - Button* button = m_ButtonContainer->at(i); - m_Layout->addItem(button); - button->show(); - } -} - -void Menu::menuHide() -{ - for(int i = 0; i < m_ButtonContainer->count(); i++) { - Button* button = m_ButtonContainer->at(i); - button->select(false); - button->hide(); - m_Layout->removeItem(button); - } - m_currentSelectedIndex = -1; -} - -void Menu::themeChange() -{ - QPixmap pixmap = Theme::p()->pixmap("status_field_middle.svg", - QSize(MinMenuItemWidth, MinMenuItemHeight)); - - for(int i = 0; i < m_ButtonContainer->count(); i++) { - Button* button = m_ButtonContainer->at(i); - button->setBackground(pixmap); - } - update(); -} - -void Menu::keyPressEvent(QKeyEvent *event) -{ - //S60 3.x specific - if(event->key() == 16777235 ) { //Up Arrow - if(m_currentSelectedIndex > 0) { //One step up - Button* button = m_ButtonContainer->at(m_currentSelectedIndex); - button->select(false); - button->update(); - - m_currentSelectedIndex--; - button = m_ButtonContainer->at(m_currentSelectedIndex); - button->select(true); - button->update(); - } - else { //Jump to bottom - if(m_currentSelectedIndex >= 0) { - Button* button = m_ButtonContainer->at(m_currentSelectedIndex); - button->select(false); - button->update(); - } - m_currentSelectedIndex = m_ButtonContainer->count() -1; - if(m_currentSelectedIndex >= 0) { - Button* button = m_ButtonContainer->at(m_currentSelectedIndex); - button->select(true); - button->update(); - } - } - } - - if(event->key() == 16777237 ) { //Down Arrow - if (m_currentSelectedIndex < m_ButtonContainer->count()-1) { //One step down - if(m_currentSelectedIndex >= 0) { - Button* button = m_ButtonContainer->at(m_currentSelectedIndex); - button->select(false); - button->update(); - } - m_currentSelectedIndex++; - Button* button = m_ButtonContainer->at(m_currentSelectedIndex); - button->select(true); - button->update(); - } - else { //Jump to top - if(m_currentSelectedIndex >= 0) { - Button* button = m_ButtonContainer->at(m_currentSelectedIndex); - button->select(false); - button->update(); - m_currentSelectedIndex = 0; - button = m_ButtonContainer->at(m_currentSelectedIndex); - button->select(true); - button->update(); - } - } - } - - if(event->key() == 17825792 || event->key() == 16842752 || //LSK, center key or enter - event->key() == 16777221 ) { - if(m_currentSelectedIndex >= 0) { - Button* button = m_ButtonContainer->at(m_currentSelectedIndex); - button->click(); - } - } - - if(event->key() == 17825793 ) { //RSK - menuShowHide(); - } -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/menu.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/menu.h deleted file mode 100644 index 074d5b9d95..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/menu.h +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef __MENU_H__ -#define __MENU_H__ - -#include <QGraphicsWidget> -#include <QList> - -class QGraphicsView; -class QGraphicsLinearLayout; -class Button; - -class Menu : public QGraphicsWidget -{ - Q_OBJECT -public: - Menu(QGraphicsView* parent); - ~Menu(); - -public: - Button* addMenuItem(const QString itemName, QObject* receiver, const char* member); - inline bool menuVisible() { return m_isMenuVisible; } - virtual void keyPressEvent(QKeyEvent *event); - -public slots: - void themeChange(); - -public slots: - void menuShowHide(); - -private: - void init(); - void menuShow(); - void menuHide(); - -private: - Q_DISABLE_COPY(Menu) - QGraphicsView* m_Parent; - QGraphicsLinearLayout* m_Layout; - QList<Button*>* m_ButtonContainer; - bool m_isMenuVisible; - int m_currentSelectedIndex; -}; - -#endif // __MENU_H__ diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/recycledlistitem.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/recycledlistitem.cpp deleted file mode 100644 index c0aed25abb..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/recycledlistitem.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QGraphicsGridLayout> -#include <QDebug> - -#include "recycledlistitem.h" -#include "listmodel.h" - -static const int MinItemHeight = 70; -static const int MinItemWidth = 276; - -RecycledListItem::RecycledListItem(QGraphicsWidget *parent) - : AbstractViewItem(parent), - m_item(new ListItem(this)), - m_item2(0), - m_model(0), - m_layout(new QGraphicsGridLayout()) -{ - m_item->setMinimumWidth(MinItemWidth); - setContentsMargins(0,0,0,0); - setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - m_layout->addItem(m_item, 0, 0); - setLayout(m_layout); - m_layout->setContentsMargins(0,0,0,0); - m_layout->setSpacing(0); - m_layout->setHorizontalSpacing(0.0); - m_layout->setVerticalSpacing(0.0); -} - -RecycledListItem::~RecycledListItem() -{ -} - -void RecycledListItem::setModel(QAbstractItemModel *model) -{ - m_model = model; -} - -/*virtual*/ -AbstractViewItem *RecycledListItem::newItemInstance() -{ - RecycledListItem* item = new RecycledListItem(); - return item; -} - -QSizeF RecycledListItem::effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint) const -{ - QSizeF s = m_item->effectiveSizeHint(which,constraint); - if (m_item2) - s.setWidth(s.width()*2); - if (s.height()<MinItemHeight) - s.setHeight(MinItemHeight); - return s; -} - -QVariant RecycledListItem::data(int role) const -{ - if (m_item && role == Qt::DisplayRole) - return m_item->data(); - - return QVariant(); -} - -void RecycledListItem::setData(const QVariant &value, int role) -{ - if (m_item && role == Qt::DisplayRole) { - m_item->setData(value); - if (m_item2) { - m_item2->setData(value); - } - } -} - -/*virtual*/ -void RecycledListItem::resizeEvent(QGraphicsSceneResizeEvent *event) -{ - AbstractViewItem::resizeEvent(event); -} - -void RecycledListItem::updateItemContents() -{ - AbstractViewItem::updateItemContents(); - if (m_model && m_index.isValid()) - setData(m_model->data(m_index,Qt::DisplayRole), Qt::DisplayRole); -} - -void RecycledListItem::setTwoColumns(const bool enabled) -{ - if (m_item2 && enabled) - return; - - if (enabled) { - m_item2 = new ListItem(); - m_item2->setMinimumWidth(MinItemWidth); - m_layout->addItem(m_item2, 0, 1); - updateItemContents(); - } - else { - if (m_layout->count() > 1) { - m_layout->removeAt(1); - } - delete m_item2; - m_item2 = 0; - } - - if (!m_layout->isActivated()) - m_layout->activate(); -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/recycledlistitem.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/recycledlistitem.h deleted file mode 100644 index 021a8b8902..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/recycledlistitem.h +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef RECYCLEDLISTITEM_H -#define RECYCLEDLISTITEM_H - -#include "abstractviewitem.h" - -class ListItem; -class QGraphicsWidget; -class QGraphicsGridLayout; - -class RecycledListItem : public AbstractViewItem -{ - Q_OBJECT -public: - RecycledListItem(QGraphicsWidget *parent=0); - virtual ~RecycledListItem(); - - virtual void setModel(QAbstractItemModel *model); - - virtual AbstractViewItem *newItemInstance(); - virtual void updateItemContents(); - - virtual QVariant data(int role) const; - virtual void setData(const QVariant &value, int role = Qt::DisplayRole); - - ListItem *item() { return m_item; } - - void setTwoColumns(const bool enabled); - -protected: - virtual QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; - virtual void resizeEvent(QGraphicsSceneResizeEvent *event); - -private: - Q_DISABLE_COPY(RecycledListItem) - - ListItem *m_item; - ListItem *m_item2; - QAbstractItemModel *m_model; - QGraphicsGridLayout *m_layout; -}; - -#endif // RECYCLEDLISTITEM_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/resourcemoninterface.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/resourcemoninterface.h deleted file mode 100644 index b03f09048a..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/resourcemoninterface.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef __RESOURCEMONINTERFACE_H__ -#define __RESOURCEMONINTERFACE_H__ - -class ResourceMonitorInterface -{ -public: - struct MemoryAllocation - { - int allocatedInAppThread; - int numberOfAllocatedCellsInAppThread; - int availableMemoryInAppThreadHeap; - qint64 availableMemoryInSystem; - qint64 totalMemoryInSystem; - MemoryAllocation() : - allocatedInAppThread(0), - numberOfAllocatedCellsInAppThread(0), - availableMemoryInAppThreadHeap(0), - availableMemoryInSystem(0), - totalMemoryInSystem(0) - {} - }; - - struct CpuUsage - { - qreal systemUsage; - qreal appTreadUsage; - CpuUsage() : - systemUsage(0.0), - appTreadUsage(0.0) - {} - }; - -public: - virtual ~ResourceMonitorInterface() {} - -public: - //for symbian, prepares the resource monitor for data capture, opens handle to ekern null - //thread and sets initial values - virtual bool Prepare(QString applicationThreadName) = 0; - - //functions for CPU load and memory - Call Prepare before calling these - virtual CpuUsage CPULoad()=0; - virtual MemoryAllocation MemoryLoad()=0; - - virtual void BeginMeasureMemoryLoad()=0; - virtual MemoryAllocation EndMeasureMemoryLoad()=0; - - virtual void BeginMeasureCPULoad()=0; - virtual CpuUsage EndMeasureCPULoad()=0; - -}; - -Q_DECLARE_INTERFACE(ResourceMonitorInterface, - "com.trolltech.Plugin.ResourceMonitorInterface/1.0"); - -#endif //__RESOURCEMONINTERFACE_H__ diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scrollbar.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scrollbar.cpp deleted file mode 100644 index 81f123e2b7..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scrollbar.cpp +++ /dev/null @@ -1,286 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QGraphicsWidget> -#include <QPainter> -#include <QGraphicsSceneMouseEvent> -#include <QDebug> - -#include "scrollbar.h" -#include "theme.h" - -class ScrollBarPrivate { - Q_DECLARE_PUBLIC(ScrollBar) - -public: - - ScrollBarPrivate(Qt::Orientation orientation, ScrollBar *scrollBar) - : orientation(orientation) - , sliderPosition(0.0) - , sliderSize(0.0) - , sliderDown(false) - , q_ptr(scrollBar) - { - construct(); - } - - void themeChange() - { - construct(); - updateSlider(); - } - - void construct() - { - scrollerPixmap = Theme::p()->pixmap("scroll.svg"); - scrollBarPixmap = Theme::p()->pixmap("scrollbar.svg"); - - if (orientation == Qt::Horizontal) { - scrollerPixmap = scrollerPixmap.transformed(QTransform().rotate(90)); - scrollBarPixmap = scrollBarPixmap.transformed(QTransform().rotate(90)); - } - } - - void setSliderPosition(qreal pos) - { - if (pos < 0.0) - pos = 0.0; - - if (pos > sliderSize) - pos = sliderSize; - - sliderPosition = pos; - - if (!qFuzzyCompare(pos, sliderPosition)) - updateSlider(); - } - - void updateSlider() - { - QRectF oldSlider = slider; - slider = q_func()->boundingRect(); - - qreal x = 0; - qreal y = 0; - qreal w = scrollerPixmap.width(); - qreal h = scrollerPixmap.height(); - - //Adjust the scrollBar in relation to the scroller - - if (orientation == Qt::Horizontal) { - qreal scrollBarHeight = scrollBarPixmap.height(); - - if (h > scrollBarHeight) { - slider.setTop((h - scrollBarHeight)/2.0); - slider.setHeight(scrollBarHeight); - } - } else { - qreal scrollBarWidth = scrollBarPixmap.width(); - - if (w > scrollBarWidth) { - slider.setLeft((w - scrollBarWidth)/2.0); - } - slider.setWidth(scrollBarWidth); - } - - if(oldSlider != slider && (slider.size().width() > 0 &&slider.size().height() > 0 )) { - scrollBarPixmap = Theme::p()->pixmap("scrollbar.svg", slider.size().toSize()); - } - cursor = QRectF(x, y, w, h); - - if (orientation == Qt::Horizontal) { - qreal dx = qreal(int(sliderPosition)) * (slider.width() - cursor.width()) / sliderSize; - cursor.translate(dx, 0.0); - } else { - qreal dy = qreal(int(sliderPosition)) * (slider.height() - cursor.height()) / sliderSize; - cursor.translate(0.0, dy); - } - } - - Qt::Orientation orientation; - qreal sliderPosition; - qreal sliderSize; - - QPointF pressPos; - bool sliderDown; - - QRectF slider; - QRectF cursor; - QPixmap scrollerPixmap; - QPixmap scrollBarPixmap; - - ScrollBar *q_ptr; -}; - -ScrollBar::ScrollBar(Qt::Orientation orientation, QGraphicsWidget *parent) - : QGraphicsWidget(parent) - , d_ptr(new ScrollBarPrivate(orientation, this)) -{ - setSizePolicy(QSizePolicy::Fixed, QSizePolicy::MinimumExpanding); - setContentsMargins(0, 0, 0, 0); - - connect(Theme::p(), SIGNAL(themeChanged()), this, SLOT(themeChange())); -} - -ScrollBar::~ScrollBar() -{ - delete d_ptr; -} - -qreal ScrollBar::sliderSize() const -{ - Q_D(const ScrollBar); - return d->sliderSize; -} - -void ScrollBar::setSliderSize(const qreal s) -{ - Q_D(ScrollBar); - d->sliderSize = s; -} - -void ScrollBar::setSliderPosition(qreal pos) -{ - Q_D(ScrollBar); - - d->setSliderPosition(pos); - prepareGeometryChange(); - emit sliderPositionChange(d->sliderPosition); -} - -qreal ScrollBar::sliderPosition() const -{ - Q_D(const ScrollBar); - return d->sliderPosition; -} - -bool ScrollBar::sliderDown() const -{ - Q_D(const ScrollBar); - return d->sliderDown; -} - -void ScrollBar::paint(QPainter *painter, - const QStyleOptionGraphicsItem *option, - QWidget *widget) -{ - Q_D(ScrollBar); - Q_UNUSED(widget); - Q_UNUSED(option); - - d->updateSlider(); - - QRect sliderRect = d->slider.toRect(); - painter->drawPixmap(sliderRect.topLeft(), d->scrollBarPixmap); - - QRect cursorRect = d->cursor.toRect(); - painter->drawPixmap(cursorRect.topLeft(), d->scrollerPixmap); -} - -QSizeF ScrollBar::sizeHint(Qt::SizeHint which, - const QSizeF &constraint) const -{ - Q_D(const ScrollBar); - - QSizeF s; - - if (d->orientation == Qt::Horizontal) - s = QSizeF(-1, qMax(d->scrollBarPixmap.height(), d->scrollerPixmap.height())); - else - s = QSizeF(qMax(d->scrollBarPixmap.width(), d->scrollerPixmap.width()), -1); - - switch (which) - { - case Qt::MinimumSize: - return s; - - case Qt::MaximumSize: - return s; - - default: - return QGraphicsWidget::sizeHint(which, constraint); - } -} - -void ScrollBar::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(ScrollBar); - - d->updateSlider(); - - if (d->cursor.contains(event->pos())) { - d->sliderDown = true; - d->pressPos = event->pos(); - emit sliderPressed(); - } -} - -void ScrollBar::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(ScrollBar); - Q_UNUSED(event); - - d->sliderDown = false; -} - -void ScrollBar::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(ScrollBar); - - if (!d->sliderDown) - return; - - if (d->orientation == Qt::Horizontal) { - qreal f = (event->pos().x() - d->pressPos.x())/(d->slider.width() - d->cursor.width()); - qreal dx = f * d->sliderSize; - - d->setSliderPosition(d->sliderPosition + dx); - } else { - qreal f = (event->pos().y() - d->pressPos.y())/(d->slider.height() - d->cursor.height()); - qreal dy = f * d->sliderSize; - - d->setSliderPosition(d->sliderPosition + dy); - } - - d->pressPos = event->pos(); - - prepareGeometryChange(); - emit sliderPositionChange(d->sliderPosition); -} - -void ScrollBar::resizeEvent(QGraphicsSceneResizeEvent *event) -{ - QGraphicsWidget::resizeEvent(event); -} - -void ScrollBar::themeChange() -{ - Q_D(ScrollBar); - d->themeChange(); -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scrollbar.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scrollbar.h deleted file mode 100644 index 966052676c..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scrollbar.h +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SCROLLBAR_H -#define SCROLLBAR_H - -#include <QGraphicsWidget> -#include <QPixmap> - -class ScrollBarPrivate; - -class ScrollBar : public QGraphicsWidget -{ - Q_OBJECT - Q_DECLARE_PRIVATE(ScrollBar) - -public: - - ScrollBar(Qt::Orientation orientation, QGraphicsWidget *parent=0); - virtual ~ScrollBar(); - -public: - - bool sliderDown() const; - qreal sliderPosition() const; - qreal sliderSize() const; - void setSliderSize(const qreal s); - -signals: - - void sliderPressed(); - - void sliderPositionChange(qreal position); - -public slots: - - void setSliderPosition(qreal pos); - void themeChange(); - -private: - - void paint(QPainter *painter, - const QStyleOptionGraphicsItem *option, - QWidget *widget); - - QSizeF sizeHint(Qt::SizeHint which, - const QSizeF &constraint = QSizeF()) const; - - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void resizeEvent(QGraphicsSceneResizeEvent *event); - -private: - Q_DISABLE_COPY(ScrollBar) - ScrollBarPrivate *d_ptr; -}; - -#endif // SCROLLBAR_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scroller.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scroller.cpp deleted file mode 100644 index 203ea7e046..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scroller.cpp +++ /dev/null @@ -1,292 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QScrollBar> -#include <QEvent> -#include <QGraphicsSceneMouseEvent> -#include <QGraphicsView> -#include <QDebug> - -#include "scroller.h" -#include "scroller_p.h" -#include "abstractscrollarea.h" -#include "scrollbar.h" - -const int ScrollStep = 1; -const int UpdateScrollingInterval = 55; -const int UpdateScrollingSmoothInterval = 0; -static const qreal MaxScrollingSpeed = 48.0; - -ScrollerPrivate::ScrollerPrivate(Scroller *scroller) - : m_scrollArea(0) - , m_scrollFactor(1.0) - , m_state(Stopped) - , q_ptr(scroller) - , m_eventViewport(0) -{ -} - -ScrollerPrivate::~ScrollerPrivate() -{ -} - -void ScrollerPrivate::stopScrolling() -{ - m_state = ScrollerPrivate::Started; - m_cursorPos = QCursor::pos(); - m_speed = QPoint(0, 0); - - if (m_scrollTimer.isActive()) - m_scrollTimer.stop(); -} - -//Maps screen coordinates to scrollArea coordinates though current m_eventViewport widget -QPointF ScrollerPrivate::mapToScrollArea(const QPoint &point) -{ - if (!m_scrollArea || !m_eventViewport) - return point; - - QObject *vparent = m_eventViewport->parent(); - if (!vparent) - return point; - - QGraphicsView *view = qobject_cast<QGraphicsView*>(vparent); - if (!view) - return point; - - QPoint pt = view->mapFromGlobal(point); - return m_scrollArea->mapFromScene(view->mapToScene(pt)); -} - -bool ScrollerPrivate::eventFilter(QObject *obj, QEvent *event) -{ - if (obj != m_scrollArea - || (event->type() != QEvent::GraphicsSceneMouseMove - && event->type() != QEvent::GraphicsSceneMousePress - && event->type() != QEvent::GraphicsSceneMouseRelease - /*&& event->type() != QEvent::GraphicsSceneKeyPressed - && event->type() != QEvent::GraphicsSceneKeyReleased*/)) - return false; - - QGraphicsSceneMouseEvent* mouseEvent = - static_cast<QGraphicsSceneMouseEvent*>(event); - - m_eventViewport = mouseEvent->widget(); - - bool eventConsumed = false; - - switch (m_state) { - case ScrollerPrivate::Stopped: - if (mouseEvent->type() == QEvent::GraphicsSceneMousePress && - mouseEvent->buttons() == Qt::LeftButton) { - m_cursorPos = QCursor::pos(); - m_speed = QPointF(0.0, 0.0); - m_state = Started; - } - - eventConsumed = true; - break; - - case ScrollerPrivate::Started: - if (mouseEvent->type() == QEvent::GraphicsSceneMouseMove) { - m_cursorPos = QCursor::pos(); - m_state = ManualScrolling; - - if (!m_scrollTimer.isActive()) - m_scrollTimer.start(UpdateScrollingInterval); - else { - m_scrollTimer.stop(); - m_scrollTimer.start(UpdateScrollingInterval); - } - - } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { - m_speed = QPoint(0, 0); - m_state = Stopped; - - if (m_scrollTimer.isActive()) - m_scrollTimer.stop(); - } - eventConsumed = true; - break; - - case ScrollerPrivate::ManualScrolling: - if (mouseEvent->type() == QEvent::GraphicsSceneMouseMove && - m_scrollArea->viewport()->boundingRect().contains(mouseEvent->pos()) ) { - - ScrollBar *hscroll = m_scrollArea->horizontalScrollBar(); - ScrollBar *vscroll = m_scrollArea->verticalScrollBar(); - - QPointF d = m_scrollFactor * (mapToScrollArea(QCursor::pos()) - mapToScrollArea(m_cursorPos)); - - hscroll->setSliderPosition(hscroll->sliderPosition() - d.x()); - vscroll->setSliderPosition(vscroll->sliderPosition() - d.y()); - - if (m_lastCursorTime.elapsed() > UpdateScrollingInterval) { - m_speed = mapToScrollArea(QCursor::pos()) - mapToScrollArea(m_cursorPos); - m_lastCursorTime.restart(); - } - - m_lastFrameTime.restart(); - - m_cursorPos = QCursor::pos(); - } else if (mouseEvent->type() == QEvent::GraphicsSceneMouseRelease) { - m_state = AutoScrolling; - m_scrollSlowAccum = 0; - if (m_scrollTimer.isActive()) { - m_scrollTimer.stop(); - m_scrollTimer.start(UpdateScrollingSmoothInterval); - } - } - eventConsumed = true; - break; - - case ScrollerPrivate::AutoScrolling: - if (mouseEvent->type() == QEvent::GraphicsSceneMousePress) { - stopScrolling(); - } else if (mouseEvent->type() == QEvent::MouseButtonRelease) { - m_state = Stopped; - } - eventConsumed = true; - break; - - default: - break; - } - - return eventConsumed; -} - -void ScrollerPrivate::updateScrolling() -{ - bool scrollOngoing = false; - - if (!m_scrollArea) { - m_scrollTimer.stop(); - return; - } - - if (m_state == ManualScrolling) { - scrollOngoing = true; - m_speed = mapToScrollArea(QCursor::pos()) - mapToScrollArea(m_cursorPos); - m_cursorPos = QCursor::pos(); - } else if (m_state == AutoScrolling) { - scrollOngoing = true; - - - qreal x = qMax(-MaxScrollingSpeed, qMin(m_speed.x(), MaxScrollingSpeed)); - qreal y = qMax(-MaxScrollingSpeed, qMin(m_speed.y(), MaxScrollingSpeed)); - - int sinceLast = m_lastFrameTime.elapsed(); - int slowdown = (ScrollStep * sinceLast) + m_scrollSlowAccum; - m_scrollSlowAccum = slowdown & 0x3F; - slowdown >>= 6; - - if (x > 0) - x= qMax(qreal(0.0), x - slowdown); - else - x = qMin(qreal(0.0), x + slowdown); - - if (y > 0) - y = qMax(qreal(0.0), y - slowdown); - else - y = qMin(qreal(0.0), y + slowdown); - - m_speed = QPoint(x,y); - - if (m_speed != QPoint(0,0)) { - QPointF d; - - int xstep = (int(m_speed.x()) * sinceLast)>>6; // >>6 ~= *60 /1000 (==*64 /1024) - int ystep = (int(m_speed.y()) * sinceLast)>>6; - //qDebug() << sinceLast << "speedy" << speed.y()<<"ystep" << ystep; - QPoint step = QPoint(xstep,ystep); - - if (ystep > 0) - d = (m_scrollArea->pos() + step); - else - d = -(m_scrollArea->pos() - step); - - ScrollBar *hscroll = m_scrollArea->horizontalScrollBar(); - ScrollBar *vscroll = m_scrollArea->verticalScrollBar(); - - hscroll->setSliderPosition(hscroll->sliderPosition() - m_scrollFactor * d.x()); - vscroll->setSliderPosition(vscroll->sliderPosition() - m_scrollFactor * d.y()); - } else { - m_state = Stopped; - scrollOngoing = false; - } - } - - m_lastFrameTime.restart(); - - if (!scrollOngoing) - m_scrollTimer.stop(); -} - - -Scroller::Scroller(QObject *parent) - : QObject(parent), d_ptr(new ScrollerPrivate(this)) -{ - Q_D(Scroller); - connect(&d->m_scrollTimer, SIGNAL(timeout()), this, SLOT(updateScrolling())); -} - -Scroller::~Scroller() -{ - delete d_ptr; -} - -void Scroller::setScrollable(AbstractScrollArea *area) -{ - Q_D(Scroller); - - if (!area) - return; - - d->m_scrollArea = area; -} - -void Scroller::setScrollFactor(qreal scrollFactor) -{ - Q_D(Scroller); - - d->m_scrollFactor = scrollFactor; -} - -bool Scroller::eventFilter(QObject *obj, QEvent *event) -{ - Q_D(Scroller); - return d->eventFilter(obj, event); -} - -void Scroller::stopScrolling() -{ - Q_D(Scroller); - d->stopScrolling(); -} -#include "moc_scroller.cpp" diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scroller.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scroller.h deleted file mode 100644 index 8f40dcfd16..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scroller.h +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SCROLLER_H -#define SCROLLER_H - -#include <QObject> - -class ScrollerPrivate; -class AbstractScrollArea; - -class Scroller : public QObject -{ - Q_OBJECT - -public: - - Scroller(QObject *parent = 0); - virtual ~Scroller(); - -public: - - void setScrollable(AbstractScrollArea *area); - void setScrollFactor(qreal scrollFactor); - void stopScrolling(); - -private: - - bool eventFilter(QObject *obj, QEvent *ev); - -private: - - Q_DECLARE_PRIVATE(Scroller) - Q_DISABLE_COPY(Scroller) - - Q_PRIVATE_SLOT(d_ptr, void updateScrolling()) - - ScrollerPrivate * const d_ptr; -}; - -#endif // SCROLLER_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scroller_p.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scroller_p.h deleted file mode 100644 index cf11c7fa02..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/scroller_p.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SCROLLER_P_H -#define SCROLLER_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QPoint> -#include <QTimer> -#include <QTime> - -#include "scroller.h" - -class AbstractScrollArea; - -class ScrollerPrivate -{ - Q_DECLARE_PUBLIC(Scroller) - -public: - enum State { - Stopped, - Started, - ManualScrolling, - AutoScrolling - }; - - ScrollerPrivate(Scroller *scroller); - ~ScrollerPrivate(); - void stopScrolling(); - bool eventFilter(QObject *obj, QEvent *ev); - - AbstractScrollArea *m_scrollArea; - qreal m_scrollFactor; - QPoint m_cursorPos; - QPointF m_speed; - State m_state; - QTime m_lastCursorTime; - QTime m_lastFrameTime; - QTimer m_scrollTimer; - int m_scrollSlowAccum; - -private Q_SLOTS: - - void updateScrolling(); - -private: - - Q_DISABLE_COPY(ScrollerPrivate) - Scroller * const q_ptr; - QPointF mapToScrollArea(const QPoint &point); - QWidget *m_eventViewport; -}; - -#endif // SCROLLER_P_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/settings.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/settings.cpp deleted file mode 100644 index 9cb44882a6..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/settings.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "settings.h" - - -Settings::Settings() - : QObject(), - m_scriptName(), - m_outputFileName(), - m_resultFormat(0), - m_size(0,0), - m_angle(0), - m_listItemCount(200), - m_options() -{ -} - -Settings::~Settings() -{ -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/settings.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/settings.h deleted file mode 100644 index dc228162c4..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/settings.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SETTINGS_H -#define SETTINGS_H - -#include <QObject> -#include <QSize> -#include <QString> -#include <QFlags> - -class Settings : public QObject { - Q_OBJECT - -public: - enum Option { - NoOptions = 0x1, - UseListItemCache = 0x2, - UseOpenGL = 0x4, - OutputFps = 0x8, - NoResourceUsage = 0x10, - ManualTest = 0x20 - }; - Q_DECLARE_FLAGS(Options, Option) - - Settings(); - ~Settings(); - - const QString &scriptName() const - { return m_scriptName; } - void setScriptName(const QString& scriptName) - { m_scriptName = scriptName; } - - const QString &outputFileName() const - { return m_outputFileName; } - void setOutputFileName(const QString& outputFileName) - { m_outputFileName = outputFileName; } - - int resultFormat() const - { return m_resultFormat; } - void setResultFormat(int resultFormat) - { m_resultFormat = resultFormat; } - - const QSize& size() const - { return m_size; } - void setSize(const QSize& size) - { m_size = size; } - - int angle() const - { return m_angle; } - void setAngle(int angle) - { m_angle = angle; } - - const Options& options() const - { return m_options; } - void setOptions(Options options) - { m_options = options; } - - int listItemCount() - { return m_listItemCount; } - - void setListItemCount(int items) - { m_listItemCount = items; } - -private: - - QString m_scriptName; - QString m_outputFileName; - int m_resultFormat; - QSize m_size; - int m_angle; - int m_listItemCount; - Options m_options; -}; - -Q_DECLARE_OPERATORS_FOR_FLAGS(Settings::Options) - -#endif diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelist.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelist.cpp deleted file mode 100644 index 941cab8c21..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelist.cpp +++ /dev/null @@ -1,143 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QDebug> -#include <QGraphicsLinearLayout> -#include <QFont> -#include <QTime> - -#include "simplelist.h" -static const int MinItemWidth = 276; - -SimpleList::SimpleList(QGraphicsWidget *parent) - : GvbWidget(parent), - m_list(new ListWidget(this)) -{ - QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(); - layout->setContentsMargins(0,0,0,0); - setContentsMargins(0,0,0,0); - setLayout(layout); - layout->addItem(m_list); - setObjectName("SimpleList"); -} - -/*virtual*/ -SimpleList::~SimpleList() -{ -} - -void SimpleList::addItem(ListItem *item) -{ - item->setMinimumWidth(MinItemWidth); - m_list->addItem(item); -} - -void SimpleList::insertItem(int index, ListItem *item) -{ - item->setMinimumWidth(MinItemWidth); - m_list->insertItem(index, item); -} - -ListItem* SimpleList::takeItem(int row) -{ - return static_cast<ListItem*>(m_list->takeItem(row)); -} - -ListItem* SimpleList::itemAt(int row) -{ - return static_cast<ListItem*>(m_list->itemAt(row)); -} - -int SimpleList::itemCount() const -{ - if (m_list) - return m_list->itemCount(); - return 0; -} - -ScrollBar* SimpleList::verticalScrollBar() const -{ - if (m_list) - return m_list->verticalScrollBar(); - return 0; -} - -bool SimpleList::listItemCaching() const -{ - return m_list->listItemCaching(); -} - -void SimpleList::setListItemCaching(bool enable) -{ - m_list->setListItemCaching(enable); -} - -void SimpleList::keyPressEvent(QKeyEvent *event) -{ - static QTime keyPressInterval = QTime::currentTime(); - static qreal step = 0.0; - static bool repeat = false; - int interval = keyPressInterval.elapsed(); - - ScrollBar* sb = verticalScrollBar(); - qreal currentValue = sb->sliderPosition(); - - if(interval < 250 ) { - if(!repeat) step = 0.0; - step = step + 2.0; - if(step > 100) step = 100; - repeat = true; - } - else { - step = 1.0; - if(itemAt(0)) - step = itemAt(0)->size().height(); - repeat = false; - } - - if(event->key() == Qt::Key_Up ) { //Up Arrow - sb->setSliderPosition(currentValue - step); - } - - if(event->key() == Qt::Key_Down ) { //Down Arrow - sb->setSliderPosition(currentValue + step); - } - keyPressInterval.start(); -} - - -void SimpleList::setTwoColumns(const bool twoColumns) -{ - m_list->setTwoColumns(twoColumns); -} - -bool SimpleList::twoColumns() -{ - return m_list->twoColumns(); -} - diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelist.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelist.h deleted file mode 100644 index 3c1ec4f82a..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelist.h +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SIMPLELIST_H_ -#define SIMPLELIST_H_ - - -#include "gvbwidget.h" -#include "listitem.h" -#include "listwidget.h" - -class QGraphicsWidget; - -class SimpleList : public GvbWidget -{ - Q_OBJECT - -public: - SimpleList(QGraphicsWidget *parent=0); - virtual ~SimpleList(); - void addItem(ListItem *item); - void insertItem(int index, ListItem *item); - ListItem* takeItem(int row); - ListItem* itemAt(int row); - int itemCount() const; - virtual void keyPressEvent(QKeyEvent *event); - bool listItemCaching() const; - void setListItemCaching(bool enable); - - void setTwoColumns(const bool twoColumns); - bool twoColumns(); - -public slots: - ScrollBar* verticalScrollBar() const; - -private: - Q_DISABLE_COPY(SimpleList) - - ListWidget *m_list; -}; - -#endif /* LISTTEST_H_ */ diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelistview.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelistview.cpp deleted file mode 100644 index 67f34859c1..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelistview.cpp +++ /dev/null @@ -1,463 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui> - -#include "simplelistview.h" -#include "scrollbar.h" -#include "simplelistview.h" -#include "scrollbar.h" -#include "listitem.h" -#include "listitemcache.h" -#include "theme.h" - -class SimpleListViewPrivate -{ - Q_DECLARE_PUBLIC(SimpleListView) - -public: - - SimpleListViewPrivate(SimpleListView *button) - : m_content(0) - , m_layout(0) - , m_twoColumns(false) - , q_ptr(button) - , m_listItemCaching(false) - { - Q_Q(SimpleListView); - - m_layout = new QGraphicsGridLayout(); - m_layout->setContentsMargins(0, 0, 0, 0); - m_layout->setSpacing(0); - m_layout->setColumnSpacing(0,0); - m_layout->setColumnSpacing(1,0); - m_layout->setRowSpacing(0,0); - m_layout->setRowSpacing(1,0); - m_content = new QGraphicsWidget; - m_content->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - m_content->setParentItem(q->viewport()); - m_content->setLayout(m_layout); - - q->horizontalScrollBar()->setSliderSize(0.0); - - QObject::connect(Theme::p(), SIGNAL(themeChanged()), q, SLOT(themeChange())); - } - - ~SimpleListViewPrivate() - { - if (!m_content->parentItem() && !m_content->parent()) - delete m_content; - } - - void resizeContents(QSizeF s) - { - Q_UNUSED(s); - Q_Q(SimpleListView); - - if (!m_content) - return; - - const bool caching = q->listItemCaching(); - q->setListItemCaching(false); - - m_content->resize(q->viewport()->size().width(), - m_layout->preferredHeight()); - const bool clip = - m_content->size().width() > q->viewport()->size().width() - || m_content->size().height() > q->viewport()->size().height(); - - q->viewport()->setFlag( - QGraphicsItem::ItemClipsChildrenToShape, clip); - - q->setListItemCaching(caching); - } - - void resizeScrollBars() - { - Q_Q(SimpleListView); - - if (!m_content) - return; - - m_content->resize(m_content->size().width(), - m_layout->preferredHeight()); - - QRectF contentRect = m_content->boundingRect(); - QRectF listRect = q->boundingRect(); - - // List do not have horizontal scroll bar visible. - q->horizontalScrollBar()->setSliderSize(0.0); - - if (contentRect.height()-q->boundingRect().height() > 0) { - q->verticalScrollBar()->setSliderSize(contentRect.height()-q->boundingRect().height()); - if (q->verticalScrollBarPolicy() != Qt::ScrollBarAlwaysOff && - !q->verticalScrollBar()->isVisible()) { - q->verticalScrollBar()->show(); - } - } - else if (q->verticalScrollBarPolicy() == Qt::ScrollBarAsNeeded || - q->verticalScrollBarPolicy() == Qt::ScrollBarAlwaysOff) { - q->verticalScrollBar()->setSliderSize(0.0); - q->verticalScrollBar()->hide(); - } - else { - q->verticalScrollBar()->setSliderSize(0.0); - } - - qreal pos = 0.0; - if ((m_content->boundingRect().height() - q->boundingRect().height()) != 0) { - qreal min = qMin(-contentRect.top(), m_content->pos().y()); - qreal diff = contentRect.height() - listRect.height(); - pos = qAbs(contentRect.top() + min) / diff; - } - - q->verticalScrollBar()->setSliderPosition(pos); - } - - void updateListContents() - { - Q_Q(SimpleListView); - - const bool caching = q->listItemCaching(); - q->setListItemCaching(false); - - const QString defaultIcon = Theme::p()->pixmapPath()+"contact_default_icon.svg"; - const int itemCount = m_layout->count(); - - for (int i=0; i<itemCount; ++i) { - ListItem* item = static_cast<ListItem*>(m_layout->itemAt(i)); - - // Update default icons - const QString filename = item->icon(ListItem::LeftIcon)->fileName(); - if (filename.contains("contact_default_icon")) { - item->icon(ListItem::LeftIcon)->setFileName(defaultIcon); - } - - // Update status icons - QString statusIcon = item->icon(ListItem::RightIcon)->fileName(); - const int index = statusIcon.indexOf("contact_status"); - if (index != -1) { - statusIcon.remove(0, index); - item->icon(ListItem::RightIcon)->setFileName(Theme::p()->pixmapPath()+statusIcon); - } - - // Update fonts - item->setFont(Theme::p()->font(Theme::ContactName), ListItem::FirstPos); - item->setFont(Theme::p()->font(Theme::ContactNumber), ListItem::SecondPos); - item->setFont(Theme::p()->font(Theme::ContactEmail), ListItem::ThirdPos); - - // Update list dividers - if (i%2) { - item->setBackgroundBrush(Theme::p()->listItemBackgroundBrushOdd()); - item->setBackgroundOpacity(Theme::p()->listItemBackgroundOpacityOdd()); - } - else { - item->setBackgroundBrush(Theme::p()->listItemBackgroundBrushEven()); - item->setBackgroundOpacity(Theme::p()->listItemBackgroundOpacityEven()); - } - - // Update borders - item->setBorderPen(Theme::p()->listItemBorderPen()); - item->setRounding(Theme::p()->listItemRounding()); - - // Update icons - item->icon(ListItem::LeftIcon)->setRotation(Theme::p()->iconRotation(ListItem::LeftIcon)); - item->icon(ListItem::RightIcon)->setRotation(Theme::p()->iconRotation(ListItem::RightIcon)); - item->icon(ListItem::LeftIcon)->setOpacityEffectEnabled(Theme::p()->isIconOpacityEffectEnabled(ListItem::LeftIcon)); - item->icon(ListItem::RightIcon)->setOpacityEffectEnabled(Theme::p()->isIconOpacityEffectEnabled(ListItem::RightIcon)); - item->icon(ListItem::LeftIcon)->setSmoothTransformationEnabled(Theme::p()->isIconSmoothTransformationEnabled(ListItem::LeftIcon)); - item->icon(ListItem::RightIcon)->setSmoothTransformationEnabled(Theme::p()->isIconSmoothTransformationEnabled(ListItem::RightIcon)); - } - q->setListItemCaching(caching); - } - - void updateListItemBackgrounds(int index) - { - Q_Q(SimpleListView); - - const bool caching = q->listItemCaching(); - q->setListItemCaching(false); - - const int itemCount = m_layout->count(); - - for (int i=index; i<itemCount; ++i) { - ListItem* item = static_cast<ListItem*>(m_layout->itemAt(i)); - if (i%2) { - item->setBackgroundBrush(Theme::p()->listItemBackgroundBrushOdd()); - item->setBackgroundOpacity(Theme::p()->listItemBackgroundOpacityOdd()); - } - else { - item->setBackgroundBrush(Theme::p()->listItemBackgroundBrushEven()); - item->setBackgroundOpacity(Theme::p()->listItemBackgroundOpacityEven()); - } - } - - q->setListItemCaching(caching); - } - - void setTwoColumns(const bool twoColumns) - { - if(twoColumns == m_twoColumns) - return; - - Q_Q(SimpleListView); - m_twoColumns = twoColumns; - - bool cache = q->listItemCaching(); - q->setListItemCaching(false); - - QList<QGraphicsLayoutItem *> moveditems; - if(twoColumns) { - int half = m_layout->count()/2; - for (int i = m_layout->count()-1; i>=half; --i) { - QGraphicsLayoutItem *item = m_layout->itemAt(i); - m_layout->removeAt(i); - moveditems.append(item); - } - for ( int i = 0; i < moveditems.count(); ++i) - m_layout->addItem(moveditems.at(i), i, 1); - - m_layout->setColumnSpacing(0,0); - m_layout->setColumnSpacing(1,0); - m_layout->setRowSpacing(0,0); - m_layout->setRowSpacing(1,0); - } - else { - int count = m_layout->count()/2; - for (int i = m_layout->count()-1; i>=0; --i) { - if (i >= count) - moveditems.append(m_layout->itemAt(i)); - else - moveditems.insert(moveditems.begin(), m_layout->itemAt(i)); - m_layout->removeAt(i); - } - for (int i = 0; i<moveditems.count(); ++i) { - m_layout->addItem(moveditems.at(i), m_layout->count(), 0); - } - } - - resizeContents(q->size()); - resizeScrollBars(); - - q->setListItemCaching(cache); - } - - bool twoColumns() - { - return m_twoColumns; - } - - QGraphicsWidget *m_content; - QGraphicsGridLayout *m_layout; - bool m_twoColumns; - SimpleListView *q_ptr; - bool m_listItemCaching; -}; - -SimpleListView::SimpleListView(QGraphicsWidget *parent) - : AbstractScrollArea(parent) - , d_ptr(new SimpleListViewPrivate(this)) -{ - setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - setContentsMargins(0, 0, 0, 0); - verticalScrollBar()->hide(); - horizontalScrollBar()->hide(); -} - -SimpleListView::~SimpleListView() -{ - Q_D(SimpleListView); - - if (d->m_content) { - d->m_content->setParentItem(0); - } - - delete d_ptr; -} - -void SimpleListView::addItem(QGraphicsWidget *item) -{ - Q_D(SimpleListView); - - Q_ASSERT(item); - - insertItem(d->m_layout->count(), item); -} - -void SimpleListView::insertItem(int index, QGraphicsWidget *item) -{ - Q_D(SimpleListView); - - // Grid layout doe not have insert item method. - // We need to first remove all items, add new item and - // append old items to layout. - QList<QGraphicsLayoutItem *> moveditems; - - for (int i = d->m_layout->count()-1; i >= index; --i) { - moveditems.append(d->m_layout->itemAt(i)); - d->m_layout->removeAt(i); - } - moveditems.append(item); - - for (int i = moveditems.count()-1; i>=0; --i) { - d->m_layout->addItem(moveditems.at(i), d->m_layout->count(), 0); - } - - ListItemCache *cache = new ListItemCache; - item->setGraphicsEffect(cache); - cache->setEnabled(listItemCaching()); - - d->resizeScrollBars(); - d->updateListItemBackgrounds(index); -} - -QGraphicsWidget *SimpleListView::takeItem(int index) -{ - Q_D(SimpleListView); - - QGraphicsWidget *item = 0; - - if (index >= 0 && d->m_layout->count() > index) { - QList<QGraphicsLayoutItem *> moveditems; - for (int i = d->m_layout->count()-1; i >=0; --i) { - if (index != i) - moveditems.insert(moveditems.begin(), d->m_layout->itemAt(i)); - else { - item = static_cast<QGraphicsWidget*>(d->m_layout->itemAt(index)); - item->setGraphicsEffect(0); - } - - d->m_layout->removeAt(i); - } - - for (int i = 0; i < moveditems.count(); ++i) - d->m_layout->addItem(moveditems.at(i), d->m_layout->count(), 0); - } - d->resizeScrollBars(); - return item; -} - -QGraphicsWidget *SimpleListView::itemAt(int row) -{ - Q_D(SimpleListView); - - QGraphicsWidget *item = 0; - - if (row >= 0 && d->m_layout->count() > row) { - item = static_cast<QGraphicsWidget*>(d->m_layout->itemAt(row)); - } - - return item; -} - -int SimpleListView::itemCount() -{ - Q_D(SimpleListView); - return d->m_layout->count(); -} - -bool SimpleListView::listItemCaching() const -{ - Q_D(const SimpleListView); - return d->m_listItemCaching; -} - -void SimpleListView::setListItemCaching(bool enabled) -{ - Q_D(SimpleListView); - - if (d->m_listItemCaching == enabled) - return; - - d->m_listItemCaching = enabled; - - for (int i = 0; i < d->m_layout->count(); ++i) { - ListItem *item = static_cast<ListItem*>(d->m_layout->itemAt(i)); - ListItemCache *cache = static_cast<ListItemCache *>( - item->graphicsEffect()); - cache->setEnabled(enabled); - } -} - -void SimpleListView::scrollContentsBy(qreal dx, qreal dy) -{ - Q_D(SimpleListView); - Q_UNUSED(dx) - QRectF contentRect = d->m_content->boundingRect(); - QRectF viewportRect = viewport()->boundingRect(); - QPointF contentPos = d->m_content->pos(); - - qreal newy = contentPos.y() - dy; - qreal miny = qMin(qreal(0.0), -(contentRect.height() - viewportRect.height())); - - if (newy < miny) - newy = miny; - else if (newy > 0) - newy = 0.0; - - d->m_content->setPos(contentPos.x(), newy); -} - -void SimpleListView::resizeEvent(QGraphicsSceneResizeEvent *event) -{ - Q_D(SimpleListView); - - AbstractScrollArea::resizeEvent(event); - d->resizeContents(event->newSize()); - d->resizeScrollBars(); -} - -QSizeF SimpleListView::sizeHint(Qt::SizeHint which, const QSizeF & constraint) const -{ - Q_D(const SimpleListView); - - if (which == Qt::PreferredSize) - return d->m_content->size(); - - return AbstractScrollArea::sizeHint(which, constraint); -} - -void SimpleListView::themeChange() -{ - Q_D(SimpleListView); - - d->updateListContents(); - d->resizeScrollBars(); -} - -void SimpleListView::setTwoColumns(const bool twoColumns) -{ - Q_D(SimpleListView); - d->setTwoColumns(twoColumns); -} - -bool SimpleListView::twoColumns() -{ - Q_D(SimpleListView); - return d->twoColumns(); -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelistview.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelistview.h deleted file mode 100644 index ad606cda8f..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/simplelistview.h +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SIMPLELISTVIEW_H -#define SIMPLELISTVIEW_H - -#include "scrollbar.h" -#include "abstractscrollarea.h" - -class SimpleListViewPrivate; - -class SimpleListView : public AbstractScrollArea -{ - Q_OBJECT - Q_DECLARE_PRIVATE(SimpleListView) - -public: - - SimpleListView(QGraphicsWidget *parent = 0); - virtual ~SimpleListView(); - -public: - - void addItem(QGraphicsWidget *item); - void insertItem(int index, QGraphicsWidget *item); - QGraphicsWidget* takeItem(int row); - QGraphicsWidget* itemAt(int row); - int itemCount(); - void updateListContents(); - - void setTwoColumns(const bool twoColumns); - bool twoColumns(); - -public slots: - - void themeChange(); - bool listItemCaching() const; - void setListItemCaching(bool enabled); - -protected: - - virtual void scrollContentsBy(qreal dx, qreal dy); - void resizeEvent(QGraphicsSceneResizeEvent *event); - QSizeF sizeHint(Qt::SizeHint which, - const QSizeF & constraint) const; - -private: - - SimpleListViewPrivate *d_ptr; -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/theme.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/theme.cpp deleted file mode 100644 index 06851b0fd8..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/theme.cpp +++ /dev/null @@ -1,223 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QDebug> -#include <QPainter> -#include <QPixmapCache> -#include <QSvgRenderer> - -#include "theme.h" - -Q_DECLARE_METATYPE(Theme::Themes*) - -Theme::Theme(QObject *parent) - : QObject(parent) - , m_currentTheme() - , m_availableThemes() - , m_fonts() - , m_pixmapPath() - , m_listItemBackgroundBrushEven() - , m_listItemBackgroundOpacityEven() - , m_listItemBackgroundBrushOdd() - , m_listItemBackgroundOpacityOdd() - , m_listItemBorderPen(QPen()) - , m_listItemRounding() - , m_iconOpacityEffectEnabled() - , m_iconRotation() - , m_iconSmoothTransformation() -{ - m_availableThemes << "Blue" << "Lime"; - - // Set blue theme as a default theme without emiting themeChanged() signal - setBlueTheme(); -} - -Theme::~Theme() -{ -} - -Theme* Theme::p() -{ - static Theme t; - return &t; -} - -void Theme::setTheme(const QString theme) -{ - if (theme.compare("blue", Qt::CaseInsensitive) == 0) - { - setTheme(Theme::Blue); - } - else if (theme.compare("lime", Qt::CaseInsensitive) == 0) - { - setTheme(Theme::Lime); - } - else - { - qDebug() << "Unknown theme"; - } -} - -void Theme::setTheme(const Themes theme) -{ - if (m_currentTheme == theme) - return; - - switch (theme) - { - case Theme::Blue: - setBlueTheme(); - emit themeChanged(); - break; - - case Theme::Lime: - setLimeTheme(); - emit themeChanged(); - break; - } -} - -void Theme::setBlueTheme() -{ - m_currentTheme = Theme::Blue; - - m_fonts[ContactName].setFamily("Arial"); - m_fonts[ContactName].setPixelSize(16); - m_fonts[ContactName].setStyle(QFont::StyleNormal); - m_fonts[ContactName].setWeight(QFont::Normal); - - m_fonts[ContactNumber].setFamily("Arial"); - m_fonts[ContactNumber].setPixelSize(14); - m_fonts[ContactNumber].setStyle(QFont::StyleNormal); - - m_fonts[ContactEmail].setFamily("Arial"); - m_fonts[ContactEmail].setPixelSize(14); - m_fonts[ContactEmail].setStyle(QFont::StyleNormal); - - m_fonts[TitleBar].setFamily("Arial"); - m_fonts[TitleBar].setPixelSize(36); - m_fonts[TitleBar].setStyle(QFont::StyleNormal); - - m_fonts[StatusBar].setFamily("Arial"); - m_fonts[StatusBar].setPixelSize(16); - m_fonts[StatusBar].setStyle(QFont::StyleNormal); - - m_fonts[MenuItem].setFamily("Arial"); - m_fonts[MenuItem].setPixelSize(14); - m_fonts[MenuItem].setStyle(QFont::StyleNormal); - - m_pixmapPath = ":/themes/blue/"; - - m_listItemBackgroundBrushEven = QBrush(Qt::NoBrush); - m_listItemBackgroundOpacityEven = 1.0; - m_listItemBackgroundBrushOdd = QBrush(QColor(44,214,250), Qt::SolidPattern); - m_listItemBackgroundOpacityOdd = 1.0; - - m_listItemBorderPen = QPen(Qt::NoPen); - m_listItemRounding = QSize(0.0, 0.0); - - m_iconOpacityEffectEnabled[ListItem::LeftIcon] = false; - m_iconOpacityEffectEnabled[ListItem::RightIcon] = false; - - m_iconRotation[ListItem::LeftIcon] = 0.0; - m_iconRotation[ListItem::RightIcon] = 0.0; - - m_iconSmoothTransformation[ListItem::LeftIcon] = false; - m_iconSmoothTransformation[ListItem::RightIcon] = false; -} - -void Theme::setLimeTheme() -{ - m_currentTheme = Theme::Lime; - - m_fonts[ContactName].setFamily("Arial"); - m_fonts[ContactName].setPixelSize(16); - m_fonts[ContactName].setStyle(QFont::StyleItalic); - m_fonts[ContactName].setWeight(QFont::Bold); - - m_fonts[ContactNumber].setFamily("Arial"); - m_fonts[ContactNumber].setPixelSize(14); - m_fonts[ContactNumber].setStyle(QFont::StyleItalic); - - m_fonts[ContactEmail].setFamily("Arial"); - m_fonts[ContactEmail].setPixelSize(14); - m_fonts[ContactEmail].setStyle(QFont::StyleItalic); - - m_fonts[TitleBar].setFamily("Arial"); - m_fonts[TitleBar].setPixelSize(36); - m_fonts[TitleBar].setStyle(QFont::StyleItalic); - - m_fonts[StatusBar].setFamily("Arial"); - m_fonts[StatusBar].setPixelSize(16); - m_fonts[StatusBar].setStyle(QFont::StyleItalic); - - m_fonts[MenuItem].setFamily("Arial"); - m_fonts[MenuItem].setPixelSize(14); - m_fonts[MenuItem].setStyle(QFont::StyleItalic); - - m_pixmapPath = ":/themes/lime/"; - - m_listItemBackgroundBrushEven = QBrush(QPixmap(":/avatars/avatar_014.png")); - m_listItemBackgroundOpacityEven = 0.05; - - m_listItemBackgroundBrushOdd = QBrush(QPixmap(":/avatars/avatar_012.png")); - m_listItemBackgroundOpacityOdd = 0.15; - - m_listItemBorderPen = QPen(QColor(0,0,0,55), 3, Qt::SolidLine); - m_listItemRounding = QSize(12.0, 12.0); - - m_iconOpacityEffectEnabled[ListItem::LeftIcon] = true; - m_iconOpacityEffectEnabled[ListItem::RightIcon] = false; - - m_iconRotation[ListItem::LeftIcon] = -4.0; - m_iconRotation[ListItem::RightIcon] = 0.0; - - m_iconSmoothTransformation[ListItem::LeftIcon] = true; - m_iconSmoothTransformation[ListItem::RightIcon] = false; -} - -QPixmap Theme::pixmap(const QString filename, QSize size) -{ - if (filename.endsWith(".svg", Qt::CaseInsensitive)) - { - QSvgRenderer doc(m_pixmapPath+filename); - if (size == QSize(0,0)) - size = doc.defaultSize(); - QPixmap pix(size.width(),size.height()); - pix.fill(Qt::transparent); - QPainter painter(&pix); - painter.setViewport(0, 0, size.width(), size.height()); - doc.render(&painter); - return pix; - } - else - { - QPixmap pix(m_pixmapPath+filename); - return pix.scaled(size); - } -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/theme.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/theme.h deleted file mode 100644 index 4aafd0c288..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/theme.h +++ /dev/null @@ -1,118 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef THEME_H -#define THEME_H - -#include <QPen> -#include <QPainter> - -#include "gvbwidget.h" -#include "listitem.h" - -class Theme : public QObject -{ - Q_OBJECT - -public: - enum Themes - { - Blue = 0, - Lime = 1, - }; - - enum Fonts - { - ContactName, - ContactNumber, - ContactEmail, - TitleBar, - StatusBar, - MenuItem, - }; - - virtual ~Theme(); - - static Theme* p(); - - void setTheme(const QString theme); - void setTheme(const Themes theme); - - Themes theme() const { return m_currentTheme; } - QString currentThemeName() { return m_availableThemes.at(m_currentTheme); } - QStringList themes() const { return m_availableThemes; } - int themesCount() const { return m_availableThemes.count(); } - - QPixmap pixmap(const QString filename = "", QSize size = QSize(0,0)); - QFont font(Fonts type) const { return m_fonts[type]; } - QString pixmapPath() const { return m_pixmapPath; } - - QBrush listItemBackgroundBrushEven() const { return m_listItemBackgroundBrushEven; } - QBrush listItemBackgroundBrushOdd() const { return m_listItemBackgroundBrushOdd; } - qreal listItemBackgroundOpacityEven() const { return m_listItemBackgroundOpacityEven; } - qreal listItemBackgroundOpacityOdd() const { return m_listItemBackgroundOpacityOdd; } - - QPen listItemBorderPen() const { return m_listItemBorderPen; } - QSize listItemRounding() const { return m_listItemRounding; } - - bool isIconOpacityEffectEnabled(const ListItem::IconItemPos iconPos) const { return m_iconOpacityEffectEnabled[iconPos]; } - - qreal iconRotation(const ListItem::IconItemPos iconPos) const { return m_iconRotation[iconPos]; } - bool isIconSmoothTransformationEnabled(const ListItem::IconItemPos iconPos) const { return m_iconSmoothTransformation[iconPos]; } - -signals: - void themeChanged(); - -private: - Theme(QObject *parent = 0); - - void setBlueTheme(); - void setLimeTheme(); - -private: - Q_DISABLE_COPY(Theme) - - Themes m_currentTheme; - QStringList m_availableThemes; - QHash<Fonts, QFont> m_fonts; - QString m_pixmapPath; - - QBrush m_listItemBackgroundBrushEven; - qreal m_listItemBackgroundOpacityEven; - QBrush m_listItemBackgroundBrushOdd; - qreal m_listItemBackgroundOpacityOdd; - - QPen m_listItemBorderPen; - QSize m_listItemRounding; - - QHash<ListItem::IconItemPos, bool> m_iconOpacityEffectEnabled; - QHash<ListItem::IconItemPos, qreal> m_iconRotation; - QHash<ListItem::IconItemPos, bool> m_iconSmoothTransformation; -}; - -#endif // THEME_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/themeevent.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/themeevent.cpp deleted file mode 100644 index 1209b4a0f7..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/themeevent.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "themeevent.h" - -ThemeEvent::ThemeEvent( const QString &newTheme, Type type) : QEvent(type), - m_theme(newTheme) -{ - -} - -ThemeEvent::~ThemeEvent() -{ - -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/themeevent.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/themeevent.h deleted file mode 100644 index 4ae63d8755..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/themeevent.h +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef __THEMEEVENT_H__ -#define __THEMEEVENT_H__ - -#include <QEvent> -#include <QString> - -static QEvent::Type ThemeEventType = (QEvent::Type) 1010; - -class ThemeEvent : public QEvent -{ -public: - explicit ThemeEvent(const QString &newTheme, QEvent::Type type = ThemeEventType ); - ~ThemeEvent(); - -public: - inline QString getTheme() { return m_theme; } - -private: - QString m_theme; -}; - - -#endif /* __THEMEEVENT_H__ */ diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/topbar.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/topbar.cpp deleted file mode 100644 index 7c3d97b859..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/topbar.cpp +++ /dev/null @@ -1,346 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QGraphicsView> -#include <QStyleOptionGraphicsItem> -#include <QGraphicsSceneResizeEvent> -#include <QPixmap> -#include <QFont> - -#include "themeevent.h" -#include "theme.h" -#include "topbar.h" -#include "mainview.h" - -TopBar::TopBar(QGraphicsView* mainView, QGraphicsWidget* parent) : - GvbWidget(parent), m_mainView(mainView), m_isLimeTheme(false), - m_orientation(TopBar::None), m_topBarPixmap(), m_sizesBlue(), m_sizesLime() -{ - setDefaultSizes(); - - m_titleFont = Theme::p()->font(Theme::TitleBar); - m_statusFont = Theme::p()->font(Theme::StatusBar); - - connect(Theme::p(), SIGNAL(themeChanged()), this, SLOT(themeChange())); -} - -TopBar::~TopBar() -{ -} - -void TopBar::resizeEvent(QGraphicsSceneResizeEvent* /*event*/) -{ - //Check orientation - QString topbarName; - QSize mainViewSize = m_mainView->size(); - int rotationAngle = static_cast<MainView*>(m_mainView)->rotationAngle(); - if(rotationAngle == 90 || rotationAngle == 270 ) { - int wd = mainViewSize.width(); - int ht = mainViewSize.height(); - mainViewSize.setWidth(ht); - mainViewSize.setHeight(wd); - } - bool m_orientationChanged = false; - if(mainViewSize.height() >= mainViewSize.width()) { - if(m_orientation == TopBar::Landscape) - m_orientationChanged = true; - m_orientation = TopBar::Portrait; - topbarName = "topbar.svg"; - } - else { - if(m_orientation == TopBar::Portrait) - m_orientationChanged = true; - m_orientation = TopBar::Landscape; - topbarName = "topbar_horisontal.svg"; - } - - //Calculate new size, resize by height, don't make it wider than the screen - QHash<QString, QSize>sizes = (Theme::p()->theme() == Theme::Blue) ? - m_sizesBlue : m_sizesLime; - - //Get current size for topbarpixmap - QSize currentSize = !m_topBarPixmap.isNull() && !m_orientationChanged ? - m_topBarPixmap.size() : sizes[topbarName]; - QSize newSize = !m_orientationChanged ? QSize(currentSize) : sizes[topbarName]; - - //Scale according to aspect ratio - newSize.scale(size().toSize(), Qt::KeepAspectRatio); - - //fix width to window widht if previous scaling produced too narrow image - if(newSize.width() < size().width()) { - newSize.scale(size().toSize(), Qt::KeepAspectRatioByExpanding); - } - - //Calculate scaling factor for rest of the graphics scaling - qreal scaleFactor = (newSize.width() *1.0) / (currentSize.width() * 1.0); - - //Scale graphics, if the scalefactor applies - //This is really heavy since the SVG graphics are read again from the resource - if(scaleFactor != 1 || m_topBarPixmap.isNull() ) { - m_topBarPixmap = Theme::p()->pixmap(topbarName, newSize ); - m_topBarUserIcon = Theme::p()->pixmap("user_default_icon.svg", - !m_topBarUserIcon.isNull() && !m_orientationChanged ? m_topBarUserIcon.size()* scaleFactor : sizes["user_default_icon.svg"] * scaleFactor); - - m_topBarUserStatus = Theme::p()->pixmap("user_status_online.svg", - !m_topBarUserStatus.isNull() && !m_orientationChanged ? m_topBarUserStatus.size() * scaleFactor : sizes["user_status_online.svg"] * scaleFactor); - - m_topBarStatusBarLeft = Theme::p()->pixmap("status_field_left.svg", - !m_topBarStatusBarLeft.isNull() && !m_orientationChanged ? m_topBarStatusBarLeft.size()* scaleFactor : sizes["status_field_left.svg"] * scaleFactor); - - m_topBarStatusBarRight = Theme::p()->pixmap("status_field_right.svg", - !m_topBarStatusBarRight.isNull() && !m_orientationChanged ? m_topBarStatusBarRight.size()* scaleFactor : sizes["status_field_right.svg"] * scaleFactor); - - m_topBarStatusBarMiddle = Theme::p()->pixmap("status_field_middle.svg", - !m_topBarStatusBarMiddle.isNull() && !m_orientationChanged ? m_topBarStatusBarMiddle.size() * scaleFactor : QSize(185, sizes["status_field_middle.svg"].height()) * scaleFactor); - - //Update the sizeHint to match the size of the scaled m_topBarPixmap - updateGeometry(); - - //Point Update - Positions relative to the Top Bar "Backgroud" size. - //TODO: consider some layout instead of calculating relative locations - QSize topBarPixmapSize = m_topBarPixmap.size(); - QSize topBarUserIconSize = m_topBarUserIcon.size(); - QSize topBarUserStatusSize = m_topBarUserStatus.size(); - QSize topBarStatusBarLeftSize = m_topBarStatusBarLeft.size(); - QSize topBarStatusBarMiddleSize = m_topBarStatusBarMiddle.size(); - - //Location for Title text 5% width, 35% height of the background pixmap - m_topBarTitlePoint = QPoint(topBarPixmapSize.width()* 0.05, - topBarPixmapSize.height() * 0.35); - - //User Icon location - //Placing 70% of the width and 10% of the height of the top bar background - m_topBarUserIconPoint = QPoint((topBarPixmapSize.width() * 0.7), (topBarPixmapSize.height() * 0.1)); - - //If Blue theme is in use - position user status icon on the right side of the user icon - if(!m_isLimeTheme) { - //Place the status icon on top of the right edge of the user icon, lower it by 35% of the height of the user icon - m_topBarUserStatusPoint = QPoint( ( (m_topBarUserIconPoint.x()+topBarUserIconSize.width() ) - - ( topBarUserStatusSize.width()/2 )), - (m_topBarUserIconPoint.y() + (topBarUserIconSize.height() * 0.35 ))); - } - //If Lime theme is in use - position user status icon on the left side of the user icon - else { - //Place the status icon on top of the left side of the user icon, lower it by 50% of the height of the user icon - //and move left by 5% of the icon - m_topBarUserStatusPoint = QPoint( m_topBarUserIconPoint.x() + ( topBarUserIconSize.width() * 0.05), - (m_topBarUserIconPoint.y() + (topBarUserIconSize.height() * 0.5 ))); - } - - //Status bar - //Placing the left side of the status bar 5% of the width, 50% of the height of the top bar background - //Set the text baseline 80% of the height of the status bar - m_topBarStatusBarLeftPoint = QPoint( (topBarPixmapSize.width()* 0.05), - (topBarPixmapSize.height() * 0.5)); - m_topBarStatusBarMiddlePoint = QPoint( (m_topBarStatusBarLeftPoint.x() + topBarStatusBarLeftSize.width()), - (m_topBarStatusBarLeftPoint.y())); - m_topBarStatusBarRightPoint = QPoint( (m_topBarStatusBarMiddlePoint.x() + topBarStatusBarMiddleSize.width()), - (m_topBarStatusBarMiddlePoint.y() ) ); - m_topBarStatusBarTextPoint = QPoint(m_topBarStatusBarMiddlePoint.x(), - m_topBarStatusBarMiddlePoint.y() + (topBarStatusBarMiddleSize.height()*0.8) ); - } //if scalefactor -} - -void TopBar::paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget */*widget*/ ) -{ - //Topbar background - painter->drawPixmap(option->exposedRect, m_topBarPixmap, option->exposedRect); - - //User Icon - painter->drawPixmap(m_topBarUserIconPoint, m_topBarUserIcon); - - //User Status - painter->drawPixmap(m_topBarUserStatusPoint, m_topBarUserStatus); - - //Status bar - painter->drawPixmap(m_topBarStatusBarLeftPoint, m_topBarStatusBarLeft); - painter->drawPixmap(m_topBarStatusBarMiddlePoint, m_topBarStatusBarMiddle); - painter->drawPixmap(m_topBarStatusBarRightPoint, m_topBarStatusBarRight); - - //Title text - painter->save(); - painter->setFont(m_titleFont); - painter->setOpacity(0.7); - painter->setPen(Qt::white); - painter->drawText(m_topBarTitlePoint, QString("Contacts") ); - //Status text - painter->setFont(m_statusFont); - painter->setOpacity(1.0); - painter->drawText(m_topBarStatusBarTextPoint, QString("My Status (fixed)") ); - painter->restore(); -} - -QRectF TopBar::boundingRect() const -{ - //It's possible that m_topBarPixmap is not allocated yet, - //in this case default size is used for setting boundingRect - QHash<QString, QSize>sizes = (Theme::p()->theme() == Theme::Blue) ? - m_sizesBlue : m_sizesLime; - - if (!m_topBarPixmap.isNull()) - return QRectF(0, 0, m_topBarPixmap.size().width(), m_topBarPixmap.size().height()); - else - return QRectF(0, 0, sizes["topbar.svg"].width(), sizes["topbar.svg"].height()); -} - -void TopBar::themeChange() -{ - m_titleFont = Theme::p()->font(Theme::TitleBar); - m_statusFont = Theme::p()->font(Theme::StatusBar); - - //Calculate the scaling factor - QHash<QString, QSize>sizes = (Theme::p()->theme() == Theme::Blue) ? - m_sizesBlue : m_sizesLime; - - QString topbarString= m_orientation == TopBar::Portrait ? - "topbar.svg" : "topbar_horisontal.svg"; - - QSize topBarSize = sizes[topbarString]; - QSize newSize = QSize(topBarSize); - - //Scale according to aspect ratio - newSize.scale(size().toSize(), Qt::KeepAspectRatio); - - //fix width to window widht if previous scaling produced too narrow image - if(newSize.width() < size().width()) { - newSize.scale(size().toSize(), Qt::KeepAspectRatioByExpanding); - } - - //Calculate scaling factor for rest of the graphics scaling - qreal scaleFactor = (newSize.width() *1.0) / (topBarSize.width() * 1.0); - - //Background - m_topBarPixmap = Theme::p()->pixmap(topbarString, sizes[topbarString] * scaleFactor); - - //User Icon - m_topBarUserIcon = Theme::p()->pixmap("user_default_icon.svg", sizes["user_default_icon.svg"] * scaleFactor); - - //User Status - m_topBarUserStatus = Theme::p()->pixmap("user_status_online.svg", sizes["user_status_online.svg"] * scaleFactor); - - //Status Bar - m_topBarStatusBarLeft = Theme::p()->pixmap("status_field_left.svg", sizes["status_field_left.svg"] * scaleFactor); - m_topBarStatusBarRight = Theme::p()->pixmap("status_field_right.svg", sizes["status_field_right.svg"] * scaleFactor); - m_topBarStatusBarMiddle = Theme::p()->pixmap("status_field_middle.svg", - QSize(185, sizes["status_field_middle.svg"].height())* scaleFactor); - - //Update Drawing points for Top Bar elements, points are relative to the top bar background size - QSize topBarPixmapSize = m_topBarPixmap.size(); - QSize topBarUserIconSize = m_topBarUserIcon.size(); - QSize topBarUserStatusSize = m_topBarUserStatus.size(); - QSize topBarStatusBarLeftSize = m_topBarStatusBarLeft.size(); - QSize topBarStatusBarMiddleSize = m_topBarStatusBarMiddle.size(); - - //Theme Check - (Theme::p()->theme() == Theme::Lime) ? m_isLimeTheme = true : m_isLimeTheme = false; - - //User Icon location - //Placing 70% of the width and 10% of the height of the top bar background - m_topBarUserIconPoint = QPoint((0.7*topBarPixmapSize.width()), (0.1*topBarPixmapSize.height())); - - //If Blue theme is in use - position user status icon on the right side of the user icon - if(!m_isLimeTheme) { - //Place the status icon on top of the right edge of the user icon, lower it by 35% of the height of the user icon - m_topBarUserStatusPoint = QPoint( ( (m_topBarUserIconPoint.x()+topBarUserIconSize.width() ) - ( topBarUserStatusSize.width()/2 )), - (m_topBarUserIconPoint.y() + (topBarUserIconSize.height() * 0.35 ))); - } - //If Lime theme is in use - position user status icon on the left side of the user icon - else { - //Place the status icon on top of the left side of the user icon, lower it by 50% of the height of the user icon - //and move left by 5% of the icon - m_topBarUserStatusPoint = QPoint( m_topBarUserIconPoint.x() + ( topBarUserIconSize.width() * 0.05), - (m_topBarUserIconPoint.y() + (topBarUserIconSize.height() * 0.5 ))); - } - - //Status bar - //Placing the left side of the status bar 5% of the width, 50% of the height of the top bar background - //Set the text baseline 80% of the height of the status bar - m_topBarStatusBarLeftPoint = QPoint( (topBarPixmapSize.width()* 0.05), - (topBarPixmapSize.height() * 0.5)); - m_topBarStatusBarMiddlePoint = QPoint( (m_topBarStatusBarLeftPoint.x() + topBarStatusBarLeftSize.width()), - (m_topBarStatusBarLeftPoint.y())); - m_topBarStatusBarRightPoint = QPoint( (m_topBarStatusBarMiddlePoint.x() + topBarStatusBarMiddleSize.width()), - (m_topBarStatusBarMiddlePoint.y() ) ); - m_topBarStatusBarTextPoint = QPoint(m_topBarStatusBarMiddlePoint.x(), - m_topBarStatusBarMiddlePoint.y() + (topBarStatusBarMiddleSize.height()*0.8) ); - - update(); -} - -QSizeF TopBar::sizeHint(Qt::SizeHint which, - const QSizeF &constraint) const -{ - //It's possible that m_topBarPixmap is not allocated yet, - //in this case default size is used for setting size hint - QHash<QString, QSize>sizes = (Theme::p()->theme() == Theme::Blue) ? - m_sizesBlue : m_sizesLime; - - int height = !m_topBarPixmap.isNull() ? - m_topBarPixmap.height() : sizes["topbar.svg"].height(); - - switch (which) - { - case Qt::MinimumSize: - return QSizeF(-1, height); - - case Qt::MaximumSize: - return QSizeF(-1, height); - - default: - return QGraphicsWidget::sizeHint(which, constraint); - } -} - -void TopBar::setDefaultSizes() -{ - m_sizesBlue["topbar.svg"] = QSize(356,96); - m_sizesBlue["topbar_horisontal.svg"] = QSize(636,96); - m_sizesBlue["user_default_icon.svg"] = QSize(68,68); - m_sizesBlue["user_status_online.svg"] = QSize(38,38); - m_sizesBlue["status_field_left.svg"] = QSize(14,24); - m_sizesBlue["status_field_right.svg"] = QSize(10,24); - m_sizesBlue["status_field_middle.svg"] = QSize(14,24); - - m_sizesLime["topbar.svg"] = QSize(356,96); - m_sizesLime["topbar_horisontal.svg"] = QSize(636,96); - m_sizesLime["user_default_icon.svg"] = QSize(84,68); - m_sizesLime["user_status_online.svg"] = QSize(24,24); - m_sizesLime["status_field_left.svg"] = QSize(14,24); - m_sizesLime["status_field_right.svg"] = QSize(10,24); - m_sizesLime["status_field_middle.svg"] = QSize(14,24); -} - -void TopBar::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - QRect rect = m_topBarStatusBarMiddle.rect(); - rect.moveTopLeft(m_topBarStatusBarMiddlePoint); - QPointF scenePoint = event->scenePos(); - if(rect.contains(scenePoint.toPoint())) { - emit clicked(); - } -} diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/topbar.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/topbar.h deleted file mode 100644 index 53750ca706..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/topbar.h +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef __TOPBAR_H__ -#define __TOPBAR_H__ - -#include <QObject> -#include <QHash> - -#include "gvbwidget.h" - -class QPixmap; -class QPoint; -class QGraphicsView; -class QFont; - -class TopBar : public GvbWidget -{ - Q_OBJECT - -public: - enum Orientation - { - Portrait, - Landscape, - None - }; - -public: - TopBar(QGraphicsView* mainView, QGraphicsWidget* parent); - ~TopBar(); - -public: - void paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0 ); - QRectF boundingRect() const; - void resizeEvent(QGraphicsSceneResizeEvent *event); - inline QPoint getStatusBarLocation() - { - return m_topBarStatusBarMiddlePoint + m_topBarStatusBarMiddle.rect().bottomLeft(); - } - -public slots: - void themeChange(); - -protected: - void mousePressEvent(QGraphicsSceneMouseEvent *event); - -signals: - void clicked(bool checked = false); - -private: - QSizeF sizeHint(Qt::SizeHint which, - const QSizeF &constraint = QSizeF()) const; - void setDefaultSizes(); - -private: - Q_DISABLE_COPY(TopBar) - - QGraphicsView* m_mainView; - bool m_isLimeTheme; - Orientation m_orientation; - - //Fonts - QFont m_titleFont; - QFont m_statusFont; - - //Pixmaps - QPixmap m_topBarPixmap; - QPixmap m_topBarUserIcon; - QPixmap m_topBarUserStatus; - QPixmap m_topBarStatusBarLeft; - QPixmap m_topBarStatusBarRight; - QPixmap m_topBarStatusBarMiddle; - - //Drawing points - QPoint m_topBarUserIconPoint; - QPoint m_topBarUserStatusPoint; - QPoint m_topBarStatusBarLeftPoint; - QPoint m_topBarStatusBarRightPoint; - QPoint m_topBarStatusBarMiddlePoint; - QPoint m_topBarStatusBarTextPoint; - QPoint m_topBarTitlePoint; - - //Sizes - QHash<QString, QSize> m_sizesBlue; - QHash<QString, QSize> m_sizesLime; -}; - -#endif // __TOPBAR_H__ diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview.cpp b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview.cpp deleted file mode 100644 index 59ed50157b..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview.cpp +++ /dev/null @@ -1,289 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "webview.h" -#include "webview_p.h" -#include <QtGui> - -static const int MotionEndWaitTime = 2000; -static const int TileSideLength = 128; - -WebViewPrivate::WebViewPrivate(WebView *w) - : q(w) - , cache(0) -{ - web = new QGraphicsWebView; - - web->setParentItem(q->viewport()); - - web->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - web->page()->mainFrame()->setScrollBarPolicy( - Qt::Horizontal, Qt::ScrollBarAlwaysOff); - web->page()->mainFrame()->setScrollBarPolicy( - Qt::Vertical, Qt::ScrollBarAlwaysOff); - web->setZValue(3); - -// cache = new WebViewCache(web); -// web->setGraphicsEffect(cache); - - adjustSize(); -} - -void WebViewPrivate::adjustSize() -{ - QSizeF contentSize = web->page()->mainFrame()->contentsSize(); - QPointF pos = web->pos(); - - qreal w = qMax(contentSize.width(), q->viewport()->boundingRect().width()); - qreal h = qMax(contentSize.height(), q->viewport()->boundingRect().height()); - - if (web->boundingRect().size() != QSizeF(w, h)) { - //qDebug() << "WebView: adjustSize:" << QSizeF(w, h); - - web->resize(w, h); - web->setPos(pos); - - if (w > q->viewport()->boundingRect().width()) - q->horizontalScrollBar()->setSliderSize(w); - else - q->horizontalScrollBar()->setSliderSize(0.0); - - if (h > q->viewport()->boundingRect().height()) - q->verticalScrollBar()->setSliderSize(h); - else - q->verticalScrollBar()->setSliderSize(0.0); - } -} - -void WebViewPrivate::_q_loadStarted() -{ - qDebug() << "WebView: load started"; - adjustSize(); -} - -void WebViewPrivate::_q_loadProgress(int progress) -{ - Q_UNUSED(progress) -// qDebug() << "WebView: load progress" << progress; - adjustSize(); -} - -void WebViewPrivate::_q_loadFinished(bool ok) -{ - qDebug() << "WebView: load finished" << (ok ? "ok" : "not ok"); - adjustSize(); -} - -void WebViewPrivate::_q_viewportChanged(QGraphicsWidget* viewport) -{ - web->setParentItem(viewport); - viewport->setFlag(QGraphicsItem::ItemClipsChildrenToShape, - true); - adjustSize(); -} - -void WebViewPrivate::_q_motionEnded() -{ - motionTimer.stop(); - qDebug() << "Motion ended"; - q->prepareGeometryChange(); -} - -WebViewCache::WebViewCache(QGraphicsWebView *webView) - : m_webView(webView) -{ -} - -WebViewCache::~WebViewCache() -{ -} - -void WebViewCache::draw(QPainter * painter, QGraphicsEffectSource * source) -{ - const QGraphicsItem *item = source->graphicsItem(); - - QSizeF itemSize = item->boundingRect().size(); - - if (!qFuzzyCompare(itemSize.width(), m_itemSize.width()) || - !qFuzzyCompare(itemSize.height(), m_itemSize.height())) { - qDebug() << "Refresh tile cache, for new size" << itemSize; - - for (int i = 0; i < m_tilePixmaps.size(); i++) { - QPixmapCache::remove(m_tilePixmaps[i]); - } - - m_tilePixmaps.clear(); - m_tileRects.clear(); - - int itemWidth = itemSize.width() + 0.5; - int itemHeight = itemSize.height() + 0.5; - - int tilesX = itemWidth / TileSideLength; - int tilesY = itemHeight / TileSideLength; - - if ((itemWidth % TileSideLength) != 0) { - ++tilesX; - } - - if ((itemHeight % TileSideLength) != 0) { - ++tilesY; - } - - int tilesCount = tilesX * tilesY; - - m_tilePixmaps.resize(tilesCount); - m_tileRects.resize(tilesCount); - - for (int i = 0; i < tilesX; i++) { - for (int j = 0; j < tilesY; j++) { - int x = i * TileSideLength; - int y = j * TileSideLength; - - m_tileRects[i + j * tilesX] - = QRectF(x, y, TileSideLength, TileSideLength); - } - } - - m_itemSize = itemSize; - } - - const QGraphicsItem *parentItem = item->parentItem(); - QPointF itemPos = item->pos(); - QRectF parentRect = parentItem->boundingRect(); - - for (int i = 0; i < m_tileRects.size(); i++) { - QRectF tileRect = m_tileRects[i].translated(itemPos); - - if (!tileRect.intersects(parentRect) && !tileRect.contains(parentRect)) { - continue; - } - - QPixmap tilePixmap; - - if (!QPixmapCache::find(m_tilePixmaps[i], &tilePixmap)) { - tilePixmap = QPixmap(TileSideLength, TileSideLength); - - QWebFrame *webFrame = m_webView->page()->mainFrame(); - - QPainter tilePainter(&tilePixmap); - tilePainter.translate(-m_tileRects[i].left(), -m_tileRects[i].top()); - webFrame->render(&tilePainter, m_tileRects[i].toRect()); - tilePainter.end(); - - m_tilePixmaps[i] = QPixmapCache::insert(tilePixmap); - } - - tileRect = tileRect.translated(-itemPos); - - painter->drawPixmap(tileRect.topLeft(), tilePixmap); - } -} - -WebView::WebView(QGraphicsWidget *parent) - : AbstractScrollArea(parent) - , d(new WebViewPrivate(this)) -{ - setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - setContentsMargins(0, 0, 0, 0); - connect(d->web->page(), SIGNAL(loadStarted()), - this, SLOT(_q_loadStarted())); - connect(d->web->page(), SIGNAL(loadProgress(int)), - this, SLOT(_q_loadProgress(int))); - connect(d->web->page(), SIGNAL(loadFinished(bool)), - this, SLOT(_q_loadFinished(bool))); - connect(this, SIGNAL(viewportChanged(QGraphicsWidget*)), - this, SLOT(_q_viewportChanged(QGraphicsWidget*))); - connect(&d->motionTimer, SIGNAL(timeout()), - this, SLOT(_q_motionEnded())); -} - -WebView::~WebView() -{ - d->web->setGraphicsEffect(0); - delete d->cache; -} - -void WebView::setUrl(const QUrl& url) -{ - d->adjustSize(); - d->web->setUrl(url); -} - -void WebView::scrollContentsBy(qreal dx, qreal dy) -{ - if (qFuzzyCompare((float)dy, 0.0f) && qFuzzyCompare((float)dx, 0.0f)) - return; - - if (!d->motionTimer.isActive()) { - d->motionTimer.start(MotionEndWaitTime); - } - - QSizeF contentSize = d->web->page()->mainFrame()->contentsSize(); - QRectF viewportRect = viewport()->boundingRect(); - QPointF pos = d->web->pos(); - - qreal w = qMax(contentSize.width(), viewportRect.width()); - qreal h = qMax(contentSize.height(), viewportRect.height()); - - qreal minx = qMin(0.0f, (float) -(w - viewportRect.width())); - qreal miny = qMin(0.0f, (float) -(h - viewportRect.height())); - - qreal x = d->web->pos().x() - dx; - - if (x < minx) - x = minx; - else if (x > 0) - x = 0.0; - - qreal y = d->web->pos().y() - dy; - - if (y < miny) - y = miny; - else if (y > 0) - y = 0.0; - - d->web->setPos(x, y); -} - -QSizeF WebView::sizeHint(Qt::SizeHint which, const QSizeF & constraint) const -{ - if (which == Qt::PreferredSize) { - QSizeF contentSize = d->web->page()->mainFrame()->contentsSize(); - return contentSize; - } - - return AbstractScrollArea::sizeHint(which, constraint); -} - -void WebView::resizeEvent(QGraphicsSceneResizeEvent *event) -{ - AbstractScrollArea::resizeEvent(event); - d->adjustSize(); -} - -#include "moc_webview.cpp" diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview.h deleted file mode 100644 index a18df35957..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview.h +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef WEBVIEW_H -#define WEBVIEW_H - -#include "scrollbar.h" -#include "abstractscrollarea.h" - -class WebViewPrivate; - -class WebView : public AbstractScrollArea -{ - Q_OBJECT - -public: - - WebView(QGraphicsWidget *parent = 0); - ~WebView(); - -public: - - void setUrl(const QUrl& url); - -private: - - void scrollContentsBy(qreal dx, qreal dy); - void resizeEvent(QGraphicsSceneResizeEvent *event); - QSizeF sizeHint(Qt::SizeHint which, const QSizeF & constraint) const; - -private: - - Q_PRIVATE_SLOT(d, void _q_loadStarted()) - Q_PRIVATE_SLOT(d, void _q_loadProgress(int)) - Q_PRIVATE_SLOT(d, void _q_loadFinished(bool)) - Q_PRIVATE_SLOT(d, void _q_viewportChanged(QGraphicsWidget*)) - Q_PRIVATE_SLOT(d, void _q_motionEnded()) - - WebViewPrivate *d; - friend class WebViewPrivate; -}; - -#endif // WEBVIEW_H diff --git a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview_p.h b/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview_p.h deleted file mode 100644 index bd4047c134..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/GraphicsViewBenchmark/widgets/webview_p.h +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef WEBVIEW_P_H -#define WEBVIEW_P_H - -#include "webview.h" -#include <QtWebKit/qgraphicswebview.h> -#include <QtWebKit/qwebpage.h> -#include <QtWebKit/qwebframe.h> -#include <QGraphicsEffect> -#include <QPainter> -#include <QPixmapCache> -#include <QTimer> -#include <QDebug> - -class WebViewCache; - -class WebViewPrivate { -public: - - WebViewPrivate(WebView *w); - void adjustSize(); - void _q_loadStarted(); - void _q_loadProgress(int); - void _q_loadFinished(bool); - void _q_viewportChanged(QGraphicsWidget*); - void _q_motionEnded(); - - WebView *q; - QGraphicsWebView *web; - WebViewCache *cache; - QTimer motionTimer; -}; - -class WebViewCache : public QGraphicsEffect -{ - Q_OBJECT - -public: - - WebViewCache(QGraphicsWebView *webView); - virtual ~WebViewCache(); - -public: - - void refresh(); - - void draw(QPainter * painter, QGraphicsEffectSource * source); - -private: - - QVector<QRectF> m_tileRects; - QVector<QPixmapCache::Key> m_tilePixmaps; - QSizeF m_itemSize; - QGraphicsWebView *m_webView; - - friend class WebViewPrivate; -}; - -#endif // WEBVIEW_P_H diff --git a/tests/benchmarks/gui/graphicsview/functional/functional.pro b/tests/benchmarks/gui/graphicsview/functional/functional.pro deleted file mode 100644 index 3c2979448b..0000000000 --- a/tests/benchmarks/gui/graphicsview/functional/functional.pro +++ /dev/null @@ -1,4 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = \ - #GraphicsViewBenchmark # FIXME: cannot be compiled by default as part of qtbase, - # since it depends on qtsvg diff --git a/tests/benchmarks/gui/graphicsview/graphicsview.pro b/tests/benchmarks/gui/graphicsview/graphicsview.pro deleted file mode 100644 index d89a00c4b9..0000000000 --- a/tests/benchmarks/gui/graphicsview/graphicsview.pro +++ /dev/null @@ -1,16 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = \ - functional \ - qgraphicsanchorlayout \ - qgraphicsitem \ - #qgraphicslayout \ # FIXME: broken - qgraphicsscene \ - qgraphicsview \ - qgraphicswidget - -!qtHaveModule(widgets): SUBDIRS -= \ - qgraphicsanchorlayout \ - qgraphicsitem \ - qgraphicsscene \ - qgraphicsview \ - qgraphicswidget diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/qgraphicsanchorlayout.pro b/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/qgraphicsanchorlayout.pro deleted file mode 100644 index 01c0dbd653..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/qgraphicsanchorlayout.pro +++ /dev/null @@ -1,7 +0,0 @@ -QT += widgets testlib - -TEMPLATE = app -TARGET = tst_bench_qgraphicsanchorlayout - -SOURCES += tst_qgraphicsanchorlayout.cpp - diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp deleted file mode 100644 index b15aad04cd..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp +++ /dev/null @@ -1,420 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtTest/QtTest> -#include <QtWidgets/qgraphicsanchorlayout.h> -#include <QtWidgets/qgraphicslinearlayout.h> -#include <QtWidgets/qgraphicswidget.h> -#include <QtWidgets/qgraphicsview.h> - -class tst_QGraphicsAnchorLayout : public QObject -{ - Q_OBJECT -public: - tst_QGraphicsAnchorLayout() {} - ~tst_QGraphicsAnchorLayout() {} - -private slots: - void hard_complex_data(); - void hard_complex(); - void linearVsAnchorSizeHints_data(); - void linearVsAnchorSizeHints(); - void linearVsAnchorSetGeometry_data(); - void linearVsAnchorSetGeometry(); - void linearVsAnchorNested_data(); - void linearVsAnchorNested(); -}; - - -class RectWidget : public QGraphicsWidget -{ -public: - RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent){} - - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) - { - Q_UNUSED(option); - Q_UNUSED(widget); - painter->drawRoundRect(rect()); - painter->drawLine(rect().topLeft(), rect().bottomRight()); - painter->drawLine(rect().bottomLeft(), rect().topRight()); - } -}; - -static QGraphicsWidget *createItem(const QSizeF &minimum = QSizeF(100.0, 100.0), - const QSizeF &preferred = QSize(150.0, 100.0), - const QSizeF &maximum = QSizeF(200.0, 100.0), - const QString &name = QString()) -{ - QGraphicsWidget *w = new RectWidget; - w->setMinimumSize(minimum); - w->setPreferredSize(preferred); - w->setMaximumSize(maximum); - w->setData(0, name); - return w; -} - -static void setAnchor(QGraphicsAnchorLayout *l, - QGraphicsLayoutItem *firstItem, - Qt::AnchorPoint firstEdge, - QGraphicsLayoutItem *secondItem, - Qt::AnchorPoint secondEdge, - qreal spacing) -{ - QGraphicsAnchor *anchor = l->addAnchor(firstItem, firstEdge, secondItem, secondEdge); - anchor->setSpacing(spacing); -} - -void tst_QGraphicsAnchorLayout::hard_complex_data() -{ - QTest::addColumn<int>("whichSizeHint"); - QTest::newRow("minimumSizeHint") - << int(Qt::MinimumSize); - QTest::newRow("preferredSizeHint") - << int(Qt::PreferredSize); - QTest::newRow("maximumSizeHint") - << int(Qt::MaximumSize); - // Add it as a reference to see how much overhead the body of effectiveSizeHint takes. - QTest::newRow("noSizeHint") - << -1; -} - -void tst_QGraphicsAnchorLayout::hard_complex() -{ - QFETCH(int, whichSizeHint); - - // Test for "hard" complex case, taken from wiki - // https://cwiki.nokia.com/S60QTUI/AnchorLayoutComplexCases - QSizeF min(0, 10); - QSizeF pref(50, 10); - QSizeF max(100, 10); - - QGraphicsWidget *a = createItem(min, pref, max, "a"); - QGraphicsWidget *b = createItem(min, pref, max, "b"); - QGraphicsWidget *c = createItem(min, pref, max, "c"); - QGraphicsWidget *d = createItem(min, pref, max, "d"); - QGraphicsWidget *e = createItem(min, pref, max, "e"); - QGraphicsWidget *f = createItem(min, pref, max, "f"); - QGraphicsWidget *g = createItem(min, pref, max, "g"); - - QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; - l->setContentsMargins(0, 0, 0, 0); - - //<!-- Trunk --> - setAnchor(l, l, Qt::AnchorLeft, a, Qt::AnchorLeft, 10); - setAnchor(l, a, Qt::AnchorRight, b, Qt::AnchorLeft, 10); - setAnchor(l, b, Qt::AnchorRight, c, Qt::AnchorLeft, 10); - setAnchor(l, c, Qt::AnchorRight, d, Qt::AnchorLeft, 10); - setAnchor(l, d, Qt::AnchorRight, l, Qt::AnchorRight, 10); - - //<!-- Above trunk --> - setAnchor(l, b, Qt::AnchorLeft, e, Qt::AnchorLeft, 10); - setAnchor(l, e, Qt::AnchorRight, d, Qt::AnchorLeft, 10); - - //<!-- Below trunk --> - setAnchor(l, a, Qt::AnchorHorizontalCenter, g, Qt::AnchorLeft, 10); - setAnchor(l, g, Qt::AnchorRight, f, Qt::AnchorHorizontalCenter, 10); - setAnchor(l, c, Qt::AnchorLeft, f, Qt::AnchorLeft, 10); - setAnchor(l, f, Qt::AnchorRight, d, Qt::AnchorRight, 10); - - //<!-- vertical is simpler --> - setAnchor(l, l, Qt::AnchorTop, e, Qt::AnchorTop, 0); - setAnchor(l, e, Qt::AnchorBottom, a, Qt::AnchorTop, 0); - setAnchor(l, e, Qt::AnchorBottom, b, Qt::AnchorTop, 0); - setAnchor(l, e, Qt::AnchorBottom, c, Qt::AnchorTop, 0); - setAnchor(l, e, Qt::AnchorBottom, d, Qt::AnchorTop, 0); - setAnchor(l, a, Qt::AnchorBottom, f, Qt::AnchorTop, 0); - setAnchor(l, a, Qt::AnchorBottom, b, Qt::AnchorBottom, 0); - setAnchor(l, a, Qt::AnchorBottom, c, Qt::AnchorBottom, 0); - setAnchor(l, a, Qt::AnchorBottom, d, Qt::AnchorBottom, 0); - setAnchor(l, f, Qt::AnchorBottom, g, Qt::AnchorTop, 0); - setAnchor(l, g, Qt::AnchorBottom, l, Qt::AnchorBottom, 0); - - // It won't query the size hint if it already has a size set. - // If only one of the sizes is unset it will query sizeHint only of for that hint type. - l->setMinimumSize(60,40); - l->setPreferredSize(220,40); - l->setMaximumSize(240,40); - - switch (whichSizeHint) { - case Qt::MinimumSize: - l->setMinimumSize(-1, -1); - break; - case Qt::PreferredSize: - l->setPreferredSize(-1, -1); - break; - case Qt::MaximumSize: - l->setMaximumSize(-1, -1); - break; - default: - break; - } - - QSizeF sizeHint; - // warm up instruction cache - l->invalidate(); - sizeHint = l->effectiveSizeHint((Qt::SizeHint)whichSizeHint); - // ...then measure... - QBENCHMARK { - l->invalidate(); - sizeHint = l->effectiveSizeHint((Qt::SizeHint)whichSizeHint); - } -} - -static QGraphicsLayout* createLayouts(int whichLayout) -{ - QSizeF min(0, 10); - QSizeF pref(50, 10); - QSizeF max(100, 10); - - QGraphicsWidget *a = createItem(min, pref, max, "a"); - QGraphicsWidget *b = createItem(min, pref, max, "b"); - QGraphicsWidget *c = createItem(min, pref, max, "c"); - QGraphicsWidget *d = createItem(min, pref, max, "d"); - - QGraphicsLayout *l; - if (whichLayout == 0) { - l = new QGraphicsLinearLayout; - QGraphicsLinearLayout *linear = static_cast<QGraphicsLinearLayout *>(l); - linear->setContentsMargins(0, 0, 0, 0); - - linear->addItem(a); - linear->addItem(b); - linear->addItem(c); - linear->addItem(d); - } else { - l = new QGraphicsAnchorLayout; - QGraphicsAnchorLayout *anchor = static_cast<QGraphicsAnchorLayout *>(l); - anchor->setContentsMargins(0, 0, 0, 0); - - // Horizontal - setAnchor(anchor, anchor, Qt::AnchorLeft, a, Qt::AnchorLeft, 0); - setAnchor(anchor, a, Qt::AnchorRight, b, Qt::AnchorLeft, 0); - setAnchor(anchor, b, Qt::AnchorRight, c, Qt::AnchorLeft, 0); - setAnchor(anchor, c, Qt::AnchorRight, d, Qt::AnchorLeft, 0); - setAnchor(anchor, d, Qt::AnchorRight, anchor, Qt::AnchorRight, 0); - - // Vertical - anchor->addAnchors(anchor, a, Qt::Vertical); - anchor->addAnchors(anchor, b, Qt::Vertical); - anchor->addAnchors(anchor, c, Qt::Vertical); - anchor->addAnchors(anchor, d, Qt::Vertical); - } - - return l; -} - -void tst_QGraphicsAnchorLayout::linearVsAnchorSizeHints_data() -{ - QTest::addColumn<int>("whichLayout"); - QTest::addColumn<int>("whichSizeHint"); - - QTest::newRow("QGraphicsLinearLayout::minimum") - << 0 << int(Qt::MinimumSize); - QTest::newRow("QGraphicsLinearLayout::preferred") - << 0 << int(Qt::PreferredSize); - QTest::newRow("QGraphicsLinearLayout::maximum") - << 0 << int(Qt::MaximumSize); - QTest::newRow("QGraphicsLinearLayout::noSizeHint") - << 0 << -1; - - QTest::newRow("QGraphicsAnchorLayout::minimum") - << 1 << int(Qt::MinimumSize); - QTest::newRow("QGraphicsAnchorLayout::preferred") - << 1 << int(Qt::PreferredSize); - QTest::newRow("QGraphicsAnchorLayout::maximum") - << 1 << int(Qt::MaximumSize); - QTest::newRow("QGraphicsAnchorLayout::noSizeHint") - << 1 << -1; -} - -void tst_QGraphicsAnchorLayout::linearVsAnchorSizeHints() -{ - QFETCH(int, whichSizeHint); - QFETCH(int, whichLayout); - - QGraphicsLayout *l = createLayouts(whichLayout); - - QSizeF sizeHint; - // warm up instruction cache - l->invalidate(); - sizeHint = l->effectiveSizeHint((Qt::SizeHint)whichSizeHint); - // ...then measure... - - QBENCHMARK { - l->invalidate(); - sizeHint = l->effectiveSizeHint((Qt::SizeHint)whichSizeHint); - } -} - -void tst_QGraphicsAnchorLayout::linearVsAnchorSetGeometry_data() -{ - QTest::addColumn<int>("whichLayout"); - - QTest::newRow("QGraphicsLinearLayout") - << 0; - QTest::newRow("QGraphicsAnchorLayout") - << 1; -} - -void tst_QGraphicsAnchorLayout::linearVsAnchorSetGeometry() -{ - QFETCH(int, whichLayout); - - QGraphicsLayout *l = createLayouts(whichLayout); - - QRectF sizeHint; - qreal maxWidth; - qreal increment; - // warm up instruction cache - l->invalidate(); - sizeHint.setSize(l->effectiveSizeHint(Qt::MinimumSize)); - maxWidth = l->effectiveSizeHint(Qt::MaximumSize).width(); - increment = (maxWidth - sizeHint.width()) / 100; - l->setGeometry(sizeHint); - // ...then measure... - - QBENCHMARK { - l->invalidate(); - for (qreal width = sizeHint.width(); width <= maxWidth; width += increment) { - sizeHint.setWidth(width); - l->setGeometry(sizeHint); - } - } -} - -void tst_QGraphicsAnchorLayout::linearVsAnchorNested_data() -{ - QTest::addColumn<int>("whichLayout"); - QTest::newRow("LinearLayout") - << 0; - QTest::newRow("AnchorLayout setup with null-anchors knot") - << 1; - QTest::newRow("AnchorLayout setup easy to simplificate") - << 2; -} - -void tst_QGraphicsAnchorLayout::linearVsAnchorNested() -{ - QFETCH(int, whichLayout); - - QSizeF min(10, 10); - QSizeF pref(80, 80); - QSizeF max(150, 150); - - QGraphicsWidget *a = createItem(min, pref, max, "a"); - QGraphicsWidget *b = createItem(min, pref, max, "b"); - QGraphicsWidget *c = createItem(min, pref, max, "c"); - QGraphicsWidget *d = createItem(min, pref, max, "d"); - - QGraphicsLayout *layout; - - if (whichLayout == 0) { - QGraphicsLinearLayout *linear1 = new QGraphicsLinearLayout; - QGraphicsLinearLayout *linear2 = new QGraphicsLinearLayout(Qt::Vertical); - QGraphicsLinearLayout *linear3 = new QGraphicsLinearLayout; - - linear1->addItem(a); - linear1->addItem(linear2); - linear2->addItem(b); - linear2->addItem(linear3); - linear3->addItem(c); - linear3->addItem(d); - - layout = linear1; - } else if (whichLayout == 1) { - QGraphicsAnchorLayout *anchor = new QGraphicsAnchorLayout; - - // A - anchor->addCornerAnchors(a, Qt::TopLeftCorner, anchor, Qt::TopLeftCorner); - anchor->addCornerAnchors(a, Qt::TopRightCorner, b, Qt::TopLeftCorner); - anchor->addCornerAnchors(a, Qt::BottomLeftCorner, anchor, Qt::BottomLeftCorner); - anchor->addCornerAnchors(a, Qt::BottomRightCorner, c, Qt::BottomLeftCorner); - - // B - anchor->addCornerAnchors(b, Qt::TopRightCorner, anchor, Qt::TopRightCorner); - anchor->addCornerAnchors(b, Qt::BottomLeftCorner, c, Qt::TopLeftCorner); - anchor->addCornerAnchors(b, Qt::BottomRightCorner, d, Qt::TopRightCorner); - - // C - anchor->addCornerAnchors(c, Qt::TopRightCorner, d, Qt::TopLeftCorner); - anchor->addCornerAnchors(c, Qt::BottomRightCorner, d, Qt::BottomLeftCorner); - - // D - anchor->addCornerAnchors(d, Qt::BottomRightCorner, anchor, Qt::BottomRightCorner); - - layout = anchor; - } else { - QGraphicsAnchorLayout *anchor = new QGraphicsAnchorLayout; - - // A - anchor->addAnchor(a, Qt::AnchorLeft, anchor, Qt::AnchorLeft); - anchor->addAnchors(a, anchor, Qt::Vertical); - anchor->addAnchor(a, Qt::AnchorRight, b, Qt::AnchorLeft); - anchor->addAnchor(a, Qt::AnchorRight, c, Qt::AnchorLeft); - - // B - anchor->addAnchor(b, Qt::AnchorTop, anchor, Qt::AnchorTop); - anchor->addAnchor(b, Qt::AnchorRight, anchor, Qt::AnchorRight); - anchor->addAnchor(b, Qt::AnchorBottom, c, Qt::AnchorTop); - anchor->addAnchor(b, Qt::AnchorBottom, d, Qt::AnchorTop); - - // C - anchor->addAnchor(c, Qt::AnchorRight, d, Qt::AnchorLeft); - anchor->addAnchor(c, Qt::AnchorBottom, anchor, Qt::AnchorBottom); - - // D - anchor->addAnchor(d, Qt::AnchorRight, anchor, Qt::AnchorRight); - anchor->addAnchor(d, Qt::AnchorBottom, anchor, Qt::AnchorBottom); - - layout = anchor; - } - - QSizeF sizeHint; - // warm up instruction cache - layout->invalidate(); - sizeHint = layout->effectiveSizeHint(Qt::PreferredSize); - - // ...then measure... - QBENCHMARK { - // To ensure that all sizeHints caches are invalidated in - // the LinearLayout setup, we must call updateGeometry on the - // children. If we didn't, only the top level layout would be - // re-calculated. - static_cast<QGraphicsLayoutItem *>(a)->updateGeometry(); - static_cast<QGraphicsLayoutItem *>(b)->updateGeometry(); - static_cast<QGraphicsLayoutItem *>(c)->updateGeometry(); - static_cast<QGraphicsLayoutItem *>(d)->updateGeometry(); - layout->invalidate(); - sizeHint = layout->effectiveSizeHint(Qt::PreferredSize); - } -} - -QTEST_MAIN(tst_QGraphicsAnchorLayout) - -#include "tst_qgraphicsanchorlayout.moc" diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsitem/qgraphicsitem.pro b/tests/benchmarks/gui/graphicsview/qgraphicsitem/qgraphicsitem.pro deleted file mode 100644 index 461ec13263..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsitem/qgraphicsitem.pro +++ /dev/null @@ -1,6 +0,0 @@ -QT += widgets testlib - -TEMPLATE = app -TARGET = tst_bench_qgraphicsitem - -SOURCES += tst_qgraphicsitem.cpp diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp deleted file mode 100644 index 313cc56b0b..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <qtest.h> -#include <QGraphicsItem> -#include <QGraphicsScene> -#include <QGraphicsView> - -class tst_QGraphicsItem : public QObject -{ - Q_OBJECT - -public: - tst_QGraphicsItem(); - virtual ~tst_QGraphicsItem(); - -public slots: - void initTestCase(); - void init(); - void cleanup(); - -private slots: - void setParentItem(); - void setParentItem_deep(); - void setParentItem_deep_reversed(); - void deleteItemWithManyChildren(); - void setPos_data(); - void setPos(); - void setTransform_data(); - void setTransform(); - void rotate(); - void scale(); - void shear(); - void translate(); -}; - -tst_QGraphicsItem::tst_QGraphicsItem() -{ -} - -tst_QGraphicsItem::~tst_QGraphicsItem() -{ -} - -static inline void processEvents() -{ - QApplication::processEvents(); - QApplication::processEvents(); -} - -void tst_QGraphicsItem::initTestCase() -{ - processEvents(); - QTest::qWait(1500); - processEvents(); -} - -void tst_QGraphicsItem::init() -{ - processEvents(); -} - -void tst_QGraphicsItem::cleanup() -{ -} - -void tst_QGraphicsItem::setParentItem() -{ - QBENCHMARK { - QGraphicsRectItem rect; - QGraphicsRectItem *childRect = new QGraphicsRectItem; - childRect->setParentItem(&rect); - } -} - -void tst_QGraphicsItem::setParentItem_deep() -{ - QBENCHMARK { - QGraphicsRectItem rect; - QGraphicsRectItem *lastRect = ▭ - for (int i = 0; i < 10; ++i) { - QGraphicsRectItem *childRect = new QGraphicsRectItem; - childRect->setParentItem(lastRect); - lastRect = childRect; - } - QGraphicsItem *first = rect.childItems().first(); - first->setParentItem(0); - } -} - -void tst_QGraphicsItem::setParentItem_deep_reversed() -{ - QBENCHMARK { - QGraphicsRectItem *lastRect = new QGraphicsRectItem; - for (int i = 0; i < 100; ++i) { - QGraphicsRectItem *parentRect = new QGraphicsRectItem; - lastRect->setParentItem(parentRect); - lastRect = parentRect; - } - delete lastRect; - } -} - -void tst_QGraphicsItem::deleteItemWithManyChildren() -{ - QBENCHMARK { - QGraphicsRectItem *rect = new QGraphicsRectItem; - for (int i = 0; i < 1000; ++i) - new QGraphicsRectItem(rect); - delete rect; - } -} - -void tst_QGraphicsItem::setPos_data() -{ - QTest::addColumn<QPointF>("pos"); - - QTest::newRow("0, 0") << QPointF(0, 0); - QTest::newRow("10, 10") << QPointF(10, 10); - QTest::newRow("-10, -10") << QPointF(-10, -10); -} - -void tst_QGraphicsItem::setPos() -{ - QFETCH(QPointF, pos); - - QGraphicsScene scene; - QGraphicsRectItem *rect = scene.addRect(QRectF(0, 0, 100, 100)); - processEvents(); - - QBENCHMARK { - rect->setPos(10, 10); - } -} - -void tst_QGraphicsItem::setTransform_data() -{ - QTest::addColumn<QTransform>("transform"); - - QTest::newRow("rotate 45z") << QTransform().rotate(45); - QTest::newRow("scale 2x2") << QTransform().scale(2, 2); - QTest::newRow("translate 100, 100") << QTransform().translate(100, 100); - QTest::newRow("rotate 45x 45y 45z") << QTransform().rotate(45, Qt::XAxis) - .rotate(45, Qt::YAxis).rotate(45, Qt::ZAxis); -} - -void tst_QGraphicsItem::setTransform() -{ - QFETCH(QTransform, transform); - - QGraphicsScene scene; - QGraphicsRectItem *item = scene.addRect(QRectF(0, 0, 100, 100)); - processEvents(); - - QBENCHMARK { - item->setTransform(transform); - } -} - -void tst_QGraphicsItem::rotate() -{ - QGraphicsScene scene; - QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); - processEvents(); - - const QTransform rotate(QTransform().rotate(45)); - QBENCHMARK { - item->setTransform(rotate, true); - } -} - -void tst_QGraphicsItem::scale() -{ - QGraphicsScene scene; - QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); - processEvents(); - - const QTransform scale(QTransform::fromScale(2, 2)); - QBENCHMARK { - item->setTransform(scale, true); - } -} - -void tst_QGraphicsItem::shear() -{ - QGraphicsScene scene; - QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); - processEvents(); - - const QTransform shear = QTransform().shear(1.5, 1.5); - QBENCHMARK { - item->setTransform(shear, true); - } -} - -void tst_QGraphicsItem::translate() -{ - QGraphicsScene scene; - QGraphicsItem *item = scene.addRect(QRectF(0, 0, 100, 100)); - processEvents(); - - const QTransform translate = QTransform::fromTranslate(100, 100); - QBENCHMARK { - item->setTransform(translate, true); - } -} - -QTEST_MAIN(tst_QGraphicsItem) -#include "tst_qgraphicsitem.moc" diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslayout/qgraphicslayout.pro b/tests/benchmarks/gui/graphicsview/qgraphicslayout/qgraphicslayout.pro deleted file mode 100644 index 9026fb37d8..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicslayout/qgraphicslayout.pro +++ /dev/null @@ -1,5 +0,0 @@ -TEMPLATE = app -TARGET = tst_bench_qgraphicslayout -QT += testlib -SOURCES += tst_qgraphicslayout.cpp - diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp b/tests/benchmarks/gui/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp deleted file mode 100644 index 1db130203a..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtTest/QtTest> -#include <QtGui/qgraphicslayout.h> -#include <QtGui/qgraphicslinearlayout.h> -#include <QtGui/qgraphicswidget.h> -#include <QtGui/qgraphicsview.h> - -class tst_QGraphicsLayout : public QObject -{ - Q_OBJECT -public: - tst_QGraphicsLayout() {} - ~tst_QGraphicsLayout() {} - -private slots: - void invalidate(); -}; - - -class RectWidget : public QGraphicsWidget -{ -public: - RectWidget(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0) : QGraphicsWidget(parent, wFlags), setGeometryCalls(0) {} - - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) - { - Q_UNUSED(option); - Q_UNUSED(widget); - painter->drawRoundRect(rect()); - painter->drawLine(rect().topLeft(), rect().bottomRight()); - painter->drawLine(rect().bottomLeft(), rect().topRight()); - } - - void setGeometry(const QRectF &rect) - { - //qDebug() << "setGeometry():" << this->data(0).toString(); - setGeometryCalls->insert(this, rect); - QGraphicsWidget::setGeometry(rect); - } - - void callUpdateGeometry() { - QGraphicsWidget::updateGeometry(); - } - - QMap<RectWidget*, QRectF> *setGeometryCalls; -}; - -/** - * Test to see how much time is needed to resize all widgets in a - * layout-widget-layout-widget-.... hierarchy from the point where a - * leaf widget changes its size hint. (updateGeometry() is called). - * - * If you run the test for 4.7 you'll get some really high numbers, but - * that's because they also include painting (and possible processing of - * some other events). - */ -void tst_QGraphicsLayout::invalidate() -{ - QGraphicsLayout::setInstantInvalidatePropagation(true); - QGraphicsScene scene; - QGraphicsView *view = new QGraphicsView(&scene); - QMap<RectWidget*, QRectF> setGeometryCalls; - - RectWidget *window = new RectWidget(0, Qt::Window); - window->setGeometryCalls = &setGeometryCalls; - window->setData(0, QString(QChar('a'))); - - scene.addItem(window); - RectWidget *leaf = 0; - const int depth = 100; - RectWidget *parent = window; - for (int i = 1; i < depth; ++i) { - QGraphicsLinearLayout *l = new QGraphicsLinearLayout(parent); - l->setContentsMargins(0,0,0,0); - RectWidget *child = new RectWidget; - child->setData(0, QString(QChar('a' + i))); - child->setGeometryCalls = &setGeometryCalls; - l->addItem(child); - parent = child; - } - leaf = parent; - leaf->setMinimumSize(QSizeF(1,1)); - - view->show(); - - QVERIFY(QTest::qWaitForWindowShown(view)); - - // ...then measure... - - int pass = 1; - - // should be as small as possible, to reduce overhead of painting - QSizeF size(1, 1); - setGeometryCalls.clear(); - QBENCHMARK { - leaf->setMinimumSize(size); - leaf->setMaximumSize(size); - while (setGeometryCalls.count() < depth) { - QApplication::sendPostedEvents(); - } - // force a resize on each widget, this will ensure - // that each iteration will resize all 50 widgets - int w = int(size.width()); - w^=2; - size.setWidth(w); - } - delete view; - QGraphicsLayout::setInstantInvalidatePropagation(false); -} - -QTEST_MAIN(tst_QGraphicsLayout) - -#include "tst_qgraphicslayout.moc" diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro deleted file mode 100644 index 7126c8ecd6..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro +++ /dev/null @@ -1,5 +0,0 @@ -TEMPLATE = app -TARGET = tst_bench_qgraphicslinearlayout -QT += testlib -SOURCES += tst_qgraphicslinearlayout.cpp - diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp deleted file mode 100644 index 325fcfbb09..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp +++ /dev/null @@ -1,120 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtTest/QtTest> -#include <QtGui/qgraphicslinearlayout.h> -#include <QtGui/qgraphicswidget.h> -#include <QtGui/qgraphicsview.h> - -class tst_QGraphicsLinearLayout : public QObject -{ - Q_OBJECT -public: - tst_QGraphicsLinearLayout() {} - ~tst_QGraphicsLinearLayout() {} - -private slots: - void heightForWidth_data(); - void heightForWidth(); -}; - - -struct MySquareWidget : public QGraphicsWidget -{ - MySquareWidget() {} - virtual QSizeF sizeHint ( Qt::SizeHint which, const QSizeF & constraint = QSizeF() ) const - { - if (which != Qt::PreferredSize) - return QGraphicsWidget::sizeHint(which, constraint); - if (constraint.width() < 0) - return QGraphicsWidget::sizeHint(which, constraint); - return QSizeF(constraint.width(), constraint.width()); - } -}; - -void tst_QGraphicsLinearLayout::heightForWidth_data() -{ - QTest::addColumn<bool>("hfw"); - QTest::addColumn<bool>("nested"); - - QTest::newRow("hfw") << true << false; - QTest::newRow("hfw, nested") << true << true; - QTest::newRow("not hfw") << false << false; - QTest::newRow("not hfw, nested") << false << true; -} - -void tst_QGraphicsLinearLayout::heightForWidth() -{ - QFETCH(bool, hfw); - QFETCH(bool, nested); - - QGraphicsScene scene; - QGraphicsWidget *form = new QGraphicsWidget; - scene.addItem(form); - - QGraphicsLinearLayout *outerlayout = 0; - if (nested) { - outerlayout = new QGraphicsLinearLayout(form); - for (int i = 0; i < 8; i++) { - QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical); - outerlayout->addItem(layout); - outerlayout = layout; - } - } - - QGraphicsLinearLayout *qlayout = 0; - qlayout = new QGraphicsLinearLayout(Qt::Vertical); - if (nested) - outerlayout->addItem(qlayout); - else - form->setLayout(qlayout); - - MySquareWidget *widget = new MySquareWidget; - for (int i = 0; i < 1; i++) { - widget = new MySquareWidget; - QSizePolicy sizepolicy = widget->sizePolicy(); - sizepolicy.setHeightForWidth(hfw); - widget->setSizePolicy(sizepolicy); - qlayout->addItem(widget); - } - // make sure only one iteration is done. - // run with tst_QGraphicsLinearLayout.exe "heightForWidth" -tickcounter -iterations 6 - // this will iterate 6 times the whole test, (not only the benchmark) - // which should reduce warmup time and give a realistic picture of the performance of - // effectiveSizeHint() - QSizeF constraint(hfw ? 100 : -1, -1); - QBENCHMARK { - (void)form->effectiveSizeHint(Qt::PreferredSize, constraint); - } - -} - - -QTEST_MAIN(tst_QGraphicsLinearLayout) - -#include "tst_qgraphicslinearlayout.moc" diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsscene/qgraphicsscene.pro b/tests/benchmarks/gui/graphicsview/qgraphicsscene/qgraphicsscene.pro deleted file mode 100644 index 769f84423e..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsscene/qgraphicsscene.pro +++ /dev/null @@ -1,7 +0,0 @@ -QT += widgets testlib - -TEMPLATE = app -TARGET = tst_bench_qgraphicsscene - -SOURCES += tst_qgraphicsscene.cpp - diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp deleted file mode 100644 index 6145fabbf8..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp +++ /dev/null @@ -1,243 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <qtest.h> -#include <QGraphicsItem> -#include <QGraphicsScene> -#include <QGraphicsView> - -class tst_QGraphicsScene : public QObject -{ - Q_OBJECT - -public: - tst_QGraphicsScene(); - virtual ~tst_QGraphicsScene(); - -public slots: - void init(); - void cleanup(); - -private slots: - void construct(); - void addItem_data(); - void addItem(); - void itemAt_data(); - void itemAt(); - void initialShow(); -}; - -tst_QGraphicsScene::tst_QGraphicsScene() -{ -} - -tst_QGraphicsScene::~tst_QGraphicsScene() -{ -} - -static inline void processEvents() -{ - QApplication::processEvents(); - QApplication::processEvents(); -} - -void tst_QGraphicsScene::init() -{ - processEvents(); -} - -void tst_QGraphicsScene::cleanup() -{ -} - -void tst_QGraphicsScene::construct() -{ - QBENCHMARK { - QGraphicsScene scene; - } -} - -void tst_QGraphicsScene::addItem_data() -{ - QTest::addColumn<int>("indexMethod"); - QTest::addColumn<QRectF>("sceneRect"); - QTest::addColumn<int>("numItems_X"); - QTest::addColumn<int>("numItems_Y"); - QTest::addColumn<int>("itemType"); - QTest::addColumn<QRectF>("itemRect"); - - QTest::newRow("null") << 0 << QRectF() << 0 << 0 << 0 << QRectF(); - QTest::newRow("0 QRectF() 10 x 10 QGraphicsRectItem (0,0,10,10)") << 0 << QRectF() << 10 << 10 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 25 x 25 QGraphicsRectItem (0,0,10,10)") << 0 << QRectF() << 25 << 25 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 100 x 100 QGraphicsRectItem (0,0,10,10)") << 0 << QRectF() << 100 << 100 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 250 x 250 QGraphicsRectItem (0,0,10,10)") << 0 << QRectF() << 250 << 250 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 10 x 10 QGraphicsEllipseItem (0,0,10,10)") << 0 << QRectF() << 10 << 10 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 25 x 25 QGraphicsEllipseItem (0,0,10,10)") << 0 << QRectF() << 25 << 25 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 100 x 100 QGraphicsEllipseItem (0,0,10,0)") << 0 << QRectF() << 100 << 100 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 250 x 250 QGraphicsEllipseItem (0,0,10,10)") << 0 << QRectF() << 250 << 250 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 10 x 10 QGraphicsRectItem (0,0,10,10)") << 0 << QRectF(0, 0, 100, 100) << 10 << 10 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 25 x 25 QGraphicsRectItem (0,0,10,10)") << 0 << QRectF(0, 0, 250, 250) << 25 << 25 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 100 x 100 QGraphicsRectItem (0,0,10,10)") << 0 << QRectF(0, 0, 1000, 1000) << 100 << 100 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 250 x 250 QGraphicsRectItem (0,0,10,10)") << 0 << QRectF(0, 0, 2500, 2500) << 250 << 250 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 10 x 10 QGraphicsEllipseItem (0,0,10,10)") << 0 << QRectF(0, 0, 100, 100) << 10 << 10 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 25 x 25 QGraphicsEllipseItem (0,0,10,10)") << 0 << QRectF(0, 0, 250, 250) << 25 << 25 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 100 x 100 QGraphicsEllipseItem (0,0,10,10)") << 0 << QRectF(0, 0, 1000, 1000) << 100 << 100 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("0 QRectF() 250 x 250 QGraphicsEllipseItem (0,0,10,10)") << 0 << QRectF(0, 0, 2500, 2500) << 250 << 250 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 10 x 10 QGraphicsRectItem (0,0,10,10)") << 1 << QRectF() << 10 << 10 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 25 x 25 QGraphicsRectItem (0,0,10,10)") << 1 << QRectF() << 25 << 25 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 100 x 100 QGraphicsRectItem (0,0,10,10)") << 1 << QRectF() << 100 << 100 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 250 x 250 QGraphicsRectItem (0,0,10,10)") << 1 << QRectF() << 250 << 250 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 10 x 10 QGraphicsEllipseItem (0,0,10,10)") << 1 << QRectF() << 10 << 10 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 25 x 25 QGraphicsEllipseItem (0,0,10,10)") << 1 << QRectF() << 25 << 25 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 100 x 100 QGraphicsEllipseItem (0,0,10,10)") << 1 << QRectF() << 100 << 100 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 250 x 250 QGraphicsEllipseItem (0,0,10,10)") << 1 << QRectF() << 250 << 250 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 10 x 10 QGraphicsRectItem (0,0,10,10)") << 1 << QRectF(0, 0, 100, 100) << 10 << 10 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 25 x 25 QGraphicsRectItem (0,0,10,10)") << 1 << QRectF(0, 0, 250, 250) << 25 << 25 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 100 x 100 QGraphicsRectItem (0,0,10,10)") << 1 << QRectF(0, 0, 1000, 1000) << 100 << 100 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 250 x 250 QGraphicsRectItem (0,0,10,10)") << 1 << QRectF(0, 0, 2500, 2500) << 250 << 250 << int(QGraphicsRectItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 10 x 10 QGraphicsEllipseItem (0,0,10,10)") << 1 << QRectF(0, 0, 100, 100) << 10 << 10 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 25 x 25 QGraphicsEllipseItem (0,0,10,10)") << 1 << QRectF(0, 0, 250, 250) << 25 << 25 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 100 x 100 QGraphicsEllipseItem (0,0,10,10)") << 1 << QRectF(0, 0, 1000, 1000) << 100 << 100 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); - QTest::newRow("1 QRectF() 250 x 250 QGraphicsEllipseItem (0,0,10,10)") << 1 << QRectF(0, 0, 2500, 2500) << 250 << 250 << int(QGraphicsEllipseItem::Type) << QRectF(0, 0, 10, 10); -} - -void tst_QGraphicsScene::addItem() -{ - QFETCH(int, indexMethod); - QFETCH(QRectF, sceneRect); - QFETCH(int, numItems_X); - QFETCH(int, numItems_Y); - QFETCH(int, itemType); - QFETCH(QRectF, itemRect); - - QGraphicsScene scene; - scene.setItemIndexMethod(indexMethod ? QGraphicsScene::BspTreeIndex : QGraphicsScene::NoIndex); - if (!sceneRect.isNull()) - scene.setSceneRect(sceneRect); - - processEvents(); - - QBENCHMARK { - QGraphicsItem *item = 0; - for (int y = 0; y < numItems_Y; ++y) { - for (int x = 0; x < numItems_X; ++x) { - switch (itemType) { - case QGraphicsRectItem::Type: - item = new QGraphicsRectItem(itemRect); - break; - case QGraphicsEllipseItem::Type: - default: - item = new QGraphicsEllipseItem(itemRect); - break; - } - item->setPos(x * itemRect.width(), y * itemRect.height()); - scene.addItem(item); - } - } - scene.items(QPointF(0, 0)); - } - //let QGraphicsScene::_q_polishItems be called so ~QGraphicsItem doesn't spend all his time cleaning the unpolished list - qApp->processEvents(); -} - -void tst_QGraphicsScene::itemAt_data() -{ - QTest::addColumn<int>("bspTreeDepth"); - QTest::addColumn<QRectF>("sceneRect"); - QTest::addColumn<int>("numItems_X"); - QTest::addColumn<int>("numItems_Y"); - QTest::addColumn<QRectF>("itemRect"); - - QTest::newRow("null") << 0 << QRectF() << 0 << 0 << QRectF(); - QTest::newRow("NoIndex 10x10") << -1 << QRectF() << 10 << 10 << QRectF(-10, -10, 20, 20); - QTest::newRow("NoIndex 25x25") << -1 << QRectF() << 25 << 25 << QRectF(-10, -10, 20, 20); - QTest::newRow("NoIndex 100x100") << -1 << QRectF() << 100 << 100 << QRectF(-10, -10, 20, 20); - QTest::newRow("NoIndex 250x250") << -1 << QRectF() << 250 << 250 << QRectF(-10, -10, 20, 20); - QTest::newRow("BspTreeIndex depth=auto 10x10") << 0 << QRectF() << 10 << 10 << QRectF(-10, -10, 20, 20); - QTest::newRow("BspTreeIndex depth=auto 25x25") << 0 << QRectF() << 25 << 25 << QRectF(-10, -10, 20, 20); - QTest::newRow("BspTreeIndex depth=auto 100x100") << 0 << QRectF() << 100 << 100 << QRectF(-10, -10, 20, 20); - QTest::newRow("BspTreeIndex depth=auto 250x250") << 0 << QRectF() << 250 << 250 << QRectF(-10, -10, 20, 20); - QTest::newRow("BspTreeIndex depth=16 10x10") << 16 << QRectF() << 10 << 10 << QRectF(-10, -10, 20, 20); - QTest::newRow("BspTreeIndex depth=16 25x25") << 16 << QRectF() << 25 << 25 << QRectF(-10, -10, 20, 20); - QTest::newRow("BspTreeIndex depth=16 100x100") << 16 << QRectF() << 100 << 100 << QRectF(-10, -10, 20, 20); - QTest::newRow("BspTreeIndex depth=16 250x250") << 16 << QRectF() << 250 << 250 << QRectF(-10, -10, 20, 20); -} - -void tst_QGraphicsScene::itemAt() -{ - QFETCH(int, bspTreeDepth); - QFETCH(QRectF, sceneRect); - QFETCH(int, numItems_X); - QFETCH(int, numItems_Y); - QFETCH(QRectF, itemRect); - - QGraphicsScene scene; - scene.setItemIndexMethod(bspTreeDepth >= 0 ? QGraphicsScene::BspTreeIndex : QGraphicsScene::NoIndex); - if (bspTreeDepth > 0) - scene.setBspTreeDepth(bspTreeDepth); - if (!sceneRect.isNull()) - scene.setSceneRect(sceneRect); - - for (int y = 0; y < numItems_Y; ++y) { - for (int x = 0; x < numItems_X; ++x) { - QGraphicsRectItem *item = new QGraphicsRectItem(itemRect); - item->setPos((x - numItems_X/2) * itemRect.width(), (y - numItems_Y/2) * itemRect.height()); - scene.addItem(item); - } - } - - scene.items(QPointF(0, 0)); // triggers indexing - processEvents(); - - QGraphicsItem *item = 0; - QBENCHMARK { - item = scene.items(QPointF(0, 0)).value(0, nullptr); - } - - //let QGraphicsScene::_q_polishItems be called so ~QGraphicsItem doesn't spend all his time cleaning the unpolished list - qApp->processEvents(); -} - -void tst_QGraphicsScene::initialShow() -{ - QGraphicsScene scene; - - QBENCHMARK { - for (int y = 0; y < 30000; ++y) { - QGraphicsRectItem *item = new QGraphicsRectItem(0, 0, 50, 50); - item->setPos((y/2) * item->rect().width(), (y/2) * item->rect().height()); - scene.addItem(item); - } - scene.items(QPointF(0, 0)); // triggers indexing - //This call polish the items so we bench their processing too. - qApp->processEvents(); - } -} - -QTEST_MAIN(tst_QGraphicsScene) -#include "tst_qgraphicsscene.moc" diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.cpp deleted file mode 100644 index 57ab62b1c3..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.cpp +++ /dev/null @@ -1,163 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "chip.h" - -#include <QtGui> - -Chip::Chip(const QColor &color, int x, int y) -{ - this->x = x; - this->y = y; - this->color = color; - setZValue((x + y) % 2); - - setFlags(ItemIsSelectable | ItemIsMovable); - setAcceptsHoverEvents(true); -} - -QRectF Chip::boundingRect() const -{ - return QRectF(0, 0, 110, 70); -} - -QPainterPath Chip::shape() const -{ - QPainterPath path; - path.addRect(14, 14, 82, 42); - return path; -} - -void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - Q_UNUSED(widget); - - QColor fillColor = (option->state & QStyle::State_Selected) ? color.dark(150) : color; - if (option->state & QStyle::State_MouseOver) - fillColor = fillColor.light(125); - - if (option->levelOfDetail < 0.2) { - if (option->levelOfDetail < 0.125) { - painter->fillRect(QRectF(0, 0, 110, 70), fillColor); - return; - } - - painter->setPen(QPen(Qt::black, 0)); - painter->setBrush(fillColor); - painter->drawRect(13, 13, 97, 57); - return; - } - - QPen oldPen = painter->pen(); - QPen pen = oldPen; - int width = 0; - if (option->state & QStyle::State_Selected) - width += 2; - - pen.setWidth(width); - painter->setBrush(QBrush(fillColor.dark(option->state & QStyle::State_Sunken ? 120 : 100))); - - painter->drawRect(QRect(14, 14, 79, 39)); - if (option->levelOfDetail >= 1) { - painter->setPen(QPen(Qt::gray, 1)); - painter->drawLine(15, 54, 94, 54); - painter->drawLine(94, 53, 94, 15); - painter->setPen(QPen(Qt::black, 0)); - } - - // Draw text - if (option->levelOfDetail >= 2) { - QFont font("Times", 10); - font.setStyleStrategy(QFont::ForceOutline); - painter->setFont(font); - painter->save(); - painter->scale(0.1, 0.1); - painter->drawText(170, 180, QString("Model: VSC-2000 (Very Small Chip) at %1x%2").arg(x).arg(y)); - painter->drawText(170, 200, QString("Serial number: DLWR-WEER-123L-ZZ33-SDSJ")); - painter->drawText(170, 220, QString("Manufacturer: Chip Manufacturer")); - painter->restore(); - } - - // Draw lines - QVarLengthArray<QLineF, 36> lines; - if (option->levelOfDetail >= 0.5) { - for (int i = 0; i <= 10; i += (option->levelOfDetail > 0.5 ? 1 : 2)) { - lines.append(QLineF(18 + 7 * i, 13, 18 + 7 * i, 5)); - lines.append(QLineF(18 + 7 * i, 54, 18 + 7 * i, 62)); - } - for (int i = 0; i <= 6; i += (option->levelOfDetail > 0.5 ? 1 : 2)) { - lines.append(QLineF(5, 18 + i * 5, 13, 18 + i * 5)); - lines.append(QLineF(94, 18 + i * 5, 102, 18 + i * 5)); - } - } - if (option->levelOfDetail >= 0.4) { - const QLineF lineData[] = { - QLineF(25, 35, 35, 35), - QLineF(35, 30, 35, 40), - QLineF(35, 30, 45, 35), - QLineF(35, 40, 45, 35), - QLineF(45, 30, 45, 40), - QLineF(45, 35, 55, 35) - }; - lines.append(lineData, 6); - } - painter->drawLines(lines.data(), lines.size()); - - // Draw red ink - if (stuff.size() > 1) { - painter->setPen(QPen(Qt::red, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); - painter->setBrush(Qt::NoBrush); - QPainterPath path; - path.moveTo(stuff.first()); - for (int i = 1; i < stuff.size(); ++i) - path.lineTo(stuff.at(i)); - painter->drawPath(path); - } -} - -void Chip::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - QGraphicsItem::mousePressEvent(event); - update(); -} - -void Chip::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - if (event->modifiers() & Qt::ShiftModifier) { - stuff << event->pos(); - update(); - return; - } - QGraphicsItem::mouseMoveEvent(event); -} - -void Chip::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - QGraphicsItem::mouseReleaseEvent(event); - update(); -} diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.debug b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.debug Binary files differdeleted file mode 100644 index 8fe1e5b0f1..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.debug +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.h deleted file mode 100644 index c14f8c41de..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.h +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef CHIP_H -#define CHIP_H - -#include <QtGui/QColor> -#include <QtGui/QGraphicsItem> - -class Chip : public QGraphicsItem -{ -public: - Chip(const QColor &color, int x, int y); - - QRectF boundingRect() const; - QPainterPath shape() const; - void paint(QPainter *painter, const QStyleOptionGraphicsItem *item, QWidget *widget); - -protected: - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - -private: - int x, y; - QColor color; - QVector<QPointF> stuff; -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.pro b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.pro deleted file mode 100644 index 8ef79cef23..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/chip.pro +++ /dev/null @@ -1,19 +0,0 @@ -RESOURCES += images.qrc - -HEADERS += mainwindow.h view.h chip.h -SOURCES += main.cpp -SOURCES += mainwindow.cpp view.cpp chip.cpp - -qtHaveModule(opengl): QT += opengl - -build_all:!build_pass { - CONFIG -= build_all - CONFIG += release -} - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/graphicsview/chip -sources.files = $$SOURCES $$HEADERS $$RESOURCES *.png *.pro *.html *.doc images -sources.path = $$[QT_INSTALL_EXAMPLES]/graphicsview/chip -INSTALLS += target sources - diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/fileprint.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/fileprint.png Binary files differdeleted file mode 100644 index ba7c02dc18..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/fileprint.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/images.qrc b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/images.qrc deleted file mode 100644 index c7cdf0c4c0..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/images.qrc +++ /dev/null @@ -1,10 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>qt4logo.png</file> - <file>zoomin.png</file> - <file>zoomout.png</file> - <file>rotateleft.png</file> - <file>rotateright.png</file> - <file>fileprint.png</file> -</qresource> -</RCC> diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/main.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/main.cpp deleted file mode 100644 index 53fcfa7192..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/main.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "mainwindow.h" - -#include <QApplication> - -int main(int argc, char **argv) -{ - Q_INIT_RESOURCE(images); - - QApplication app(argc, argv); - app.setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); - - MainWindow window; - window.show(); - - return app.exec(); -} diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.cpp deleted file mode 100644 index b162461403..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "mainwindow.h" -#include "view.h" -#include "chip.h" - -#include <QtGui> - -MainWindow::MainWindow(QWidget *parent) - : QWidget(parent) -{ - populateScene(); - - View *view = new View("Top left view"); - view->view()->setScene(scene); - QHBoxLayout *layout = new QHBoxLayout; - layout->addWidget(view); - setLayout(layout); - - setWindowTitle(tr("Chip Example")); -} - -void MainWindow::populateScene() -{ - scene = new QGraphicsScene; - - QImage image(":/qt4logo.png"); - - // Populate scene - int xx = 0; - int nitems = 0; - for (int i = -11000; i < 11000; i += 110) { - ++xx; - int yy = 0; - for (int j = -7000; j < 7000; j += 70) { - ++yy; - qreal x = (i + 11000) / 22000.0; - qreal y = (j + 7000) / 14000.0; - - QColor color(image.pixel(int(image.width() * x), int(image.height() * y))); - QGraphicsItem *item = new Chip(color, xx, yy); - item->setPos(QPointF(i, j)); - scene->addItem(item); - - ++nitems; - } - } -} diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.h deleted file mode 100644 index b0e12b448a..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/mainwindow.h +++ /dev/null @@ -1,53 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include <QtGui/qwidget.h> - -QT_FORWARD_DECLARE_CLASS(QGraphicsScene) -QT_FORWARD_DECLARE_CLASS(QGraphicsView) -QT_FORWARD_DECLARE_CLASS(QLabel) -QT_FORWARD_DECLARE_CLASS(QSlider) -QT_FORWARD_DECLARE_CLASS(QSplitter) - -class MainWindow : public QWidget -{ - Q_OBJECT -public: - MainWindow(QWidget *parent = 0); - -private: - void setupMatrix(); - void populateScene(); - - QGraphicsScene *scene; -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/qt4logo.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/qt4logo.png Binary files differdeleted file mode 100644 index 157e86ed64..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/qt4logo.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateleft.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateleft.png Binary files differdeleted file mode 100644 index 8cfa931986..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateleft.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateright.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateright.png Binary files differdeleted file mode 100644 index ec5e8664a1..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/rotateright.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp deleted file mode 100644 index de4e9e5ad7..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp +++ /dev/null @@ -1,251 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "view.h" - -#include <QtGui> - -#if 0 // Used to be included in Qt4 for Q_WS_WIN -#define CALLGRIND_START_INSTRUMENTATION {} -#define CALLGRIND_STOP_INSTRUMENTATION {} -#else -#include "valgrind/callgrind.h" -#endif - -#ifndef QT_NO_OPENGL -#include <QtOpenGL> -#endif - -#include <qmath.h> - -class CountView : public QGraphicsView -{ -protected: - void paintEvent(QPaintEvent *event) - { - static int n = 0; - if (n) - CALLGRIND_START_INSTRUMENTATION - QGraphicsView::paintEvent(event); - if (n) - CALLGRIND_STOP_INSTRUMENTATION - if (++n == 500) - qApp->quit(); - } -}; - -View::View(const QString &name, QWidget *parent) - : QFrame(parent) -{ - setFrameStyle(Sunken | StyledPanel); - graphicsView = new CountView; - graphicsView->setRenderHint(QPainter::Antialiasing, false); - graphicsView->setDragMode(QGraphicsView::RubberBandDrag); - graphicsView->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate); - - int size = style()->pixelMetric(QStyle::PM_ToolBarIconSize); - QSize iconSize(size, size); - - QToolButton *zoomInIcon = new QToolButton; - zoomInIcon->setAutoRepeat(true); - zoomInIcon->setAutoRepeatInterval(33); - zoomInIcon->setAutoRepeatDelay(0); - zoomInIcon->setIcon(QPixmap(":/zoomin.png")); - zoomInIcon->setIconSize(iconSize); - QToolButton *zoomOutIcon = new QToolButton; - zoomOutIcon->setAutoRepeat(true); - zoomOutIcon->setAutoRepeatInterval(33); - zoomOutIcon->setAutoRepeatDelay(0); - zoomOutIcon->setIcon(QPixmap(":/zoomout.png")); - zoomOutIcon->setIconSize(iconSize); - zoomSlider = new QSlider; - zoomSlider->setMinimum(0); - zoomSlider->setMaximum(500); - zoomSlider->setValue(250); - zoomSlider->setTickPosition(QSlider::TicksRight); - - // Zoom slider layout - QVBoxLayout *zoomSliderLayout = new QVBoxLayout; - zoomSliderLayout->addWidget(zoomInIcon); - zoomSliderLayout->addWidget(zoomSlider); - zoomSliderLayout->addWidget(zoomOutIcon); - - QToolButton *rotateLeftIcon = new QToolButton; - rotateLeftIcon->setIcon(QPixmap(":/rotateleft.png")); - rotateLeftIcon->setIconSize(iconSize); - QToolButton *rotateRightIcon = new QToolButton; - rotateRightIcon->setIcon(QPixmap(":/rotateright.png")); - rotateRightIcon->setIconSize(iconSize); - rotateSlider = new QSlider; - rotateSlider->setOrientation(Qt::Horizontal); - rotateSlider->setMinimum(-360); - rotateSlider->setMaximum(360); - rotateSlider->setValue(0); - rotateSlider->setTickPosition(QSlider::TicksBelow); - - // Rotate slider layout - QHBoxLayout *rotateSliderLayout = new QHBoxLayout; - rotateSliderLayout->addWidget(rotateLeftIcon); - rotateSliderLayout->addWidget(rotateSlider); - rotateSliderLayout->addWidget(rotateRightIcon); - - resetButton = new QToolButton; - resetButton->setText(tr("0")); - resetButton->setEnabled(false); - - // Label layout - QHBoxLayout *labelLayout = new QHBoxLayout; - label = new QLabel(name); - antialiasButton = new QToolButton; - antialiasButton->setText(tr("Antialiasing")); - antialiasButton->setCheckable(true); - antialiasButton->setChecked(false); - openGlButton = new QToolButton; - openGlButton->setText(tr("OpenGL")); - openGlButton->setCheckable(true); -#ifndef QT_NO_OPENGL - openGlButton->setEnabled(QGLFormat::hasOpenGL()); -#else - openGlButton->setEnabled(false); -#endif - printButton = new QToolButton; - printButton->setIcon(QIcon(QPixmap(":/fileprint.png"))); - - labelLayout->addWidget(label); - labelLayout->addStretch(); - labelLayout->addWidget(antialiasButton); - labelLayout->addWidget(openGlButton); - labelLayout->addWidget(printButton); - - QGridLayout *topLayout = new QGridLayout; - topLayout->addLayout(labelLayout, 0, 0); - topLayout->addWidget(graphicsView, 1, 0); - topLayout->addLayout(zoomSliderLayout, 1, 1); - topLayout->addLayout(rotateSliderLayout, 2, 0); - topLayout->addWidget(resetButton, 2, 1); - setLayout(topLayout); - - connect(resetButton, SIGNAL(clicked()), this, SLOT(resetView())); - connect(zoomSlider, SIGNAL(valueChanged(int)), this, SLOT(setupMatrix())); - connect(rotateSlider, SIGNAL(valueChanged(int)), this, SLOT(setupMatrix())); - connect(graphicsView->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(setResetButtonEnabled())); - connect(graphicsView->horizontalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(setResetButtonEnabled())); - connect(antialiasButton, SIGNAL(toggled(bool)), this, SLOT(toggleAntialiasing())); - connect(openGlButton, SIGNAL(toggled(bool)), this, SLOT(toggleOpenGL())); - connect(rotateLeftIcon, SIGNAL(clicked()), this, SLOT(rotateLeft())); - connect(rotateRightIcon, SIGNAL(clicked()), this, SLOT(rotateRight())); - connect(zoomInIcon, SIGNAL(clicked()), this, SLOT(zoomIn())); - connect(zoomOutIcon, SIGNAL(clicked()), this, SLOT(zoomOut())); - connect(printButton, SIGNAL(clicked()), this, SLOT(print())); - - setupMatrix(); - - startTimer(0); -} - -QGraphicsView *View::view() const -{ - return graphicsView; -} - -void View::resetView() -{ - zoomSlider->setValue(250); - rotateSlider->setValue(0); - setupMatrix(); - graphicsView->ensureVisible(QRectF(0, 0, 0, 0)); - - resetButton->setEnabled(false); -} - -void View::setResetButtonEnabled() -{ - resetButton->setEnabled(true); -} - -void View::setupMatrix() -{ - qreal scale = qPow(qreal(2), (zoomSlider->value() - 250) / qreal(50)); - - QMatrix matrix; - matrix.scale(scale, scale); - matrix.rotate(rotateSlider->value()); - - graphicsView->setMatrix(matrix); - setResetButtonEnabled(); -} - -void View::toggleOpenGL() -{ -#ifndef QT_NO_OPENGL - graphicsView->setViewport(openGlButton->isChecked() ? new QGLWidget(QGLFormat(QGL::SampleBuffers)) : new QWidget); -#endif -} - -void View::toggleAntialiasing() -{ - graphicsView->setRenderHint(QPainter::Antialiasing, antialiasButton->isChecked()); -} - -void View::print() -{ -#ifndef QT_NO_PRINTER - QPrinter printer; - QPrintDialog dialog(&printer, this); - if (dialog.exec() == QDialog::Accepted) { - QPainter painter(&printer); - graphicsView->render(&painter); - } -#endif -} - -void View::zoomIn() -{ - zoomSlider->setValue(zoomSlider->value() + 1); -} - -void View::zoomOut() -{ - zoomSlider->setValue(zoomSlider->value() - 1); -} - -void View::rotateLeft() -{ - rotateSlider->setValue(rotateSlider->value() - 10); -} - -void View::rotateRight() -{ - rotateSlider->setValue(rotateSlider->value() + 10); -} - -void View::timerEvent(QTimerEvent *) -{ - graphicsView->horizontalScrollBar()->setValue(graphicsView->horizontalScrollBar()->value() + 1); -} - diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.h deleted file mode 100644 index e20543858b..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/view.h +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef VIEW_H -#define VIEW_H - -#include <QFrame> - -QT_FORWARD_DECLARE_CLASS(QGraphicsView) -QT_FORWARD_DECLARE_CLASS(QLabel) -QT_FORWARD_DECLARE_CLASS(QSlider) -QT_FORWARD_DECLARE_CLASS(QToolButton) - -class View : public QFrame -{ - Q_OBJECT -public: - View(const QString &name, QWidget *parent = 0); - - QGraphicsView *view() const; - -private slots: - void resetView(); - void setResetButtonEnabled(); - void setupMatrix(); - void toggleOpenGL(); - void toggleAntialiasing(); - void print(); - - void zoomIn(); - void zoomOut(); - void rotateLeft(); - void rotateRight(); - - void timerEvent(QTimerEvent *); - -private: - QGraphicsView *graphicsView; - QLabel *label; - QToolButton *openGlButton; - QToolButton *antialiasButton; - QToolButton *printButton; - QToolButton *resetButton; - QSlider *zoomSlider; - QSlider *rotateSlider; -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomin.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomin.png Binary files differdeleted file mode 100644 index 8b0daeea48..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomin.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomout.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomout.png Binary files differdeleted file mode 100644 index 1575dd24f6..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/chipTest/zoomout.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp deleted file mode 100644 index e0cc0f8eb4..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include <QtGui> - -#if 0 // Used to be included in Qt4 for Q_WS_WIN -#define CALLGRIND_START_INSTRUMENTATION {} -#define CALLGRIND_STOP_INSTRUMENTATION {} -#else -#include "valgrind/callgrind.h" -#endif - -#if 0 // Used to be included in Qt4 for Q_WS_X11 -extern void qt_x11_wait_for_window_manager(QWidget *); -#endif - -class View : public QGraphicsView -{ - Q_OBJECT -public: - View(QGraphicsScene *scene, QGraphicsItem *item) - : QGraphicsView(scene), _item(item) - { - } - -protected: - void paintEvent(QPaintEvent *event) - { - static int n = 0; - if (n) - CALLGRIND_START_INSTRUMENTATION - QGraphicsView::paintEvent(event); - _item->moveBy(1, 1); - if (n) - CALLGRIND_STOP_INSTRUMENTATION - if (++n == 200) - qApp->quit(); - } - -private: - QGraphicsItem *_item; -}; - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - if (argc < 2) { - qDebug("usage: ./%s <numItems>", argv[0]); - return 1; - } - - QGraphicsScene scene(-150, -150, 300, 300); - scene.setItemIndexMethod(QGraphicsScene::NoIndex); - - QGraphicsRectItem *item = scene.addRect(-50, -50, 100, 100, QPen(Qt::NoPen), QBrush(Qt::blue)); - item->setFlag(QGraphicsItem::ItemIsMovable); - - for (int i = 0; i < atoi(argv[1]); ++i) { - QGraphicsRectItem *child = scene.addRect(-5, -5, 10, 10, QPen(Qt::NoPen), QBrush(Qt::blue)); - child->setPos(-50 + QRandomGenerator::global()->bounded(100), -50 + QRandomGenerator::global()->bounded(100)); - child->setParentItem(item); - } - - View view(&scene, item); - view.resize(300, 300); - view.show(); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif - - return app.exec(); -} - -#include "main.moc" diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/moveItems.pro b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/moveItems.pro deleted file mode 100644 index 28dcadcbfa..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/moveItems/moveItems.pro +++ /dev/null @@ -1 +0,0 @@ -SOURCES += main.cpp diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp deleted file mode 100644 index 1fbb229cd8..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp +++ /dev/null @@ -1,139 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include <QtGui> - -#if 0 // Used to be included in Qt4 for Q_WS_WIN -#define CALLGRIND_START_INSTRUMENTATION {} -#define CALLGRIND_STOP_INSTRUMENTATION {} -#else -#include "valgrind/callgrind.h" -#endif - -class ItemMover : public QObject -{ - Q_OBJECT -public: - ItemMover(QGraphicsItem *item) - : _item(item) - { - startTimer(0); - } - -protected: - void timerEvent(QTimerEvent *event) - { - _item->moveBy(-1, 0); - } - -private: - QGraphicsItem *_item; -}; - -class ClipItem : public QGraphicsRectItem -{ -public: - ClipItem(qreal x, qreal y, qreal w, qreal h, const QPen &pen, const QBrush &brush) - : QGraphicsRectItem(x, y, w, h) - { - setPen(pen); - setBrush(brush); - } - - QPainterPath shape() const - { - QPainterPath path; - path.addRect(rect()); - return path; - } -}; - -class CountView : public QGraphicsView -{ -protected: - void paintEvent(QPaintEvent *event) - { - static int n = 0; - if (n) - CALLGRIND_START_INSTRUMENTATION - QGraphicsView::paintEvent(event); - if (n) - CALLGRIND_STOP_INSTRUMENTATION - if (++n == 500) - qApp->quit(); - } -}; - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QGraphicsScene scene; - scene.setItemIndexMethod(QGraphicsScene::NoIndex); - - ClipItem *clipItem = new ClipItem(0, 0, 100, 100, QPen(), QBrush(Qt::blue)); - clipItem->setFlag(QGraphicsItem::ItemClipsChildrenToShape); - clipItem->setData(0, "clipItem"); - scene.addItem(clipItem); - - QGraphicsRectItem *scrollItem = scene.addRect(0, 0, 10, 10, QPen(Qt::NoPen), QBrush(Qt::NoBrush)); - scrollItem->setParentItem(clipItem); - scrollItem->setFlag(QGraphicsItem::ItemIsMovable); - scrollItem->setData(0, "scrollItem"); - - for (int y = 0; y < 25; ++y) { - for (int x = 0; x < 25; ++x) { - ClipItem *rect = new ClipItem(0, 0, 90, 20, QPen(Qt::NoPen), QBrush(Qt::green)); - rect->setParentItem(scrollItem); - rect->setPos(x * 95, y * 25); - rect->setData(0, qPrintable(QString("rect %1 %2").arg(x).arg(y))); - rect->setFlag(QGraphicsItem::ItemClipsChildrenToShape); - - QGraphicsEllipseItem *ellipse = new QGraphicsEllipseItem(-5, -5, 10, 10); - ellipse->setPen(QPen(Qt::NoPen)); - ellipse->setBrush(QBrush(Qt::yellow)); - ellipse->setParentItem(rect); - ellipse->setData(0, qPrintable(QString("ellipse %1 %2").arg(x).arg(y))); - } - } - - scrollItem->setRect(scrollItem->childrenBoundingRect()); - -#if 0 - ItemMover mover(scrollItem); -#endif - - CountView view; - view.setScene(&scene); - view.setSceneRect(-25, -25, 150, 150); - view.resize(300, 300); - view.show(); - - return app.exec(); -} - -#include "main.moc" diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/scrolltest.pro b/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/scrolltest.pro deleted file mode 100644 index 28dcadcbfa..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/benchapps/scrolltest/scrolltest.pro +++ /dev/null @@ -1 +0,0 @@ -SOURCES += main.cpp diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.cpp deleted file mode 100644 index cf82282bfe..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.cpp +++ /dev/null @@ -1,169 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "chip.h" - -#include <QtWidgets> - -Chip::Chip(const QColor &color, int x, int y) -{ - this->x = x; - this->y = y; - this->color = color; - setZValue((x + y) % 2); - - setFlags(ItemIsSelectable | ItemIsMovable); - setAcceptHoverEvents(true); -} - -QRectF Chip::boundingRect() const -{ - return QRectF(0, 0, 110, 70); -} - -QPainterPath Chip::shape() const -{ - QPainterPath path; - path.addRect(14, 14, 82, 42); - return path; -} - -void Chip::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) -{ - Q_UNUSED(widget); - - QColor fillColor = (option->state & QStyle::State_Selected) ? color.dark(150) : color; - if (option->state & QStyle::State_MouseOver) - fillColor = fillColor.light(125); - - if (option->levelOfDetail < 0.2) { - if (option->levelOfDetail < 0.125) { - painter->fillRect(QRectF(0, 0, 110, 70), fillColor); - return; - } - - QBrush b = painter->brush(); - painter->setBrush(fillColor); - painter->drawRect(13, 13, 97, 57); - painter->setBrush(b); - return; - } - - QPen oldPen = painter->pen(); - QPen pen = oldPen; - int width = 0; - if (option->state & QStyle::State_Selected) - width += 2; - - pen.setWidth(width); - QBrush b = painter->brush(); - painter->setBrush(QBrush(fillColor.dark(option->state & QStyle::State_Sunken ? 120 : 100))); - - painter->drawRect(QRect(14, 14, 79, 39)); - painter->setBrush(b); - - if (option->levelOfDetail >= 1) { - painter->setPen(QPen(Qt::gray, 1)); - painter->drawLine(15, 54, 94, 54); - painter->drawLine(94, 53, 94, 15); - painter->setPen(QPen(Qt::black, 0)); - } - - // Draw text - if (option->levelOfDetail >= 2) { - QFont font("Times", 10); - font.setStyleStrategy(QFont::ForceOutline); - painter->setFont(font); - painter->save(); - painter->scale(0.1, 0.1); - painter->drawText(170, 180, QString("Model: VSC-2000 (Very Small Chip) at %1x%2").arg(x).arg(y)); - painter->drawText(170, 200, QString("Serial number: DLWR-WEER-123L-ZZ33-SDSJ")); - painter->drawText(170, 220, QString("Manufacturer: Chip Manufacturer")); - painter->restore(); - } - - // Draw lines - QVarLengthArray<QLineF, 36> lines; - if (option->levelOfDetail >= 0.5) { - for (int i = 0; i <= 10; i += (option->levelOfDetail > 0.5 ? 1 : 2)) { - lines.append(QLineF(18 + 7 * i, 13, 18 + 7 * i, 5)); - lines.append(QLineF(18 + 7 * i, 54, 18 + 7 * i, 62)); - } - for (int i = 0; i <= 6; i += (option->levelOfDetail > 0.5 ? 1 : 2)) { - lines.append(QLineF(5, 18 + i * 5, 13, 18 + i * 5)); - lines.append(QLineF(94, 18 + i * 5, 102, 18 + i * 5)); - } - } - if (option->levelOfDetail >= 0.4) { - const QLineF lineData[] = { - QLineF(25, 35, 35, 35), - QLineF(35, 30, 35, 40), - QLineF(35, 30, 45, 35), - QLineF(35, 40, 45, 35), - QLineF(45, 30, 45, 40), - QLineF(45, 35, 55, 35) - }; - lines.append(lineData, 6); - } - painter->drawLines(lines.data(), lines.size()); - - // Draw red ink - if (stuff.size() > 1) { - QPen p = painter->pen(); - painter->setPen(QPen(Qt::red, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); - painter->setBrush(Qt::NoBrush); - QPainterPath path; - path.moveTo(stuff.first()); - for (int i = 1; i < stuff.size(); ++i) - path.lineTo(stuff.at(i)); - painter->drawPath(path); - painter->setPen(p); - } -} - -void Chip::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - QGraphicsItem::mousePressEvent(event); - update(); -} - -void Chip::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - if (event->modifiers() & Qt::ShiftModifier) { - stuff << event->pos(); - update(); - return; - } - QGraphicsItem::mouseMoveEvent(event); -} - -void Chip::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - QGraphicsItem::mouseReleaseEvent(event); - update(); -} diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.h deleted file mode 100644 index d991f771e2..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chip.h +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef CHIP_H -#define CHIP_H - -#include <QtGui/QColor> -#include <QtWidgets/QGraphicsItem> - -class Chip : public QGraphicsItem -{ -public: - Chip(const QColor &color, int x, int y); - - QRectF boundingRect() const; - QPainterPath shape() const; - void paint(QPainter *painter, const QStyleOptionGraphicsItem *item, QWidget *widget); - -protected: - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - -private: - int x, y; - QColor color; - QVector<QPointF> stuff; -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.cpp deleted file mode 100644 index dfa08b6869..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "chiptester.h" -#include "chip.h" - -#include <QtGui> -#include <QScrollBar> -#ifndef QT_NO_OPENGL -#include <QtOpenGL> -#endif - -ChipTester::ChipTester(QWidget *parent) - : QGraphicsView(parent), - npaints(0) -{ - resize(400, 300); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setFrameStyle(0); - setTransformationAnchor(NoAnchor); - - populateScene(); - setScene(scene); - - setWindowTitle(tr("Chip Example")); -} - -void ChipTester::setAntialias(bool enabled) -{ - setRenderHint(QPainter::Antialiasing, enabled); -} - -void ChipTester::setOpenGL(bool enabled) -{ -#ifndef QT_NO_OPENGL - setViewport(enabled ? new QGLWidget(QGLFormat(QGL::SampleBuffers)) : 0); -#endif -} - -void ChipTester::setOperation(Operation operation) -{ - this->operation = operation; -} - -void ChipTester::runBenchmark() -{ - npaints = 0; - timerId = startTimer(0); - stopWatch.start(); - eventLoop.exec(); - killTimer(timerId); -} - -void ChipTester::paintEvent(QPaintEvent *event) -{ - QGraphicsView::paintEvent(event); - if (++npaints == 50) - eventLoop.quit(); -} - -void ChipTester::timerEvent(QTimerEvent *) -{ - switch (operation) { - case Rotate360: - rotate(1); - break; - case ZoomInOut: { - qreal s = 0.05 + (npaints / 20.0); - setTransform(QTransform().scale(s, s)); - break; - } - case Translate: { - int offset = horizontalScrollBar()->minimum() - + (npaints % (horizontalScrollBar()->maximum() - horizontalScrollBar()->minimum())); - horizontalScrollBar()->setValue(offset); - break; - } - } -} - -void ChipTester::populateScene() -{ - scene = new QGraphicsScene; - - QImage image(":/qt4logo.png"); - - // Populate scene - int xx = 0; - int nitems = 0; - for (int i = -1100; i < 1100; i += 110) { - ++xx; - int yy = 0; - for (int j = -700; j < 700; j += 70) { - ++yy; - qreal x = (i + 1100) / 2200.0; - qreal y = (j + 700) / 1400.0; - - QColor color(image.pixel(int(image.width() * x), int(image.height() * y))); - QGraphicsItem *item = new Chip(color, xx, yy); - item->setPos(QPointF(i, j)); - scene->addItem(item); - - ++nitems; - } - } -} diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.h b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.h deleted file mode 100644 index d85686c94e..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.h +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef CHIPTESTER_H -#define CHIPTESTER_H - -#include <QtWidgets/QGraphicsView> -#include <QtCore/QEventLoop> -#include <QtCore/QTime> - -QT_FORWARD_DECLARE_CLASS(QGraphicsScene) -QT_FORWARD_DECLARE_CLASS(QGraphicsView) -QT_FORWARD_DECLARE_CLASS(QLabel) -QT_FORWARD_DECLARE_CLASS(QSlider) -QT_FORWARD_DECLARE_CLASS(QSplitter) - -class ChipTester : public QGraphicsView -{ - Q_OBJECT -public: - enum Operation { - Rotate360, - ZoomInOut, - Translate - }; - ChipTester(QWidget *parent = 0); - - void setAntialias(bool enabled); - void setOpenGL(bool enabled); - void runBenchmark(); - void setOperation(Operation operation); - -protected: - void paintEvent(QPaintEvent *event); - void timerEvent(QTimerEvent *event); - -private: - void populateScene(); - - QGraphicsView *view; - QGraphicsScene *scene; - int npaints; - int timerId; - QEventLoop eventLoop; - QTime stopWatch; - Operation operation; -}; - -#endif diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.pri b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.pri deleted file mode 100644 index 105117de30..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/chiptester.pri +++ /dev/null @@ -1,13 +0,0 @@ -SOURCES += \ - chiptester/chiptester.cpp \ - chiptester/chip.cpp - -HEADERS += \ - chiptester/chiptester.h \ - chiptester/chip.h - -RESOURCES += \ - chiptester/images.qrc - -QT += widgets -qtHaveModule(opengl): QT += opengl diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/images.qrc b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/images.qrc deleted file mode 100644 index 73e8620b25..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/images.qrc +++ /dev/null @@ -1,5 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>qt4logo.png</file> -</qresource> -</RCC> diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/qt4logo.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/qt4logo.png Binary files differdeleted file mode 100644 index 157e86ed64..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/chiptester/qt4logo.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/images/designer.png b/tests/benchmarks/gui/graphicsview/qgraphicsview/images/designer.png Binary files differdeleted file mode 100644 index 0988fcee3f..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/images/designer.png +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine-big.jpeg b/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine-big.jpeg Binary files differdeleted file mode 100644 index 9900a50f94..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine-big.jpeg +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine.jpeg b/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine.jpeg Binary files differdeleted file mode 100644 index 8fe1d3a67d..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/images/wine.jpeg +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.pro b/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.pro deleted file mode 100644 index 3d48959f3c..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.pro +++ /dev/null @@ -1,9 +0,0 @@ -QT += widgets testlib - -TEMPLATE = app -TARGET = tst_bench_qgraphicsview - -SOURCES += tst_qgraphicsview.cpp -RESOURCES += qgraphicsview.qrc - -include(chiptester/chiptester.pri) diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.qrc b/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.qrc deleted file mode 100644 index 3681648f56..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/qgraphicsview.qrc +++ /dev/null @@ -1,9 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>images/designer.png</file> - <file>images/wine.jpeg</file> - <file>images/wine-big.jpeg</file> - <file>random.data</file> -</qresource> -</RCC> - diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/random.data b/tests/benchmarks/gui/graphicsview/qgraphicsview/random.data Binary files differdeleted file mode 100644 index 190a36c707..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/random.data +++ /dev/null diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp deleted file mode 100644 index 9bb5231528..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp +++ /dev/null @@ -1,901 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <qtest.h> -#include <QtCore/QDebug> -#include <QtWidgets/QGraphicsItem> -#include <QtWidgets/QGraphicsScene> -#include <QtWidgets/QGraphicsView> -#include <QtGui/QImage> -#include <QtGui/QPixmapCache> -#include <QtWidgets/QDesktopWidget> - -#include "chiptester/chiptester.h" -//#define CALLGRIND_DEBUG -#ifdef CALLGRIND_DEBUG -#include "valgrind/callgrind.h" -#endif - -static inline void processEvents() -{ - QPixmapCache::clear(); - QApplication::processEvents(); - QApplication::processEvents(); -} - -class TestView : public QGraphicsView -{ - Q_OBJECT -public: - TestView() : QGraphicsView(), waiting(false), timerId(-1) - {} - - void waitForPaintEvent(int timeout = 4000) - { - if (waiting) - return; - waiting = true; - timerId = startTimer(timeout); - eventLoop.exec(); - killTimer(timerId); - timerId = -1; - waiting = false; - } - - void tryResize(int width, int height) - { - QDesktopWidget *desktop = QApplication::desktop(); - if (desktop->width() < width) - width = desktop->width(); - if (desktop->height() < height) - height = desktop->height(); - if (size() != QSize(width, height)) { - resize(width, height); - QTest::qWait(250); - processEvents(); - } - } - -protected: - void paintEvent(QPaintEvent *event) - { - QGraphicsView::paintEvent(event); - if (waiting) - eventLoop.exit(); - } - - void timerEvent(QTimerEvent *event) - { - if (event->timerId() == timerId) - eventLoop.exit(); - } - -private: - QEventLoop eventLoop; - bool waiting; - int timerId; -}; - -class tst_QGraphicsView : public QObject -{ - Q_OBJECT - -public: - tst_QGraphicsView(); - virtual ~tst_QGraphicsView(); - -public slots: - void initTestCase(); - void init(); - void cleanup(); - -private slots: - void construct(); - void paintSingleItem(); - void paintDeepStackingItems(); - void paintDeepStackingItems_clipped(); - void moveSingleItem(); - void mapPointToScene_data(); - void mapPointToScene(); - void mapPointFromScene_data(); - void mapPointFromScene(); - void mapRectToScene_data(); - void mapRectToScene(); - void mapRectFromScene_data(); - void mapRectFromScene(); - void chipTester_data(); - void chipTester(); - void deepNesting_data(); - void deepNesting(); - void imageRiver_data(); - void imageRiver(); - void textRiver_data(); - void textRiver(); - void moveItemCache_data(); - void moveItemCache(); - void paintItemCache_data(); - void paintItemCache(); - -private: - TestView mView; -}; - -tst_QGraphicsView::tst_QGraphicsView() -{ -} - -tst_QGraphicsView::~tst_QGraphicsView() -{ -} - -void tst_QGraphicsView::initTestCase() -{ - mView.setFrameStyle(0); - mView.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - mView.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - mView.tryResize(100, 100); - mView.show(); - QVERIFY(QTest::qWaitForWindowExposed(&mView)); - QTest::qWait(300); - processEvents(); -} - -void tst_QGraphicsView::init() -{ - mView.setRenderHints(QPainter::RenderHints(0)); - mView.viewport()->setMouseTracking(false); - mView.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate); - for (int i = 0; i < 3; ++i) - processEvents(); -} - -void tst_QGraphicsView::cleanup() -{ -} - -void tst_QGraphicsView::construct() -{ - QBENCHMARK { - QGraphicsView view; - } -} - -void tst_QGraphicsView::paintSingleItem() -{ - QGraphicsScene scene(0, 0, 100, 100); - scene.addRect(0, 0, 10, 10); - - mView.setScene(&scene); - mView.tryResize(100, 100); - processEvents(); - - QImage image(100, 100, QImage::Format_ARGB32_Premultiplied); - QPainter painter(&image); - QBENCHMARK { - mView.viewport()->render(&painter); - } -} - -#define DEEP_STACKING_COUNT 85 - -void tst_QGraphicsView::paintDeepStackingItems() -{ - QGraphicsScene scene(0, 0, 100, 100); - QGraphicsRectItem *item = scene.addRect(0, 0, 10, 10); - QGraphicsRectItem *lastRect = item; - for (int i = 0; i < DEEP_STACKING_COUNT; ++i) { - QGraphicsRectItem *rect = scene.addRect(0, 0, 10, 10); - rect->setPos(1, 1); - rect->setParentItem(lastRect); - lastRect = rect; - } - - mView.setScene(&scene); - mView.tryResize(100, 100); - processEvents(); - - QImage image(100, 100, QImage::Format_ARGB32_Premultiplied); - QPainter painter(&image); - QBENCHMARK { - mView.viewport()->render(&painter); - } -} - -void tst_QGraphicsView::paintDeepStackingItems_clipped() -{ - QGraphicsScene scene(0, 0, 100, 100); - QGraphicsRectItem *item = scene.addRect(0, 0, 10, 10); - item->setFlag(QGraphicsItem::ItemClipsChildrenToShape); - QGraphicsRectItem *lastRect = item; - for (int i = 0; i < DEEP_STACKING_COUNT; ++i) { - QGraphicsRectItem *rect = scene.addRect(0, 0, 10, 10); - rect->setPos(1, 1); - rect->setParentItem(lastRect); - lastRect = rect; - } - - mView.setScene(&scene); - mView.tryResize(100, 100); - processEvents(); - - QImage image(100, 100, QImage::Format_ARGB32_Premultiplied); - QPainter painter(&image); - QBENCHMARK { - mView.viewport()->render(&painter); - } -} - -void tst_QGraphicsView::moveSingleItem() -{ - QGraphicsScene scene(0, 0, 100, 100); - QGraphicsRectItem *item = scene.addRect(0, 0, 10, 10); - - mView.setScene(&scene); - mView.tryResize(100, 100); - processEvents(); - - int n = 1; - QBENCHMARK { - item->setPos(25 * n, 25 * n); - mView.waitForPaintEvent(); - n = n ? 0 : 1; - } -} - -void tst_QGraphicsView::mapPointToScene_data() -{ - QTest::addColumn<QTransform>("transform"); - QTest::addColumn<QPoint>("point"); - - QTest::newRow("null") << QTransform() << QPoint(); - QTest::newRow("identity QPoint(100, 100)") << QTransform() << QPoint(100, 100); - QTest::newRow("rotate QPoint(100, 100)") << QTransform().rotate(90) << QPoint(100, 100); - QTest::newRow("scale QPoint(100, 100)") << QTransform().scale(5, 5) << QPoint(100, 100); - QTest::newRow("translate QPoint(100, 100)") << QTransform().translate(5, 5) << QPoint(100, 100); - QTest::newRow("shear QPoint(100, 100)") << QTransform().shear(1.5, 1.5) << QPoint(100, 100); - QTest::newRow("perspect QPoint(100, 100)") << QTransform().rotate(45, Qt::XAxis) << QPoint(100, 100); -} - -void tst_QGraphicsView::mapPointToScene() -{ - QFETCH(QTransform, transform); - QFETCH(QPoint, point); - - QGraphicsView view; - view.setTransform(transform); - processEvents(); - - QBENCHMARK { - view.mapToScene(point); - } -} - -void tst_QGraphicsView::mapPointFromScene_data() -{ - QTest::addColumn<QTransform>("transform"); - QTest::addColumn<QPointF>("point"); - - QTest::newRow("null") << QTransform() << QPointF(); - QTest::newRow("identity QPointF(100, 100)") << QTransform() << QPointF(100, 100); - QTest::newRow("rotate QPointF(100, 100)") << QTransform().rotate(90) << QPointF(100, 100); - QTest::newRow("scale QPointF(100, 100)") << QTransform().scale(5, 5) << QPointF(100, 100); - QTest::newRow("translate QPointF(100, 100)") << QTransform().translate(5, 5) << QPointF(100, 100); - QTest::newRow("shear QPointF(100, 100)") << QTransform().shear(1.5, 1.5) << QPointF(100, 100); - QTest::newRow("perspect QPointF(100, 100)") << QTransform().rotate(45, Qt::XAxis) << QPointF(100, 100); -} - -void tst_QGraphicsView::mapPointFromScene() -{ - QFETCH(QTransform, transform); - QFETCH(QPointF, point); - - QGraphicsView view; - view.setTransform(transform); - processEvents(); - - QBENCHMARK { - view.mapFromScene(point); - } -} - -void tst_QGraphicsView::mapRectToScene_data() -{ - QTest::addColumn<QTransform>("transform"); - QTest::addColumn<QRect>("rect"); - - QTest::newRow("null") << QTransform() << QRect(); - QTest::newRow("identity QRect(0, 0, 100, 100)") << QTransform() << QRect(0, 0, 100, 100); - QTest::newRow("rotate QRect(0, 0, 100, 100)") << QTransform().rotate(90) << QRect(0, 0, 100, 100); - QTest::newRow("scale QRect(0, 0, 100, 100)") << QTransform().scale(5, 5) << QRect(0, 0, 100, 100); - QTest::newRow("translate QRect(0, 0, 100, 100)") << QTransform().translate(5, 5) << QRect(0, 0, 100, 100); - QTest::newRow("shear QRect(0, 0, 100, 100)") << QTransform().shear(1.5, 1.5) << QRect(0, 0, 100, 100); - QTest::newRow("perspect QRect(0, 0, 100, 100)") << QTransform().rotate(45, Qt::XAxis) << QRect(0, 0, 100, 100); -} - -void tst_QGraphicsView::mapRectToScene() -{ - QFETCH(QTransform, transform); - QFETCH(QRect, rect); - - QGraphicsView view; - view.setTransform(transform); - processEvents(); - - QBENCHMARK { - view.mapToScene(rect); - } -} - -void tst_QGraphicsView::mapRectFromScene_data() -{ - QTest::addColumn<QTransform>("transform"); - QTest::addColumn<QRectF>("rect"); - - QTest::newRow("null") << QTransform() << QRectF(); - QTest::newRow("identity QRectF(0, 0, 100, 100)") << QTransform() << QRectF(0, 0, 100, 100); - QTest::newRow("rotate QRectF(0, 0, 100, 100)") << QTransform().rotate(90) << QRectF(0, 0, 100, 100); - QTest::newRow("scale QRectF(0, 0, 100, 100)") << QTransform().scale(5, 5) << QRectF(0, 0, 100, 100); - QTest::newRow("translate QRectF(0, 0, 100, 100)") << QTransform().translate(5, 5) << QRectF(0, 0, 100, 100); - QTest::newRow("shear QRectF(0, 0, 100, 100)") << QTransform().shear(1.5, 1.5) << QRectF(0, 0, 100, 100); - QTest::newRow("perspect QRectF(0, 0, 100, 100)") << QTransform().rotate(45, Qt::XAxis) << QRectF(0, 0, 100, 100); -} - -void tst_QGraphicsView::mapRectFromScene() -{ - QFETCH(QTransform, transform); - QFETCH(QRectF, rect); - - QGraphicsView view; - view.setTransform(transform); - processEvents(); - - QBENCHMARK { - view.mapFromScene(rect); - } -} - -void tst_QGraphicsView::chipTester_data() -{ - QTest::addColumn<bool>("antialias"); - QTest::addColumn<bool>("opengl"); - QTest::addColumn<int>("operation"); - QTest::newRow("rotate, normal") << false << false << 0; - QTest::newRow("rotate, normal, antialias") << true << false << 0; - QTest::newRow("rotate, opengl") << false << true << 0; - QTest::newRow("rotate, opengl, antialias") << true << true << 0; - QTest::newRow("zoom, normal") << false << false << 1; - QTest::newRow("zoom, normal, antialias") << true << false << 1; - QTest::newRow("zoom, opengl") << false << true << 1; - QTest::newRow("zoom, opengl, antialias") << true << true << 1; - QTest::newRow("translate, normal") << false << false << 2; - QTest::newRow("translate, normal, antialias") << true << false << 2; - QTest::newRow("translate, opengl") << false << true << 2; - QTest::newRow("translate, opengl, antialias") << true << true << 2; -} - -void tst_QGraphicsView::chipTester() -{ - QFETCH(bool, antialias); - QFETCH(bool, opengl); - QFETCH(int, operation); - - ChipTester tester; - tester.setAntialias(antialias); - tester.setOpenGL(opengl); - tester.setOperation(ChipTester::Operation(operation)); - tester.show(); - QVERIFY(QTest::qWaitForWindowExposed(&tester)); - QTest::qWait(250); - processEvents(); - - QBENCHMARK { - tester.runBenchmark(); - } -} - -static void addChildHelper(QGraphicsItem *parent, int n, bool rotate) -{ - if (!n) - return; - QGraphicsRectItem *item = new QGraphicsRectItem(QRectF(0, 0, 50, 50), parent); - item->setPos(10, 10); - if (rotate) - item->setTransform(QTransform().rotate(10), true); - addChildHelper(item, n - 1, rotate); -} - -void tst_QGraphicsView::deepNesting_data() -{ - QTest::addColumn<bool>("rotate"); - QTest::addColumn<bool>("sortCache"); - QTest::addColumn<bool>("bsp"); - - QTest::newRow("bsp, no transform") << false << false << true; - QTest::newRow("bsp, rotation") << true << false << true; - QTest::newRow("bsp, no transform, sort cache") << false << true << true; - QTest::newRow("bsp, rotation, sort cache") << true << true << true; - QTest::newRow("no transform") << false << false << false; - QTest::newRow("rotation") << true << false << false; - QTest::newRow("no transform, sort cache") << false << true << false; - QTest::newRow("rotation, sort cache") << true << true << false; -} - -void tst_QGraphicsView::deepNesting() -{ - QFETCH(bool, rotate); - QFETCH(bool, sortCache); - QFETCH(bool, bsp); - - QGraphicsScene scene; - for (int y = 0; y < 15; ++y) { - for (int x = 0; x < 15; ++x) { - QGraphicsItem *item1 = scene.addRect(QRectF(0, 0, 50, 50)); - if (rotate) - item1->setTransform(QTransform().rotate(10), true); - item1->setPos(x * 25, y * 25); - addChildHelper(item1, 30, rotate); - } - } - scene.setItemIndexMethod(bsp ? QGraphicsScene::BspTreeIndex : QGraphicsScene::NoIndex); - scene.setSortCacheEnabled(sortCache); - scene.setSceneRect(scene.sceneRect()); - - mView.setRenderHint(QPainter::Antialiasing); - mView.setScene(&scene); - mView.tryResize(600, 600); - (void)scene.items(QPointF(0, 0)); - processEvents(); - - QBENCHMARK { -#ifdef CALLGRIND_DEBUG - CALLGRIND_START_INSTRUMENTATION -#endif - mView.viewport()->update(); - mView.waitForPaintEvent(); -#ifdef CALLGRIND_DEBUG - CALLGRIND_STOP_INSTRUMENTATION -#endif - } -} - -class AnimatedPixmapItem : public QGraphicsPixmapItem -{ -public: - AnimatedPixmapItem(int x, int y, bool rot, bool scal, QGraphicsItem *parent = 0) - : QGraphicsPixmapItem(parent), rotateFactor(0), scaleFactor(0) - { - rotate = rot; - scale = scal; - xspeed = x; - yspeed = y; - } - -protected: - void advance(int i) - { - if (!i) - return; - int x = int(pos().x()) + pixmap().width(); - x += xspeed; - x = (x % (300 + pixmap().width() * 2)) - pixmap().width(); - int y = int(pos().y()) + pixmap().width(); - y += yspeed; - y = (y % (300 + pixmap().width() * 2)) - pixmap().width(); - setPos(x, y); - - int rot = rotateFactor; - int sca = scaleFactor; - if (rotate) - rotateFactor = 1 + (rot + xspeed) % 360; - if (scale) - scaleFactor = 1 + (sca + yspeed) % 50; - - if (rotate || scale) { - qreal s = 0.5 + scaleFactor / 50.0; - setTransform(QTransform().rotate(rotateFactor).scale(s, s)); - } - } - -private: - int xspeed; - int yspeed; - int rotateFactor; - int scaleFactor; - bool rotate; - bool scale; -}; - -void tst_QGraphicsView::imageRiver_data() -{ - QTest::addColumn<int>("direction"); - QTest::addColumn<bool>("rotation"); - QTest::addColumn<bool>("scale"); - QTest::newRow("horizontal") << 0 << false << false; - QTest::newRow("vertical") << 1 << false << false; - QTest::newRow("both") << 2 << false << false; - QTest::newRow("horizontal rot") << 0 << true << false; - QTest::newRow("horizontal scale") << 0 << false << true; - QTest::newRow("horizontal rot + scale") << 0 << true << true; -} - -void tst_QGraphicsView::imageRiver() -{ - QFETCH(int, direction); - QFETCH(bool, rotation); - QFETCH(bool, scale); - - QGraphicsScene scene(0, 0, 300, 300); - - QPixmap pix(":/images/designer.png"); - QVERIFY(!pix.isNull()); - - QList<QGraphicsItem *> items; - QFile file(":/random.data"); - QVERIFY(file.open(QIODevice::ReadOnly)); - QDataStream str(&file); - for (int i = 0; i < 50; ++i) { - AnimatedPixmapItem *item = 0; - if (direction == 0) item = new AnimatedPixmapItem((i % 4) + 1, 0, rotation, scale); - if (direction == 1) item = new AnimatedPixmapItem(0, (i % 4) + 1, rotation, scale); - if (direction == 2) item = new AnimatedPixmapItem((i % 4) + 1, (i % 4) + 1, rotation, scale); - item->setPixmap(pix); - int rnd1, rnd2; - str >> rnd1 >> rnd2; - item->setPos(-pix.width() + rnd1 % (300 + pix.width()), - -pix.height() + rnd2 % (300 + pix.height())); - scene.addItem(item); - } - scene.setSceneRect(0, 0, 300, 300); - - mView.setScene(&scene); - mView.tryResize(300, 300); - processEvents(); - - QBENCHMARK { -#ifdef CALLGRIND_DEBUG - CALLGRIND_START_INSTRUMENTATION -#endif - for (int i = 0; i < 50; ++i) { - scene.advance(); - mView.waitForPaintEvent(); - } -#ifdef CALLGRIND_DEBUG - CALLGRIND_STOP_INSTRUMENTATION -#endif - } -} - -class AnimatedTextItem : public QGraphicsSimpleTextItem -{ -public: - AnimatedTextItem(int x, int y, bool rot, bool scal, QGraphicsItem *parent = 0) - : QGraphicsSimpleTextItem(parent), rotateFactor(0), scaleFactor(25) - { - setText("River of text"); - rotate = rot; - scale = scal; - xspeed = x; - yspeed = y; - } - -protected: - void advance(int i) - { - if (!i) - return; - QRect r = boundingRect().toRect(); - int x = int(pos().x()) + r.width(); - x += xspeed; - x = (x % (300 + r.width() * 2)) - r.width(); - int y = int(pos().y()) + r.width(); - y += yspeed; - y = (y % (300 + r.width() * 2)) - r.width(); - setPos(x, y); - - int rot = rotateFactor; - int sca = scaleFactor; - if (rotate) - rotateFactor = 1 + (rot + xspeed) % 360; - if (scale) - scaleFactor = 1 + (sca + yspeed) % 50; - - if (rotate || scale) { - qreal s = 0.5 + scaleFactor / 50.0; - setTransform(QTransform().rotate(rotateFactor).scale(s, s)); - } - } - -private: - int xspeed; - int yspeed; - int rotateFactor; - int scaleFactor; - bool rotate; - bool scale; -}; - -void tst_QGraphicsView::textRiver_data() -{ - QTest::addColumn<int>("direction"); - QTest::addColumn<bool>("rotation"); - QTest::addColumn<bool>("scale"); - QTest::newRow("horizontal") << 0 << false << false; - QTest::newRow("vertical") << 1 << false << false; - QTest::newRow("both") << 2 << false << false; - QTest::newRow("horizontal rot") << 0 << true << false; - QTest::newRow("horizontal scale") << 0 << false << true; - QTest::newRow("horizontal rot + scale") << 0 << true << true; -} - -void tst_QGraphicsView::textRiver() -{ - QFETCH(int, direction); - QFETCH(bool, rotation); - QFETCH(bool, scale); - - QGraphicsScene scene(0, 0, 300, 300); - - QPixmap pix(":/images/designer.png"); - QVERIFY(!pix.isNull()); - - QList<QGraphicsItem *> items; - QFile file(":/random.data"); - QVERIFY(file.open(QIODevice::ReadOnly)); - QDataStream str(&file); - for (int i = 0; i < 50; ++i) { - AnimatedTextItem *item = 0; - if (direction == 0) item = new AnimatedTextItem((i % 4) + 1, 0, rotation, scale); - if (direction == 1) item = new AnimatedTextItem(0, (i % 4) + 1, rotation, scale); - if (direction == 2) item = new AnimatedTextItem((i % 4) + 1, (i % 4) + 1, rotation, scale); - int rnd1, rnd2; - str >> rnd1 >> rnd2; - item->setPos(-pix.width() + rnd1 % (300 + pix.width()), - -pix.height() + rnd2 % (300 + pix.height())); - item->setAcceptDrops(false); - item->setAcceptHoverEvents(false); - scene.addItem(item); - } - scene.setSceneRect(0, 0, 300, 300); - - mView.setScene(&scene); - mView.tryResize(300, 300); - processEvents(); - - QBENCHMARK { -#ifdef CALLGRIND_DEBUG - CALLGRIND_START_INSTRUMENTATION -#endif - for (int i = 0; i < 50; ++i) { - scene.advance(); - mView.waitForPaintEvent(); - } -#ifdef CALLGRIND_DEBUG - CALLGRIND_STOP_INSTRUMENTATION -#endif - } -} - -class AnimatedPixmapCacheItem : public QGraphicsPixmapItem -{ -public: - AnimatedPixmapCacheItem(int x, int y, QGraphicsItem *parent = 0) - : QGraphicsPixmapItem(parent) - { - xspeed = x; - yspeed = y; - } - - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) - { - QGraphicsPixmapItem::paint(painter,option,widget); - //We just want to wait, and we don't want to process the event loop with qWait - QTest::qSleep(3); - } -protected: - void advance(int i) - { - if (!i) - return; - int x = int(pos().x()) + pixmap().width(); - x += xspeed; - x = (x % (300 + pixmap().width() * 2)) - pixmap().width(); - int y = int(pos().y()) + pixmap().width(); - y += yspeed; - y = (y % (300 + pixmap().width() * 2)) - pixmap().width(); - setPos(x, y); - } - -private: - int xspeed; - int yspeed; -}; - -void tst_QGraphicsView::moveItemCache_data() -{ - QTest::addColumn<int>("direction"); - QTest::addColumn<bool>("rotation"); - QTest::addColumn<int>("cacheMode"); - QTest::newRow("Horizontal movement : ItemCoordinate Cache") << 0 << false << (int)QGraphicsItem::ItemCoordinateCache; - QTest::newRow("Horizontal movement : DeviceCoordinate Cache") << 0 << false << (int)QGraphicsItem::DeviceCoordinateCache; - QTest::newRow("Horizontal movement : No Cache") << 0 << false << (int)QGraphicsItem::NoCache; - QTest::newRow("Vertical + Horizontal movement : ItemCoordinate Cache") << 2 << false << (int)QGraphicsItem::ItemCoordinateCache; - QTest::newRow("Vertical + Horizontal movement : DeviceCoordinate Cache") << 2 << false << (int)QGraphicsItem::DeviceCoordinateCache; - QTest::newRow("Vertical + Horizontal movement : No Cache") << 2 << false << (int)QGraphicsItem::NoCache; - QTest::newRow("Horizontal movement + Rotation : ItemCoordinate Cache") << 0 << true << (int)QGraphicsItem::ItemCoordinateCache; - QTest::newRow("Horizontal movement + Rotation : DeviceCoordinate Cache") << 0 << true << (int)QGraphicsItem::DeviceCoordinateCache; - QTest::newRow("Horizontal movement + Rotation : No Cache") << 0 << true << (int)QGraphicsItem::NoCache; -} - -void tst_QGraphicsView::moveItemCache() -{ - QFETCH(int, direction); - QFETCH(bool, rotation); - QFETCH(int, cacheMode); - - QGraphicsScene scene(0, 0, 300, 300); - - QPixmap pix(":/images/wine.jpeg"); - QVERIFY(!pix.isNull()); - - QList<QGraphicsItem *> items; - QFile file(":/random.data"); - QVERIFY(file.open(QIODevice::ReadOnly)); - QDataStream str(&file); - for (int i = 0; i < 5; ++i) { - AnimatedPixmapCacheItem *item = 0; - if (direction == 0) item = new AnimatedPixmapCacheItem((i % 4) + 1, 0); - if (direction == 1) item = new AnimatedPixmapCacheItem(0, (i % 4) + 1); - if (direction == 2) item = new AnimatedPixmapCacheItem((i % 4) + 1, (i % 4) + 1); - item->setPixmap(pix); - item->setCacheMode((QGraphicsItem::CacheMode)cacheMode); - if (rotation) - item->setTransform(QTransform().rotate(45)); - int rnd1, rnd2; - str >> rnd1 >> rnd2; - item->setPos(-pix.width() + rnd1 % (400 + pix.width()), - -pix.height() + rnd2 % (400 + pix.height())); - scene.addItem(item); - } - scene.setSceneRect(0, 0, 400, 400); - - mView.setScene(&scene); - mView.tryResize(400, 400); - processEvents(); - - QBENCHMARK { -#ifdef CALLGRIND_DEBUG - CALLGRIND_START_INSTRUMENTATION -#endif - for (int i = 0; i < 5; ++i) { - scene.advance(); - mView.waitForPaintEvent(); - } -#ifdef CALLGRIND_DEBUG - CALLGRIND_STOP_INSTRUMENTATION -#endif - } -} - -class UpdatedPixmapCacheItem : public QGraphicsPixmapItem -{ -public: - UpdatedPixmapCacheItem(bool partial, QGraphicsItem *parent = 0) - : QGraphicsPixmapItem(parent), partial(partial) - { - } - - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) - { - QGraphicsPixmapItem::paint(painter,option,widget); - } -protected: - void advance(int i) - { - Q_UNUSED(i); - if (partial) - update(QRectF(boundingRect().center().x(), boundingRect().center().x(), 30, 30)); - else - update(); - } - -private: - bool partial; -}; - -void tst_QGraphicsView::paintItemCache_data() -{ - QTest::addColumn<bool>("updatePartial"); - QTest::addColumn<bool>("rotation"); - QTest::addColumn<int>("cacheMode"); - QTest::newRow("Partial Update : ItemCoordinate Cache") << true << false << (int)QGraphicsItem::ItemCoordinateCache; - QTest::newRow("Partial Update : DeviceCoordinate Cache") << true << false << (int)QGraphicsItem::DeviceCoordinateCache; - QTest::newRow("Partial Update : No Cache") << true << false << (int)QGraphicsItem::NoCache; - QTest::newRow("Full Update : ItemCoordinate Cache") << false << false << (int)QGraphicsItem::ItemCoordinateCache; - QTest::newRow("Full Update : DeviceCoordinate Cache") << false << false << (int)QGraphicsItem::DeviceCoordinateCache; - QTest::newRow("Full Update : No Cache") << false << false << (int)QGraphicsItem::NoCache; - QTest::newRow("Partial Update : ItemCoordinate Cache item rotated") << true << true << (int)QGraphicsItem::ItemCoordinateCache; - QTest::newRow("Partial Update : DeviceCoordinate Cache item rotated") << true << true << (int)QGraphicsItem::DeviceCoordinateCache; - QTest::newRow("Partial Update : No Cache item rotated") << true << true << (int)QGraphicsItem::NoCache; - QTest::newRow("Full Update : ItemCoordinate Cache item rotated") << false << true << (int)QGraphicsItem::ItemCoordinateCache; - QTest::newRow("Full Update : DeviceCoordinate Cache item rotated") << false << true << (int)QGraphicsItem::DeviceCoordinateCache; - QTest::newRow("Full Update : No Cache item rotated") << false << true <<(int)QGraphicsItem::NoCache; -} - -void tst_QGraphicsView::paintItemCache() -{ - QFETCH(bool, updatePartial); - QFETCH(bool, rotation); - QFETCH(int, cacheMode); - - QGraphicsScene scene(0, 0, 300, 300); - - QPixmap pix(":/images/wine.jpeg"); - QVERIFY(!pix.isNull()); - - QList<QGraphicsItem *> items; - QFile file(":/random.data"); - QVERIFY(file.open(QIODevice::ReadOnly)); - QDataStream str(&file); - UpdatedPixmapCacheItem *item = new UpdatedPixmapCacheItem(updatePartial); - item->setPixmap(pix); - item->setCacheMode((QGraphicsItem::CacheMode)cacheMode); - if (rotation) - item->setTransform(QTransform().rotate(45)); - item->setPos(-100, -100); - scene.addItem(item); - - QPixmap pix2(":/images/wine-big.jpeg"); - item = new UpdatedPixmapCacheItem(updatePartial); - item->setPixmap(pix2); - item->setCacheMode((QGraphicsItem::CacheMode)cacheMode); - if (rotation) - item->setTransform(QTransform().rotate(45)); - item->setPos(0, 0); - scene.addItem(item); - scene.setSceneRect(-100, -100, 600, 600); - - mView.tryResize(600, 600); - mView.setScene(&scene); - processEvents(); - - QBENCHMARK { -#ifdef CALLGRIND_DEBUG - CALLGRIND_START_INSTRUMENTATION -#endif - for (int i = 0; i < 5; ++i) { - scene.advance(); - mView.waitForPaintEvent(); - } -#ifdef CALLGRIND_DEBUG - CALLGRIND_STOP_INSTRUMENTATION -#endif - } -} - -QTEST_MAIN(tst_QGraphicsView) -#include "tst_qgraphicsview.moc" diff --git a/tests/benchmarks/gui/graphicsview/qgraphicswidget/qgraphicswidget.pro b/tests/benchmarks/gui/graphicsview/qgraphicswidget/qgraphicswidget.pro deleted file mode 100644 index 00becec216..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicswidget/qgraphicswidget.pro +++ /dev/null @@ -1,6 +0,0 @@ -QT += widgets testlib - -TEMPLATE = app -TARGET = tst_bench_qgraphicswidget - -SOURCES += tst_qgraphicswidget.cpp diff --git a/tests/benchmarks/gui/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/benchmarks/gui/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp deleted file mode 100644 index d9bc7f21b6..0000000000 --- a/tests/benchmarks/gui/graphicsview/qgraphicswidget/tst_qgraphicswidget.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <qtest.h> -#include <QGraphicsItem> -#include <QGraphicsScene> -#include <QGraphicsView> -#include <QGraphicsWidget> -#include <QRandomGenerator> - -class tst_QGraphicsWidget : public QObject -{ - Q_OBJECT - -public: - tst_QGraphicsWidget(); - virtual ~tst_QGraphicsWidget(); - -public slots: - void init(); - void cleanup(); - -private slots: - void move(); -}; - -tst_QGraphicsWidget::tst_QGraphicsWidget() -{ -} - -tst_QGraphicsWidget::~tst_QGraphicsWidget() -{ -} - -void tst_QGraphicsWidget::init() -{ -} - -void tst_QGraphicsWidget::cleanup() -{ -} - -void tst_QGraphicsWidget::move() -{ - QGraphicsScene scene; - QGraphicsWidget *widget = new QGraphicsWidget(); - scene.addItem(widget); - QGraphicsView view(&scene); - view.show(); - QBENCHMARK { - // truncate the random values to 24 bits to - // avoid overflowing - widget->setPos(QRandomGenerator::global()->generate() & 0xffffff, QRandomGenerator::global()->generate() & 0xffffff); - } -} - -QTEST_MAIN(tst_QGraphicsWidget) -#include "tst_qgraphicswidget.moc" |