diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3159722c543f7c58d882ba6f9f19b489847e9fb8..ae9604a1372ac285c10c7a8392fa64304da802e3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,6 +5,9 @@ project(Vivy VERSION 0.1 LANGUAGES CXX)
 cmake_policy(SET CMP0100 NEW) # Let cmake use moc and uic for .hh files
 cmake_policy(SET CMP0009 NEW) # Do not follow symlinks with GLOB_RECURSE
 
+# Pass -fPIC
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
 # For Qt
 set(CMAKE_AUTOUIC ON)
 set(CMAKE_AUTOMOC ON)
@@ -62,6 +65,7 @@ target_precompile_headers(Vivy PRIVATE
     # STL headers
     <memory>
     <vector>
+    <atomic>
 
     # Qt headers
     <QString>
@@ -96,20 +100,32 @@ target_compile_options(Vivy PRIVATE
     -Wmisleading-indentation -Wnull-dereference -Wdouble-promotion
     -Wformat=2
     -Woverloaded-virtual -Wnon-virtual-dtor
+    -Wignored-qualifiers
+
+    -fopenmp
 )
 
+target_link_libraries(Vivy PRIVATE -fopenmp)
+
 # Some compiler specific warnings and options
 if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
     target_compile_options(Vivy PRIVATE
-        -Wno-unused-private-field   # Skip the unused private fields for now
-        -fopenmp                    # We do OpenMP here
+        -Weverything
+
+        # Disable some things because we want C++20 and don't constrol some Qt
+        # generated files...
+        -Wno-c++98-compat -Wno-c++98-c++11-c++14-c++17-compat-pedantic
+        -Wno-extra-semi-stmt
+        -Wno-redundant-parens
+        -Wno-padded
+        -Wno-global-constructors
+        -Wno-exit-time-destructors
     )
     target_link_libraries(Vivy PRIVATE
         -fopenmp
     )
 elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
     target_compile_options(Vivy PRIVATE -fopenmp)
-    target_link_libraries(Vivy PRIVATE -fopenmp)
 endif()
 
 set_target_properties(Vivy PROPERTIES
diff --git a/README.md b/README.md
index e4a74754eb1a08f03bdb876755146a853b5e4f78..7f1ab8e160f13557401474e31427e293fef1d57e 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
 
 Simply use cmake to build in another folder of the source folder:
 ```
-cmake -Bbuild -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_COMPILER=clang
+cmake -Bbuild -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
 ```
 
 If you want to use the `compile_commands.json`, use the
diff --git a/src/Lib/Ass/AssFactory.cc b/src/Lib/Ass/AssFactory.cc
index 06bd5db2f487e370ad6d301cd98e96b59fbfae75..a8768767f6b4e9e3cb5b0a68e354be62ffdc0131 100644
--- a/src/Lib/Ass/AssFactory.cc
+++ b/src/Lib/Ass/AssFactory.cc
@@ -89,7 +89,7 @@ AssFactory::checkValidity() const noexcept
     const SectionContent::const_iterator end = assInfo.end();
     while (it != end) {
         bool ok = false;
-        if (intTypeFields.contains(it.key()) && (it.value().toInt(&ok), !ok)) {
+        if (intTypeFields.contains(it.key()) && (static_cast<void>(it.value().toInt(&ok)), !ok)) {
             qCritical() << it.key() << "is not an integer:" << it.value();
             return false;
         }
diff --git a/src/Lib/Ass/Line.cc b/src/Lib/Ass/Line.cc
index 7fabdbace9fdd01450f41f49c1f295b91ff5e88b..c509af7449227b27421f446ed348c3c23121474d 100644
--- a/src/Lib/Ass/Line.cc
+++ b/src/Lib/Ass/Line.cc
@@ -24,8 +24,8 @@ Line::Line(AssFactory *const factory, const QString &lineString)
         // NOTE: time is of the form: `h:mm:ss.cc`
     };
 
-    static const QString lineHeader = "Dialogue: ";
-    isComment                       = !lineString.startsWith(lineHeader);
+    const QString lineHeader = QStringLiteral("Dialogue: ");
+    isComment                = !lineString.startsWith(lineHeader);
 
     const QString lineContent = lineString.mid(lineString.indexOf(": ") + 2 /* strlen ": " */);
     QStringList contentList   = lineContent.split(",", Qt::KeepEmptyParts, Qt::CaseInsensitive);
@@ -80,6 +80,7 @@ Line::initSylFromString(const QString &line) noexcept
         }
     } catch (const std::runtime_error &e) {
         qCritical() << "Failed to init syllabes with line:" << line;
+        qCritical() << "Error was:" << e.what();
         qCritical() << "Fallback to all line is one syllabe";
         once = false;
     }
diff --git a/src/Lib/Ass/Style.cc b/src/Lib/Ass/Style.cc
index 80d5eb3183194fbd54272dff550a3aa12f8648f0..4c2fd133bbfbb691d292047865a68dd0d9044eb4 100644
--- a/src/Lib/Ass/Style.cc
+++ b/src/Lib/Ass/Style.cc
@@ -45,7 +45,7 @@ Style::Style(const QString &styleString)
         PastLastCode
     };
 
-    static const QString lineHeader = "Style: ";
+    const QString lineHeader = QStringLiteral("Style: ");
 
     // Check line header and content items number
 
diff --git a/src/Lib/Audio.cc b/src/Lib/Audio.cc
index e0d7b4808b7be922ebbb34c5410cfd377716cd4c..d748fb533c4cb19e85741402bdfbb2686a816934 100644
--- a/src/Lib/Audio.cc
+++ b/src/Lib/Audio.cc
@@ -19,12 +19,12 @@ AudioContext::AudioContext(const QString &path)
     AVFormatContext *formatPtr          = format.get();
 
     // Get the format from the audio file
-    if (avformat_open_input(&formatPtr, filename, NULL, NULL) != 0) {
+    if (avformat_open_input(&formatPtr, filename, nullptr, nullptr) != 0) {
         [[maybe_unused]] void *relatedOnFailure = format.release(); // freed by avformat_open_input
         throw std::runtime_error("failed to open file");
     }
 
-    if (avformat_find_stream_info(formatPtr, NULL) < 0) {
+    if (avformat_find_stream_info(formatPtr, nullptr) < 0) {
         throw std::runtime_error("failed to get audio stream info");
     }
 
@@ -106,14 +106,14 @@ AudioContext::getProperties() const noexcept
 // AudioContext::Stream class implementation
 
 // Constructor, need an AVFormat and an AVStream
-AudioContext::Stream::Stream(AVCodec *streamCodec, AVFormatContext *format, AVStream *stream,
+AudioContext::Stream::Stream(AVCodec *streamCodec, AVFormatContext *formatPtr, AVStream *stream,
                              int index)
     : codecId(stream->codecpar->codec_id)
     , codec(streamCodec)
     , codecParams(stream->codecpar)
     , audioStream(stream)
     , streamIndexInAudioContext(index)
-    , dataFormat(format)
+    , dataFormat(formatPtr)
 {
     if (codec == nullptr)
         throw std::runtime_error("failed to find a decoder for stream");
diff --git a/src/UI/AboutWindow.cc b/src/UI/AboutWindow.cc
new file mode 100644
index 0000000000000000000000000000000000000000..42ba502a816994dab1408f52c83d6e5638944622
--- /dev/null
+++ b/src/UI/AboutWindow.cc
@@ -0,0 +1,128 @@
+#include "AboutWindow.hh"
+
+#include <QCloseEvent>
+#include <QLabel>
+#include <QPushButton>
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+#include <QEvent>
+#include <QMouseEvent>
+#include <QApplication>
+#include <QTextEdit>
+
+using namespace Vivy;
+
+// See https://doc.qt.io/qt-5/richtext-html-subset.html for the supported
+// rich text subset.
+
+static const char *aboutContent =
+    "<body>"
+    "  <p>Vivy is a replacement for Aegisub, writen in Qt5+and with less segfaults - hopefully.</p>"
+    "</body>";
+
+static const char *libContent =
+    "<body>"
+    "  <p>Here are the libraries that where used to create the software:</p>"
+    "  <ul>"
+    "    <li><a href=https://doc.qt.io/qt-5/index.html>Qt5</a> &copy; <i>2018 The Qt Company Ltd. and other contributors. (LGPL-V3)</i></li>"
+    "    <li><a href=https://www.lua.org>Lua 5.4</a> &copy; <i>1994–2021 Lua.org, PUC-Rio. (MIT)</i></li>"
+    "    <li><a href=https://libav.org>Libav</a> &copy; <i>Libav contributors. (LGPL-V2.1+)</i></li>"
+    "  </ul>"
+    "  <p>Other external dependencies where used:</p>"
+    "  <ul>"
+    "    <li><a href=https://github.com/tonsky/FiraCode>FiraCode</a> &copy; <i>Nikita Prokopov. (OFL-1.1)</i></li>"
+    "    <li><a href=https://fonts.google.com/specimen/Noto+Sans>NotoSans</a> &copy; <i>Google. (APACHE-2.0)</i>"
+    "    <li><a href=https://github.com/KDE/breeze-icons>The breeze icon theme</a> &copy; <i>The KDE Visual Design Group. (LGPL-V3)</i></li>"
+    "    <li><a href=https://github.com/ColinDuquesnoy/QDarkStyleSheet>QDarkStyleSheet</a> &copy; <i>Colin Duquesnoy, Daniel Cosmo Pizetta. (MIT + CCAI-4.0)</i></li>"
+    "  </ul>"
+    "</body>";
+
+// Simple QLabel with some presets
+class SimpleLabel final : public QLabel {
+public:
+    explicit SimpleLabel(QWidget *parent, const char *text)
+        : QLabel(parent)
+    {
+        setTextFormat(Qt::RichText);
+        setTextInteractionFlags(Qt::NoTextInteraction | Qt::LinksAccessibleByMouse |
+                                Qt::LinksAccessibleByKeyboard);
+        setText(text);
+        setAlignment(Qt::AlignJustify | Qt::AlignTop);
+    }
+};
+
+// Simple QLabel for licences
+class LicenceLabel final : public QTextEdit {
+public:
+    explicit LicenceLabel(QWidget *parent, const QString &url, const Qt::TextFormat format)
+        : QTextEdit(parent)
+    {
+        QFile content(url);
+        if (!content.open(QIODevice::ReadOnly | QIODevice::Text))
+            throw std::runtime_error("Failed to open file that should be accessible");
+
+        setTextInteractionFlags(Qt::NoTextInteraction);
+        setAlignment(Qt::AlignJustify | Qt::AlignTop);
+        setAcceptRichText(true);
+        setReadOnly(true);
+        setAutoFormatting(QTextEdit::AutoAll);
+
+        setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+        setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+        setFont(vivyApp->getApplicationFont(VivyApplication::Font::Monospace));
+        setFrameStyle(QFrame::NoFrame);
+
+        switch (format) {
+        case Qt::PlainText:
+        case Qt::RichText:
+            setText(content.readAll());
+            break;
+
+        case Qt::MarkdownText:
+            setMarkdown(content.readAll());
+            break;
+
+        case Qt::AutoText:
+            qCritical() << "Invalid text format for LicenceLabel" << format;
+        }
+    }
+};
+
+// Construct the AboutWindow
+AboutWindow::AboutWindow(QWidget *parent) noexcept
+    : QMainWindow(parent, Qt::Dialog)
+    , panels(new QTabWidget)
+{
+    setWindowIcon(QIcon(VIVY_ICON_APP));
+    setWindowTitle("Vivy - About");
+
+    panels->setMovable(false);
+    panels->setTabsClosable(false);
+    panels->setElideMode(Qt::ElideRight);
+    panels->setUsesScrollButtons(true);
+    panels->setDocumentMode(false);
+
+    panels->addTab(new SimpleLabel(panels, aboutContent), "About");
+    panels->addTab(new SimpleLabel(panels, libContent), "Libraries");
+
+    QTabWidget *licences = new QTabWidget(panels);
+    licences->setTabPosition(QTabWidget::TabPosition::West);
+    licences->addTab(new LicenceLabel(licences, ":licence/MIT", Qt::MarkdownText), "MIT");
+    licences->addTab(new LicenceLabel(licences, ":licence/LGPL-V2.0", Qt::PlainText), "LGPL-V2.0");
+    licences->addTab(new LicenceLabel(licences, ":licence/LGPL-V2.1", Qt::PlainText), "LGPL-V2.1");
+    licences->addTab(new LicenceLabel(licences, ":licence/LGPL-V3", Qt::PlainText), "LGPL-V3");
+    licences->addTab(new LicenceLabel(licences, ":licence/OFL-1.1", Qt::MarkdownText), "OFL-1.1");
+    licences->addTab(new LicenceLabel(licences, ":licence/CCAI-4.0", Qt::MarkdownText), "CCAI-4.0");
+    panels->addTab(licences, "Licences");
+
+    setCentralWidget(panels);
+    setMinimumWidth(800);
+    setMinimumHeight(600);
+}
+
+void
+AboutWindow::closeEvent(QCloseEvent *event) noexcept
+{
+    emit closed();
+    event->accept();
+}
diff --git a/src/UI/AboutWindow.hh b/src/UI/AboutWindow.hh
new file mode 100644
index 0000000000000000000000000000000000000000..7e498a771e104ae7e7d292110bf21380a8ec2129
--- /dev/null
+++ b/src/UI/AboutWindow.hh
@@ -0,0 +1,28 @@
+#pragma once
+
+#ifndef __cplusplus
+#error "This is a C++ header"
+#endif
+
+#include <QMainWindow>
+#include <QTabWidget>
+#include <QLabel>
+
+namespace Vivy
+{
+class AboutWindow final : public QMainWindow {
+    Q_OBJECT
+
+    QTabWidget *panels;
+
+public:
+    explicit AboutWindow(QWidget *parent) noexcept;
+    ~AboutWindow() noexcept = default;
+
+signals:
+    void closed();
+
+private:
+    void closeEvent(QCloseEvent *bar) noexcept override;
+};
+}
diff --git a/src/UI/AbstractDocumentView.cc b/src/UI/AbstractDocumentView.cc
index e4b1d3867c0424f2fa5ac98773fd87ea35c49e7c..153948d60fca0546681b3ca445823b50b883a355 100644
--- a/src/UI/AbstractDocumentView.cc
+++ b/src/UI/AbstractDocumentView.cc
@@ -27,9 +27,9 @@ void
 AbstractDocumentView::deleteAllContent() noexcept
 {
     // Delete all widgets
-    if (layout() != NULL) {
+    if (layout() != nullptr) {
         QLayoutItem *item;
-        while ((item = layout()->takeAt(0)) != NULL) {
+        while ((item = layout()->takeAt(0)) != nullptr) {
             delete item->widget();
             delete item;
         }
diff --git a/src/UI/DialogHelp.cc b/src/UI/DialogHelp.cc
deleted file mode 100644
index bd0abab31efb949dabe7df5a357e9eedb98b9953..0000000000000000000000000000000000000000
--- a/src/UI/DialogHelp.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-#include "DialogHelp.hh"
-#include "../VivyApplication.hh"
-
-#include <QWidget>
-#include <QLabel>
-#include <QDialog>
-#include <QPixmap>
-
-using namespace Vivy;
-
-// See https://doc.qt.io/qt-5/richtext-html-subset.html for the supported
-// rich text subset.
-static const char *aboutContentHeader =
-    "<body>"
-    "<h1>About Vivy</h1>"
-    "<p>Vivy is a replacement for Aegisub, writen in Qt5+and with less segfaults - hopefully.</p>"
-    "<p>The following libraries where used:</p>"
-    "<ul>"
-    "  <li>Qt5</li>"
-    "  <li>libavutils</li>"
-    "  <li>libavcodec</li>"
-    "  <li>libavformat</li>"
-    "</ul>";
-static const char *aboutContentFooter = "</body>";
-
-DialogHelp::DialogHelp(QWidget *parent) noexcept
-    : QMessageBox(parent)
-{
-    setWindowTitle("Vivy - Help");
-    setWindowFlags(Qt::Dialog);
-    setWindowModality(Qt::WindowModal);
-    QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-    setSizePolicy(sizePolicy);
-
-    setTextFormat(Qt::RichText);
-    setText(getAboutContent());
-    setTextInteractionFlags(Qt::NoTextInteraction);
-
-    adjustSize();
-}
-
-QString
-DialogHelp::getAboutContent() const noexcept
-{
-    QString ret;
-    ret = aboutContentHeader;
-
-    ret.append("<p>Vivy will handle the following most of the video and audio formats.");
-    ret.append("The audio formats are: " + Utils::audioFileSuffix.join(", "));
-    ret.append("The video formats are: " + Utils::videoFileSuffix.join(", ") + "</p>");
-
-    ret.append(aboutContentFooter);
-    return ret;
-}
diff --git a/src/UI/DialogHelp.hh b/src/UI/DialogHelp.hh
deleted file mode 100644
index 0bb5d9e09810ba60765cc462ae16237ccca8814e..0000000000000000000000000000000000000000
--- a/src/UI/DialogHelp.hh
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef VIVY_DIALOGHELP_H
-#define VIVY_DIALOGHELP_H
-
-#ifndef __cplusplus
-#error "This is a C++ header"
-#endif
-
-#include <QMessageBox>
-#include <QWidget>
-
-namespace Vivy
-{
-class DialogHelp final : public QMessageBox {
-    Q_OBJECT
-
-public:
-    explicit DialogHelp(QWidget *parent = nullptr) noexcept;
-    ~DialogHelp() noexcept = default;
-
-private:
-    QString getAboutContent() const noexcept;
-};
-
-}
-
-#endif // VIVY_DIALOGHELP_H
diff --git a/src/UI/DocumentViews/AssLinesView.cc b/src/UI/DocumentViews/AssLinesView.cc
index a29245be8ae0b58d1a78a0fb285f73df24bd0751..a203ce5a1b433c042a9f5f6d904972dccab4f53a 100644
--- a/src/UI/DocumentViews/AssLinesView.cc
+++ b/src/UI/DocumentViews/AssLinesView.cc
@@ -1,5 +1,6 @@
 #include "AssLinesView.hh"
 #include "../../VivyApplication.hh"
+#include <string_view>
 #include <QPaintEvent>
 #include <QHeaderView>
 
@@ -9,13 +10,6 @@ AssLinesView::AssLinesView(QAbstractItemModel *model, QWidget *parent) noexcept
     : QTableView(parent)
     , delegate(new Delegate(this))
 {
-    // Force the 9pt font size for now
-    {
-        QFont f = font();
-        f.setPointSize(9);
-        setFont(f);
-    }
-
     setMouseTracking(true);
     setItemDelegate(delegate);
     connect(this, &AssLinesView::hoverIndexChanged, delegate,
@@ -30,31 +24,7 @@ AssLinesView::AssLinesView(QAbstractItemModel *model, QWidget *parent) noexcept
     setSelectionBehavior(QAbstractItemView::SelectRows);
     setShowGrid(false);
 
-    // Also set the 9pt font size for the headers
-    {
-        QFont f = horizontalHeader()->font();
-        f.setPointSize(9);
-        horizontalHeader()->setFont(f);
-        verticalHeader()->setFont(f);
-    }
-
-    static const QString style = "QTableView::item:selected {"
-                                 "  border-top:1px solid #1394B4;"
-                                 "  border-bottom:1px solid #1394B4;"
-                                 "  border-right:1px solid #1394B4;"
-                                 "  border-left:1px solid #1394B4;"
-                                 "  background-color: #002B36;"
-                                 "}"
-                                 "QTableView::item {"
-                                 "  border: 1px solid #474747;"
-                                 "};"
-                                 "QTableView::item:last:selected {"
-                                 "  border-top:1px solid #1394B4;"
-                                 "  border-bottom:1px solid #1394B4;"
-                                 "  border-right:1px solid #1394B4;"
-                                 "  border-left:1px solid #1394B4;"
-                                 "  background-color: #002B36;"
-                                 "}";
+    const QString style = QStringLiteral("font-family: \"FiraCode\"; font-size: 8pt;");
     setStyleSheet(style);
     setModel(model);
 }
diff --git a/src/UI/DocumentViews/AudioVisualizer.cc b/src/UI/DocumentViews/AudioVisualizer.cc
index fa8d02c1314b267a7ffb04687bb6c56070372e5c..60a6279bde639662a6351f6211bd39504db4d3ac 100644
--- a/src/UI/DocumentViews/AudioVisualizer.cc
+++ b/src/UI/DocumentViews/AudioVisualizer.cc
@@ -63,7 +63,7 @@ AudioVisualizer::AudioVisualizer(AudioContext::StreamPtr stream, QWidget *parent
             const float re     = chunkData[j * 2 + 1];
             const float mag    = sqrtf(im * im + re * re);
             const size_t index = static_cast<size_t>(j * static_cast<ulong>(width) + x);
-            pixels[index]      = (unsigned char)(mag)*MAXPIXVALUE;
+            pixels[index]      = static_cast<unsigned char>((mag)*MAXPIXVALUE);
         }
     }
 
diff --git a/src/UI/DocumentViews/TimingScene.hh b/src/UI/DocumentViews/TimingScene.hh
index 901de0fa63c48079797dd50018e5ce51cf85e018..fba8958f33ab0587d326ccac30847254ef5d7255 100644
--- a/src/UI/DocumentViews/TimingScene.hh
+++ b/src/UI/DocumentViews/TimingScene.hh
@@ -38,7 +38,6 @@ private:
 
 public:
     QGraphicsPixmapItem *bg() noexcept;
-
     void mousePressEvent(QGraphicsSceneMouseEvent *event) noexcept override;
 
 private:
diff --git a/src/UI/DocumentViews/TimingView.cc b/src/UI/DocumentViews/TimingView.cc
index 9614cf18ae6008657248d5e89a91c4c84a348d2e..ef12fef40af4cd8a1534d9da2d6a9d4c049263fb 100644
--- a/src/UI/DocumentViews/TimingView.cc
+++ b/src/UI/DocumentViews/TimingView.cc
@@ -13,8 +13,6 @@
 #include <QVBoxLayout>
 #include <QtGlobal>
 
-#define TO_ADD_TO_IMAGE_HEIGHT 2 /* Used for alignement */
-
 using namespace Vivy;
 
 TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcept
@@ -22,14 +20,24 @@ TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcep
 {
     scene = new TimingScene(img, soundLength, this);
     setFixedHeight(img.height());
-    setMaximumHeight(img.height() + horizontalScrollBar()->height() - TO_ADD_TO_IMAGE_HEIGHT);
+    setMaximumHeight(img.height() + horizontalScrollBar()->height());
     setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
     setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+    setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum);
     QObject::connect(verticalScrollBar(), &QScrollBar::rangeChanged, this,
                      &TimingView::moveScrollBarToBottom);
+    verticalScrollBar()->setValue(verticalScrollBar()->maximum());
+    horizontalScrollBar()->setValue(horizontalScrollBar()->minimum());
     setScene(scene);
 }
 
+void
+TimingView::wheelEvent(QWheelEvent *event) noexcept
+{
+    horizontalScrollBar()->setValue(horizontalScrollBar()->value() +
+                                    event->angleDelta().y() * wheelAngleToScrollRatio);
+}
+
 void
 TimingView::mousePressEvent(QMouseEvent *event) noexcept
 {
diff --git a/src/UI/DocumentViews/TimingView.hh b/src/UI/DocumentViews/TimingView.hh
index ff5319fe5a19f4892d796b31cf827723adbab7fa..5b0fc0e03971d36de6aa48a578997d330a8d563e 100644
--- a/src/UI/DocumentViews/TimingView.hh
+++ b/src/UI/DocumentViews/TimingView.hh
@@ -19,6 +19,8 @@ namespace Vivy
 class TimingView final : public QGraphicsView {
     Q_OBJECT
 
+    static inline constexpr int wheelAngleToScrollRatio = 5;
+
 public:
     static inline constexpr QColor startColour = QColor(127, 0, 127);
     static inline constexpr QColor endColour   = QColor(0, 127, 0);
@@ -26,11 +28,13 @@ public:
     explicit TimingView(QImage, quint64, QWidget * = nullptr) noexcept;
     ~TimingView() noexcept = default;
 
+    void wheelEvent(QWheelEvent *) noexcept override;
+
 private:
     TimingScene *scene{ nullptr };
 
 public slots:
-    void mousePressEvent(QMouseEvent *event) noexcept;
+    void mousePressEvent(QMouseEvent *event) noexcept override;
     void moveScrollBarToBottom(int, int) noexcept;
 };
 
diff --git a/src/UI/MainWindow.cc b/src/UI/MainWindow.cc
index a362c375b6364c810f0530debb0d414d8ab2efde..89ae4396c621fd450ad4de52bf1291a5667e5aec 100644
--- a/src/UI/MainWindow.cc
+++ b/src/UI/MainWindow.cc
@@ -1,15 +1,19 @@
 #include "MainWindow.hh"
-#include "DialogHelp.hh"
 #include "PropertyModel.hh"
 #include "VivyDocumentView.hh"
+#include "AboutWindow.hh"
+#include "VivyFileIconProvider.hh"
 #include "../Lib/Utils.hh"
 #include "../VivyApplication.hh"
 
+#include <mutex>
 #include <algorithm>
 #include <functional>
 #include <QWindow>
 #include <optional>
 #include <QTreeView>
+#include <QPushButton>
+#include <QDialogButtonBox>
 #include <QFileInfo>
 #include <QStandardPaths>
 #include <QPixmap>
@@ -21,32 +25,30 @@
 #include <QImage>
 #include <QToolBar>
 #include <QTabWidget>
+#include <QEventLoop>
 
 #define DCL_MENU(menu, name) [[maybe_unused]] QMenu *menu##Menu = menuBar()->addMenu(name);
 
-#define DCL_TOOLBAR(method, name)                                                                  \
-    [[maybe_unused]] QToolBar *method##ToolBar = new QToolBar(tr(name), this);                     \
-    addToolBar(method##ToolBar);
-
 #define DCL_ACTION(method, name, tip, menu)                                                        \
     [[maybe_unused]] QAction *method##Act = new QAction(tr(name), this);                           \
     method##Act->setStatusTip(tr(tip));                                                            \
     menu##Menu->addAction(method##Act);                                                            \
     connect(method##Act, &QAction::triggered, this, &MainWindow::method);
 
-#define TOOLBAR_ADD_ACTION(toolbar, action) toolbar##ToolBar->addAction(action##Act);
-
-#define ACTION_ADD_ICON(action, icon) action##Act->setIcon(QIcon::fromTheme(icon));
+#define ACTION_ADD_ICON(action, icon) action##Act->setIcon(QIcon(icon));
 
 #define ACTION_ADD_SHORTCUT(action, shortcut) action##Act->setShortcut(shortcut);
 
 using namespace Vivy;
 
-MainWindow::MainWindow(QWidget *parent) noexcept
-    : QMainWindow(parent)
+MainWindow::MainWindow() noexcept
+    : QMainWindow()
 {
-    // Setup the main window other properties
-    setWindowIcon(QIcon(":/icons/vivy.png"));
+    setWindowIcon(QIcon(VIVY_ICON_APP));
+    setWindowTitle("Vivy");
+    setDocumentMode(true);
+    setDockNestingEnabled(true);
+    setTabShape(QTabWidget::Rounded);
 
     /* Some declarations */
     DCL_MENU(file, "&File");
@@ -55,8 +57,6 @@ MainWindow::MainWindow(QWidget *parent) noexcept
     viewMenu = viewTmpMenu; // Save the view menu
     DCL_MENU(simulate, "&Simulate");
     DCL_MENU(help, "&Help");
-    DCL_TOOLBAR(file, "File");
-    DCL_TOOLBAR(other, "Other");
 
     DCL_ACTION(newDocument, "&New document", "Create a new document", file);
     DCL_ACTION(openDocument, "&Open document", "Open a document", file);
@@ -69,22 +69,16 @@ MainWindow::MainWindow(QWidget *parent) noexcept
 
     DCL_ACTION(openDialogHelp, "&About", "Open the help dialog", help);
 
-    ACTION_ADD_ICON(newDocument, "document-new");
-    ACTION_ADD_ICON(openDocument, "document-open");
-    ACTION_ADD_ICON(saveFile, "document-save");
-    ACTION_ADD_ICON(saveFileAs, "document-save-as");
-    ACTION_ADD_ICON(openDialogHelp, "help-about");
+    ACTION_ADD_ICON(newDocument, VIVY_ICON_NEW);
+    ACTION_ADD_ICON(openDocument, VIVY_ICON_OPEN);
+    ACTION_ADD_ICON(saveFile, VIVY_ICON_SAVE);
+    ACTION_ADD_ICON(saveFileAs, VIVY_ICON_SAVE_AS);
+    ACTION_ADD_ICON(openDialogHelp, VIVY_ICON_ABOUT);
 
     ACTION_ADD_SHORTCUT(newDocument, QKeySequence::New);
     ACTION_ADD_SHORTCUT(openDocument, QKeySequence::Open);
     ACTION_ADD_SHORTCUT(saveFile, QKeySequence::Save);
 
-    TOOLBAR_ADD_ACTION(file, newDocument);
-    TOOLBAR_ADD_ACTION(file, openDocument);
-    TOOLBAR_ADD_ACTION(file, saveFile);
-    TOOLBAR_ADD_ACTION(file, saveFileAs);
-    TOOLBAR_ADD_ACTION(other, openDialogHelp);
-
     // Setup the tabs to display the documents
     documents = new QTabWidget(this);
     documents->setMovable(true);
@@ -144,6 +138,10 @@ MainWindow::MainWindow(QWidget *parent) noexcept
 
     // Main window has finished its construction
     statusBar()->showMessage("QSimulate has started");
+
+    // Minimal size...
+    setMinimumHeight(400);
+    setMinimumWidth(600);
 }
 
 void
@@ -163,8 +161,16 @@ MainWindow::openProperties(int index) noexcept
 void
 MainWindow::openDialogHelp() noexcept
 {
-    std::unique_ptr<DialogHelp> help_holder = std::make_unique<DialogHelp>(this);
-    help_holder->exec();
+    if (aboutWindowMutex.try_lock() && aboutWindow == nullptr) {
+        aboutWindow = new AboutWindow(this);
+        QEventLoop loop;
+        connect(aboutWindow, &AboutWindow::closed, &loop, &QEventLoop::quit);
+        aboutWindow->show();
+        loop.exec();
+        delete aboutWindow;
+        aboutWindow = nullptr;
+        aboutWindowMutex.unlock();
+    }
 }
 
 AbstractDocument *
@@ -173,7 +179,7 @@ MainWindow::getCurrentDocument() const noexcept
     try {
         return getCurrentDocumentView()->getDocument();
     } catch (const std::runtime_error &e) {
-        qCritical() << "No current view in the main window";
+        qCritical() << "No current view in the main window:" << e.what();
         return nullptr;
     }
 }
@@ -228,7 +234,7 @@ MainWindow::newDocument() noexcept
     try {
         addTab(new VivyDocumentView(document));
     } catch (const std::runtime_error &e) {
-        qCritical() << "Failed to create a new empty document";
+        qCritical() << "Failed to create a new empty document:" << e.what();
         vivyApp->documentStore.closeDocument(document->getUuid());
     }
 }
@@ -236,7 +242,30 @@ MainWindow::newDocument() noexcept
 void
 MainWindow::openDocument() noexcept
 {
-    QString filename = QFileDialog::getOpenFileName(this, "Select a file");
+    QFileDialog dialog(this, "Select a file");
+    bool dialogAccepted = false;
+    std::unique_ptr<VivyFileIconProvider> iconProvider(new VivyFileIconProvider());
+    dialog.setOption(QFileDialog::DontUseNativeDialog);
+    dialog.setOption(QFileDialog::ReadOnly);
+    dialog.setIconProvider(iconProvider.get());
+    dialog.setFileMode(QFileDialog::ExistingFile);
+    connect(&dialog, &QFileDialog::accepted, this,
+            [&dialogAccepted]() noexcept -> void { dialogAccepted = true; });
+    dialog.exec();
+
+    if (!dialogAccepted) {
+        qDebug() << "No file accepted";
+        return;
+    }
+
+    const QStringList resList = dialog.selectedFiles();
+    if (resList.size() != 1) {
+        qCritical() << "You must select only one file";
+        return;
+    }
+
+    const QString filename = resList.at(0);
+
     if (filename.isEmpty()) {
         qWarning() << "Found an empty filename, don't open a file";
         return;
@@ -250,7 +279,7 @@ MainWindow::openDocument() noexcept
         addTab(new VivyDocumentView(document));
     } catch (const std::runtime_error &e) {
         qCritical() << "Failed to create the document view for" << QFileInfo(filename).baseName()
-                    << "with path" << filename;
+                    << "with path" << filename << "and error:" << e.what();
         vivyApp->documentStore.closeDocument(document->getUuid());
     }
 }
diff --git a/src/UI/MainWindow.hh b/src/UI/MainWindow.hh
index d42f057cb204720379445e45bc78bae675243f07..24f65893017c58c00b52f56077dbadbe87c7cfbd 100644
--- a/src/UI/MainWindow.hh
+++ b/src/UI/MainWindow.hh
@@ -1,5 +1,4 @@
-#ifndef VIVY_MAINWINDOW_H
-#define VIVY_MAINWINDOW_H
+#pragma once
 
 #ifndef __cplusplus
 #error "This is a C++ header"
@@ -10,9 +9,11 @@
 #include "../Lib/Document/VivyDocumentStore.hh"
 #include "DocumentViews/AudioVisualizer.hh"
 #include "VivyDocumentView.hh"
-#include <QMainWindow>
+#include "AboutWindow.hh"
 #include <QMenu>
 #include <QFileDialog>
+#include <QMutex>
+#include <QMainWindow>
 
 namespace Vivy
 {
@@ -22,8 +23,11 @@ class MainWindow final : public QMainWindow {
     QTabWidget *documents{ nullptr };
     QMenu *viewMenu{ nullptr };
 
+    QMutex aboutWindowMutex{ QMutex::NonRecursive };
+    AboutWindow *aboutWindow{ nullptr };
+
 public:
-    explicit MainWindow(QWidget *parent = nullptr) noexcept;
+    explicit MainWindow() noexcept;
     ~MainWindow() noexcept = default;
 
     AbstractDocument *getCurrentDocument() const noexcept;
@@ -89,5 +93,3 @@ private slots:
 };
 
 }
-
-#endif // VIVY_MAINWINDOW_H
diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc
index d8af3d93b9cb0e32374f1f788c95411748153106..bd0a0416bdadb92a3e6d4ece9142394ad5a71b18 100644
--- a/src/UI/VivyDocumentView.cc
+++ b/src/UI/VivyDocumentView.cc
@@ -116,10 +116,11 @@ VivyDocumentView::loadAudioView() noexcept
             return;
         }
 
-        visualizer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
+        visualizer->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum);
         visualizer->setWidget(visualizerInner);
         visualizer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea);
         visualizer->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);
+        visualizer->layout()->setAlignment(visualizerInner, Qt::AlignTop);
         addDockWidget(Qt::LeftDockWidgetArea, visualizer, Qt::Horizontal);
     }
 
@@ -145,7 +146,7 @@ VivyDocumentView::closeDocument() noexcept
 QIcon
 VivyDocumentView::getDocumentTabIcon() const noexcept
 {
-    return QIcon(":/icons/vivy.png");
+    return QIcon(VIVY_ICON_APP);
 }
 
 void
diff --git a/src/UI/VivyFileIconProvider.cc b/src/UI/VivyFileIconProvider.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0993d18f5af335c1f1483872e8ddeaddaec942ea
--- /dev/null
+++ b/src/UI/VivyFileIconProvider.cc
@@ -0,0 +1,18 @@
+#include "VivyFileIconProvider.hh"
+#include "../VivyApplication.hh"
+
+using namespace Vivy;
+
+QIcon
+VivyFileIconProvider::icon(const QFileInfo &info) const noexcept
+{
+    if (const auto name = info.fileName(); name.isEmpty() || name.isNull())
+        return defaultFile;
+    // TODO: For file detection use functions in Utils.hh
+    else if (info.isDir())
+        return defaultFolder;
+    else if (const auto suffix = info.suffix(); suffix == "vivy" || suffix == "ass")
+        return vivyFile;
+    else
+        return defaultFile;
+}
diff --git a/src/UI/VivyFileIconProvider.hh b/src/UI/VivyFileIconProvider.hh
new file mode 100644
index 0000000000000000000000000000000000000000..c220d5b25e6996196c9e19ad5aaad41f812be3f0
--- /dev/null
+++ b/src/UI/VivyFileIconProvider.hh
@@ -0,0 +1,27 @@
+#pragma once
+
+#ifndef __cplusplus
+#error "This is a C++ header"
+#endif
+
+#include "../Lib/Utils.hh"
+#include "../VivyApplication.hh"
+#include <QtGlobal>
+#include <QFileIconProvider>
+#include <QFileInfo>
+#include <QIcon>
+
+namespace Vivy
+{
+class VivyFileIconProvider : public QFileIconProvider {
+public:
+    VivyFileIconProvider() noexcept = default;
+
+    QIcon icon(const QFileInfo &) const noexcept override;
+
+private:
+    QIcon defaultFile{ VIVY_ICON_FILE };
+    QIcon vivyFile{ VIVY_ICON_APP };
+    QIcon defaultFolder{ VIVY_ICON_FOLDER };
+};
+}
diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc
index 0b08c8017def22582ac61c7f35115599721d9835..db7350047f6b4ae9e1e9e8b6050e71d873eac85e 100644
--- a/src/VivyApplication.cc
+++ b/src/VivyApplication.cc
@@ -1,9 +1,13 @@
 #include "VivyApplication.hh"
 #include "UI/MainWindow.hh"
 
+#include <QtGlobal>
+#include <QIcon>
+#include <QFontDatabase>
+
 using namespace Vivy;
 
-VivyApplication::VivyApplication(int argc, char **argv)
+VivyApplication::VivyApplication(int &argc, char **argv)
     : QApplication(argc, argv)
 {
 }
@@ -11,6 +15,25 @@ VivyApplication::VivyApplication(int argc, char **argv)
 int
 VivyApplication::exec() noexcept
 {
+    // Add fonts
+    fontIdMonospace  = QFontDatabase::addApplicationFont(":/fonts/FiraCode-Regular.ttf");
+    fontIdRegular    = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Regular.ttf");
+    fontIdItalic     = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Italic.ttf");
+    fontIdBold       = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Bold.ttf");
+    fontIdBoldItalic = QFontDatabase::addApplicationFont(":/fonts/NotoSans-BoldItalic.ttf");
+
+    // Setup some things
+    setAttribute(Qt::AA_DontShowIconsInMenus, false);
+    setAttribute(Qt::AA_DontShowShortcutsInContextMenus, false);
+    setFont(getApplicationFont(Font::Default));
+    QFile stylesheet(":qdarkstyle/dark/style.qss");
+    if (!stylesheet.exists()) {
+        qFatal("Missing stylesheet");
+    }
+    stylesheet.open(QFile::ReadOnly | QFile::Text);
+    QTextStream stylesheetStream(&stylesheet);
+    setStyleSheet(stylesheetStream.readAll());
+
     // Show the main window
     MainWindow mainWindow;
     mainWindow.show();
@@ -18,3 +41,27 @@ VivyApplication::exec() noexcept
     // Main loop
     return QApplication::exec();
 }
+
+QFont
+VivyApplication::getApplicationFont(Font id) const noexcept
+{
+    switch (id) {
+    case Font::Monospace:
+        return QFont(QFontDatabase::applicationFontFamilies(fontIdMonospace).at(0));
+
+    case Font::DefaultItalic:
+        return QFont(QFontDatabase::applicationFontFamilies(fontIdItalic).at(0));
+
+    case Font::DefaultBoldItalic:
+        return QFont(QFontDatabase::applicationFontFamilies(fontIdBoldItalic).at(0));
+
+    case Font::DefaultBold:
+        return QFont(QFontDatabase::applicationFontFamilies(fontIdBold).at(0));
+
+    case Font::Default:
+        return QFont(QFontDatabase::applicationFontFamilies(fontIdRegular).at(0));
+    }
+
+    // Let the program crash
+    qFatal("UNREACHABLE");
+}
diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh
index 579f9b78c273d7ba936d3e98b0960d702f529c66..5cc29c4040da1e7c14c011f30d5ee3d0ece4e97d 100644
--- a/src/VivyApplication.hh
+++ b/src/VivyApplication.hh
@@ -1,5 +1,4 @@
-#ifndef VIVY_APPLICATION_H
-#define VIVY_APPLICATION_H
+#pragma once
 
 #ifndef __cplusplus
 #error "This is a C++ header"
@@ -7,10 +6,26 @@
 
 #define vivyApp static_cast<VivyApplication *>(QApplication::instance())
 
+// Only support dark theme for now
+#define VIVY_ICON_APP     ":icons/vivy.png"
+#define VIVY_ICON_OPEN    ":icons/dark/document-open.svg"
+#define VIVY_ICON_NEW     ":icons/dark/document-new.svg"
+#define VIVY_ICON_SAVE    ":icons/dark/document-save.svg"
+#define VIVY_ICON_SAVE_AS ":icons/dark/document-save-as.svg"
+#define VIVY_ICON_ABOUT   ":icons/dark/help-about.svg"
+#define VIVY_ICON_FILE    ":icons/dark/text-x-generic.svg"
+#define VIVY_ICON_FOLDER  ":icons/dark/folder.svg"
+
 #include <QApplication>
 #include <QPixmap>
+#include <QFont>
+
+// Detect MacOS
+#if defined(Q_OS_DARWIN) || defined(Q_OS_MACOS)
+#define VIVY_MACOS
+#endif
+
 #include "Lib/Document/VivyDocumentStore.hh"
-#include <memory>
 
 namespace Vivy
 {
@@ -20,14 +35,28 @@ class VivyApplication : public QApplication {
 public:
     VivyDocumentStore documentStore{};
 
+    enum class Font {
+        Monospace,
+        Default,
+        DefaultItalic,
+        DefaultBold,
+        DefaultBoldItalic,
+    };
+
 private:
+    int fontIdMonospace;
+    int fontIdRegular;
+    int fontIdItalic;
+    int fontIdBold;
+    int fontIdBoldItalic;
+
 public:
-    VivyApplication(int argc, char **argv);
+    VivyApplication(int &argc, char **argv);
     ~VivyApplication() = default;
 
     int exec() noexcept;
+
+    QFont getApplicationFont(Font) const noexcept;
 };
 
 }
-
-#endif // VIVY_APPLICATION_H
diff --git a/utils/rsc/.gitignore b/utils/rsc/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..1944fd61e7c53bcc19e6f3eb94cc800508944a25
--- /dev/null
+++ b/utils/rsc/.gitignore
@@ -0,0 +1 @@
+*.tmp
diff --git a/utils/rsc/VivyRessources.qrc b/utils/rsc/VivyRessources.qrc
index e2537972622ee7ef55f90dc00ebb404009c0d001..0f6f69913c557afae767cb9ddda9c2726912ce01 100644
--- a/utils/rsc/VivyRessources.qrc
+++ b/utils/rsc/VivyRessources.qrc
@@ -1,5 +1,466 @@
 <!DOCTYPE RCC><RCC version="1.0">
 <qresource>
     <file>icons/vivy.png</file>
+
+    <!-- Fonts, FiraCode is OFL-1.1, NotoSans is APACHE-2.0 -->
+    <file>fonts/FiraCode-Regular.ttf</file>
+    <file>fonts/NotoSans-Bold.ttf</file>
+    <file>fonts/NotoSans-Italic.ttf</file>
+    <file>fonts/NotoSans-Regular.ttf</file>
+    <file>fonts/NotoSans-BoldItalic.ttf</file>
+
+    <!-- Licences -->
+    <file>licence/LGPL-V2.0</file>
+    <file>licence/LGPL-V2.1</file>
+    <file>licence/LGPL-V3</file>
+    <file>licence/OFL-1.1</file>
+    <file>licence/MIT</file>
+    <file>licence/CCAI-4.0</file>
+</qresource>
+
+<!-- Breeze icons, LGPL-3.0 Licence -->
+<qresource prefix="icons/dark">
+    <file alias="document-new.svg">icons/breeze-dark/document-new.svg</file>
+    <file alias="document-open.svg">icons/breeze-dark/document-open.svg</file>
+    <file alias="document-save.svg">icons/breeze-dark/document-save.svg</file>
+    <file alias="document-save-as.svg">icons/breeze-dark/document-save-as.svg</file>
+    <file alias="folder.svg">icons/breeze-dark/folder.svg</file>
+    <file alias="text-x-generic.svg">icons/breeze-dark/text-x-generic.svg</file>
+    <file alias="help-about.svg">icons/breeze-dark/help-about.svg</file>
+</qresource>
+<qresource prefix="icons/light">
+    <file alias="document-new.svg">icons/breeze-light/document-new.svg</file>
+    <file alias="document-open.svg">icons/breeze-light/document-open.svg</file>
+    <file alias="document-save.svg">icons/breeze-light/document-save.svg</file>
+    <file alias="document-save-as.svg">icons/breeze-light/document-save-as.svg</file>
+    <file alias="folder.svg">icons/breeze-light/folder.svg</file>
+    <file alias="text-x-generic.svg">icons/breeze-light/text-x-generic.svg</file>
+    <file alias="help-about.svg">icons/breeze-light/help-about.svg</file>
+</qresource>
+
+<!-- QDarkStyle style sheet, MIT Licence -->
+<qresource prefix="qdarkstyle/dark">  <file alias="style.qss">qdarkstyle_dark.qss</file>  </qresource>
+<qresource prefix="qdarkstyle/light"> <file alias="style.qss">qdarkstyle_light.qss</file> </qresource>
+
+<!-- QDarkStyle icon theme, MIT + CCAI-4.0 Licence -->
+<qresource prefix="qss_icons/dark">
+    <file>rc_dark/arrow_down.png</file>
+    <file>rc_dark/arrow_down@2x.png</file>
+    <file>rc_dark/arrow_down_disabled.png</file>
+    <file>rc_dark/arrow_down_disabled@2x.png</file>
+    <file>rc_dark/arrow_down_focus.png</file>
+    <file>rc_dark/arrow_down_focus@2x.png</file>
+    <file>rc_dark/arrow_down_pressed.png</file>
+    <file>rc_dark/arrow_down_pressed@2x.png</file>
+    <file>rc_dark/arrow_left.png</file>
+    <file>rc_dark/arrow_left@2x.png</file>
+    <file>rc_dark/arrow_left_disabled.png</file>
+    <file>rc_dark/arrow_left_disabled@2x.png</file>
+    <file>rc_dark/arrow_left_focus.png</file>
+    <file>rc_dark/arrow_left_focus@2x.png</file>
+    <file>rc_dark/arrow_left_pressed.png</file>
+    <file>rc_dark/arrow_left_pressed@2x.png</file>
+    <file>rc_dark/arrow_right.png</file>
+    <file>rc_dark/arrow_right@2x.png</file>
+    <file>rc_dark/arrow_right_disabled.png</file>
+    <file>rc_dark/arrow_right_disabled@2x.png</file>
+    <file>rc_dark/arrow_right_focus.png</file>
+    <file>rc_dark/arrow_right_focus@2x.png</file>
+    <file>rc_dark/arrow_right_pressed.png</file>
+    <file>rc_dark/arrow_right_pressed@2x.png</file>
+    <file>rc_dark/arrow_up.png</file>
+    <file>rc_dark/arrow_up@2x.png</file>
+    <file>rc_dark/arrow_up_disabled.png</file>
+    <file>rc_dark/arrow_up_disabled@2x.png</file>
+    <file>rc_dark/arrow_up_focus.png</file>
+    <file>rc_dark/arrow_up_focus@2x.png</file>
+    <file>rc_dark/arrow_up_pressed.png</file>
+    <file>rc_dark/arrow_up_pressed@2x.png</file>
+    <file>rc_dark/base_icon.png</file>
+    <file>rc_dark/base_icon@2x.png</file>
+    <file>rc_dark/base_icon_disabled.png</file>
+    <file>rc_dark/base_icon_disabled@2x.png</file>
+    <file>rc_dark/base_icon_focus.png</file>
+    <file>rc_dark/base_icon_focus@2x.png</file>
+    <file>rc_dark/base_icon_pressed.png</file>
+    <file>rc_dark/base_icon_pressed@2x.png</file>
+    <file>rc_dark/branch_closed.png</file>
+    <file>rc_dark/branch_closed@2x.png</file>
+    <file>rc_dark/branch_closed_disabled.png</file>
+    <file>rc_dark/branch_closed_disabled@2x.png</file>
+    <file>rc_dark/branch_closed_focus.png</file>
+    <file>rc_dark/branch_closed_focus@2x.png</file>
+    <file>rc_dark/branch_closed_pressed.png</file>
+    <file>rc_dark/branch_closed_pressed@2x.png</file>
+    <file>rc_dark/branch_end.png</file>
+    <file>rc_dark/branch_end@2x.png</file>
+    <file>rc_dark/branch_end_disabled.png</file>
+    <file>rc_dark/branch_end_disabled@2x.png</file>
+    <file>rc_dark/branch_end_focus.png</file>
+    <file>rc_dark/branch_end_focus@2x.png</file>
+    <file>rc_dark/branch_end_pressed.png</file>
+    <file>rc_dark/branch_end_pressed@2x.png</file>
+    <file>rc_dark/branch_line.png</file>
+    <file>rc_dark/branch_line@2x.png</file>
+    <file>rc_dark/branch_line_disabled.png</file>
+    <file>rc_dark/branch_line_disabled@2x.png</file>
+    <file>rc_dark/branch_line_focus.png</file>
+    <file>rc_dark/branch_line_focus@2x.png</file>
+    <file>rc_dark/branch_line_pressed.png</file>
+    <file>rc_dark/branch_line_pressed@2x.png</file>
+    <file>rc_dark/branch_more.png</file>
+    <file>rc_dark/branch_more@2x.png</file>
+    <file>rc_dark/branch_more_disabled.png</file>
+    <file>rc_dark/branch_more_disabled@2x.png</file>
+    <file>rc_dark/branch_more_focus.png</file>
+    <file>rc_dark/branch_more_focus@2x.png</file>
+    <file>rc_dark/branch_more_pressed.png</file>
+    <file>rc_dark/branch_more_pressed@2x.png</file>
+    <file>rc_dark/branch_open.png</file>
+    <file>rc_dark/branch_open@2x.png</file>
+    <file>rc_dark/branch_open_disabled.png</file>
+    <file>rc_dark/branch_open_disabled@2x.png</file>
+    <file>rc_dark/branch_open_focus.png</file>
+    <file>rc_dark/branch_open_focus@2x.png</file>
+    <file>rc_dark/branch_open_pressed.png</file>
+    <file>rc_dark/branch_open_pressed@2x.png</file>
+    <file>rc_dark/checkbox_checked.png</file>
+    <file>rc_dark/checkbox_checked@2x.png</file>
+    <file>rc_dark/checkbox_checked_disabled.png</file>
+    <file>rc_dark/checkbox_checked_disabled@2x.png</file>
+    <file>rc_dark/checkbox_checked_focus.png</file>
+    <file>rc_dark/checkbox_checked_focus@2x.png</file>
+    <file>rc_dark/checkbox_checked_pressed.png</file>
+    <file>rc_dark/checkbox_checked_pressed@2x.png</file>
+    <file>rc_dark/checkbox_indeterminate.png</file>
+    <file>rc_dark/checkbox_indeterminate@2x.png</file>
+    <file>rc_dark/checkbox_indeterminate_disabled.png</file>
+    <file>rc_dark/checkbox_indeterminate_disabled@2x.png</file>
+    <file>rc_dark/checkbox_indeterminate_focus.png</file>
+    <file>rc_dark/checkbox_indeterminate_focus@2x.png</file>
+    <file>rc_dark/checkbox_indeterminate_pressed.png</file>
+    <file>rc_dark/checkbox_indeterminate_pressed@2x.png</file>
+    <file>rc_dark/checkbox_unchecked.png</file>
+    <file>rc_dark/checkbox_unchecked@2x.png</file>
+    <file>rc_dark/checkbox_unchecked_disabled.png</file>
+    <file>rc_dark/checkbox_unchecked_disabled@2x.png</file>
+    <file>rc_dark/checkbox_unchecked_focus.png</file>
+    <file>rc_dark/checkbox_unchecked_focus@2x.png</file>
+    <file>rc_dark/checkbox_unchecked_pressed.png</file>
+    <file>rc_dark/checkbox_unchecked_pressed@2x.png</file>
+    <file>rc_dark/line_horizontal.png</file>
+    <file>rc_dark/line_horizontal@2x.png</file>
+    <file>rc_dark/line_horizontal_disabled.png</file>
+    <file>rc_dark/line_horizontal_disabled@2x.png</file>
+    <file>rc_dark/line_horizontal_focus.png</file>
+    <file>rc_dark/line_horizontal_focus@2x.png</file>
+    <file>rc_dark/line_horizontal_pressed.png</file>
+    <file>rc_dark/line_horizontal_pressed@2x.png</file>
+    <file>rc_dark/line_vertical.png</file>
+    <file>rc_dark/line_vertical@2x.png</file>
+    <file>rc_dark/line_vertical_disabled.png</file>
+    <file>rc_dark/line_vertical_disabled@2x.png</file>
+    <file>rc_dark/line_vertical_focus.png</file>
+    <file>rc_dark/line_vertical_focus@2x.png</file>
+    <file>rc_dark/line_vertical_pressed.png</file>
+    <file>rc_dark/line_vertical_pressed@2x.png</file>
+    <file>rc_dark/radio_checked.png</file>
+    <file>rc_dark/radio_checked@2x.png</file>
+    <file>rc_dark/radio_checked_disabled.png</file>
+    <file>rc_dark/radio_checked_disabled@2x.png</file>
+    <file>rc_dark/radio_checked_focus.png</file>
+    <file>rc_dark/radio_checked_focus@2x.png</file>
+    <file>rc_dark/radio_checked_pressed.png</file>
+    <file>rc_dark/radio_checked_pressed@2x.png</file>
+    <file>rc_dark/radio_unchecked.png</file>
+    <file>rc_dark/radio_unchecked@2x.png</file>
+    <file>rc_dark/radio_unchecked_disabled.png</file>
+    <file>rc_dark/radio_unchecked_disabled@2x.png</file>
+    <file>rc_dark/radio_unchecked_focus.png</file>
+    <file>rc_dark/radio_unchecked_focus@2x.png</file>
+    <file>rc_dark/radio_unchecked_pressed.png</file>
+    <file>rc_dark/radio_unchecked_pressed@2x.png</file>
+    <file>rc_dark/toolbar_move_horizontal.png</file>
+    <file>rc_dark/toolbar_move_horizontal@2x.png</file>
+    <file>rc_dark/toolbar_move_horizontal_disabled.png</file>
+    <file>rc_dark/toolbar_move_horizontal_disabled@2x.png</file>
+    <file>rc_dark/toolbar_move_horizontal_focus.png</file>
+    <file>rc_dark/toolbar_move_horizontal_focus@2x.png</file>
+    <file>rc_dark/toolbar_move_horizontal_pressed.png</file>
+    <file>rc_dark/toolbar_move_horizontal_pressed@2x.png</file>
+    <file>rc_dark/toolbar_move_vertical.png</file>
+    <file>rc_dark/toolbar_move_vertical@2x.png</file>
+    <file>rc_dark/toolbar_move_vertical_disabled.png</file>
+    <file>rc_dark/toolbar_move_vertical_disabled@2x.png</file>
+    <file>rc_dark/toolbar_move_vertical_focus.png</file>
+    <file>rc_dark/toolbar_move_vertical_focus@2x.png</file>
+    <file>rc_dark/toolbar_move_vertical_pressed.png</file>
+    <file>rc_dark/toolbar_move_vertical_pressed@2x.png</file>
+    <file>rc_dark/toolbar_separator_horizontal.png</file>
+    <file>rc_dark/toolbar_separator_horizontal@2x.png</file>
+    <file>rc_dark/toolbar_separator_horizontal_disabled.png</file>
+    <file>rc_dark/toolbar_separator_horizontal_disabled@2x.png</file>
+    <file>rc_dark/toolbar_separator_horizontal_focus.png</file>
+    <file>rc_dark/toolbar_separator_horizontal_focus@2x.png</file>
+    <file>rc_dark/toolbar_separator_horizontal_pressed.png</file>
+    <file>rc_dark/toolbar_separator_horizontal_pressed@2x.png</file>
+    <file>rc_dark/toolbar_separator_vertical.png</file>
+    <file>rc_dark/toolbar_separator_vertical@2x.png</file>
+    <file>rc_dark/toolbar_separator_vertical_disabled.png</file>
+    <file>rc_dark/toolbar_separator_vertical_disabled@2x.png</file>
+    <file>rc_dark/toolbar_separator_vertical_focus.png</file>
+    <file>rc_dark/toolbar_separator_vertical_focus@2x.png</file>
+    <file>rc_dark/toolbar_separator_vertical_pressed.png</file>
+    <file>rc_dark/toolbar_separator_vertical_pressed@2x.png</file>
+    <file>rc_dark/transparent.png</file>
+    <file>rc_dark/transparent@2x.png</file>
+    <file>rc_dark/transparent_disabled.png</file>
+    <file>rc_dark/transparent_disabled@2x.png</file>
+    <file>rc_dark/transparent_focus.png</file>
+    <file>rc_dark/transparent_focus@2x.png</file>
+    <file>rc_dark/transparent_pressed.png</file>
+    <file>rc_dark/transparent_pressed@2x.png</file>
+    <file>rc_dark/window_close.png</file>
+    <file>rc_dark/window_close@2x.png</file>
+    <file>rc_dark/window_close_disabled.png</file>
+    <file>rc_dark/window_close_disabled@2x.png</file>
+    <file>rc_dark/window_close_focus.png</file>
+    <file>rc_dark/window_close_focus@2x.png</file>
+    <file>rc_dark/window_close_pressed.png</file>
+    <file>rc_dark/window_close_pressed@2x.png</file>
+    <file>rc_dark/window_grip.png</file>
+    <file>rc_dark/window_grip@2x.png</file>
+    <file>rc_dark/window_grip_disabled.png</file>
+    <file>rc_dark/window_grip_disabled@2x.png</file>
+    <file>rc_dark/window_grip_focus.png</file>
+    <file>rc_dark/window_grip_focus@2x.png</file>
+    <file>rc_dark/window_grip_pressed.png</file>
+    <file>rc_dark/window_grip_pressed@2x.png</file>
+    <file>rc_dark/window_minimize.png</file>
+    <file>rc_dark/window_minimize@2x.png</file>
+    <file>rc_dark/window_minimize_disabled.png</file>
+    <file>rc_dark/window_minimize_disabled@2x.png</file>
+    <file>rc_dark/window_minimize_focus.png</file>
+    <file>rc_dark/window_minimize_focus@2x.png</file>
+    <file>rc_dark/window_minimize_pressed.png</file>
+    <file>rc_dark/window_minimize_pressed@2x.png</file>
+    <file>rc_dark/window_undock.png</file>
+    <file>rc_dark/window_undock@2x.png</file>
+    <file>rc_dark/window_undock_disabled.png</file>
+    <file>rc_dark/window_undock_disabled@2x.png</file>
+    <file>rc_dark/window_undock_focus.png</file>
+    <file>rc_dark/window_undock_focus@2x.png</file>
+    <file>rc_dark/window_undock_pressed.png</file>
+    <file>rc_dark/window_undock_pressed@2x.png</file>
+</qresource>
+<qresource prefix="qss_icons/light">
+    <file>rc_light/arrow_down.png</file>
+    <file>rc_light/arrow_down@2x.png</file>
+    <file>rc_light/arrow_down_disabled.png</file>
+    <file>rc_light/arrow_down_disabled@2x.png</file>
+    <file>rc_light/arrow_down_focus.png</file>
+    <file>rc_light/arrow_down_focus@2x.png</file>
+    <file>rc_light/arrow_down_pressed.png</file>
+    <file>rc_light/arrow_down_pressed@2x.png</file>
+    <file>rc_light/arrow_left.png</file>
+    <file>rc_light/arrow_left@2x.png</file>
+    <file>rc_light/arrow_left_disabled.png</file>
+    <file>rc_light/arrow_left_disabled@2x.png</file>
+    <file>rc_light/arrow_left_focus.png</file>
+    <file>rc_light/arrow_left_focus@2x.png</file>
+    <file>rc_light/arrow_left_pressed.png</file>
+    <file>rc_light/arrow_left_pressed@2x.png</file>
+    <file>rc_light/arrow_right.png</file>
+    <file>rc_light/arrow_right@2x.png</file>
+    <file>rc_light/arrow_right_disabled.png</file>
+    <file>rc_light/arrow_right_disabled@2x.png</file>
+    <file>rc_light/arrow_right_focus.png</file>
+    <file>rc_light/arrow_right_focus@2x.png</file>
+    <file>rc_light/arrow_right_pressed.png</file>
+    <file>rc_light/arrow_right_pressed@2x.png</file>
+    <file>rc_light/arrow_up.png</file>
+    <file>rc_light/arrow_up@2x.png</file>
+    <file>rc_light/arrow_up_disabled.png</file>
+    <file>rc_light/arrow_up_disabled@2x.png</file>
+    <file>rc_light/arrow_up_focus.png</file>
+    <file>rc_light/arrow_up_focus@2x.png</file>
+    <file>rc_light/arrow_up_pressed.png</file>
+    <file>rc_light/arrow_up_pressed@2x.png</file>
+    <file>rc_light/base_icon.png</file>
+    <file>rc_light/base_icon@2x.png</file>
+    <file>rc_light/base_icon_disabled.png</file>
+    <file>rc_light/base_icon_disabled@2x.png</file>
+    <file>rc_light/base_icon_focus.png</file>
+    <file>rc_light/base_icon_focus@2x.png</file>
+    <file>rc_light/base_icon_pressed.png</file>
+    <file>rc_light/base_icon_pressed@2x.png</file>
+    <file>rc_light/branch_closed.png</file>
+    <file>rc_light/branch_closed@2x.png</file>
+    <file>rc_light/branch_closed_disabled.png</file>
+    <file>rc_light/branch_closed_disabled@2x.png</file>
+    <file>rc_light/branch_closed_focus.png</file>
+    <file>rc_light/branch_closed_focus@2x.png</file>
+    <file>rc_light/branch_closed_pressed.png</file>
+    <file>rc_light/branch_closed_pressed@2x.png</file>
+    <file>rc_light/branch_end.png</file>
+    <file>rc_light/branch_end@2x.png</file>
+    <file>rc_light/branch_end_disabled.png</file>
+    <file>rc_light/branch_end_disabled@2x.png</file>
+    <file>rc_light/branch_end_focus.png</file>
+    <file>rc_light/branch_end_focus@2x.png</file>
+    <file>rc_light/branch_end_pressed.png</file>
+    <file>rc_light/branch_end_pressed@2x.png</file>
+    <file>rc_light/branch_line.png</file>
+    <file>rc_light/branch_line@2x.png</file>
+    <file>rc_light/branch_line_disabled.png</file>
+    <file>rc_light/branch_line_disabled@2x.png</file>
+    <file>rc_light/branch_line_focus.png</file>
+    <file>rc_light/branch_line_focus@2x.png</file>
+    <file>rc_light/branch_line_pressed.png</file>
+    <file>rc_light/branch_line_pressed@2x.png</file>
+    <file>rc_light/branch_more.png</file>
+    <file>rc_light/branch_more@2x.png</file>
+    <file>rc_light/branch_more_disabled.png</file>
+    <file>rc_light/branch_more_disabled@2x.png</file>
+    <file>rc_light/branch_more_focus.png</file>
+    <file>rc_light/branch_more_focus@2x.png</file>
+    <file>rc_light/branch_more_pressed.png</file>
+    <file>rc_light/branch_more_pressed@2x.png</file>
+    <file>rc_light/branch_open.png</file>
+    <file>rc_light/branch_open@2x.png</file>
+    <file>rc_light/branch_open_disabled.png</file>
+    <file>rc_light/branch_open_disabled@2x.png</file>
+    <file>rc_light/branch_open_focus.png</file>
+    <file>rc_light/branch_open_focus@2x.png</file>
+    <file>rc_light/branch_open_pressed.png</file>
+    <file>rc_light/branch_open_pressed@2x.png</file>
+    <file>rc_light/checkbox_checked.png</file>
+    <file>rc_light/checkbox_checked@2x.png</file>
+    <file>rc_light/checkbox_checked_disabled.png</file>
+    <file>rc_light/checkbox_checked_disabled@2x.png</file>
+    <file>rc_light/checkbox_checked_focus.png</file>
+    <file>rc_light/checkbox_checked_focus@2x.png</file>
+    <file>rc_light/checkbox_checked_pressed.png</file>
+    <file>rc_light/checkbox_checked_pressed@2x.png</file>
+    <file>rc_light/checkbox_indeterminate.png</file>
+    <file>rc_light/checkbox_indeterminate@2x.png</file>
+    <file>rc_light/checkbox_indeterminate_disabled.png</file>
+    <file>rc_light/checkbox_indeterminate_disabled@2x.png</file>
+    <file>rc_light/checkbox_indeterminate_focus.png</file>
+    <file>rc_light/checkbox_indeterminate_focus@2x.png</file>
+    <file>rc_light/checkbox_indeterminate_pressed.png</file>
+    <file>rc_light/checkbox_indeterminate_pressed@2x.png</file>
+    <file>rc_light/checkbox_unchecked.png</file>
+    <file>rc_light/checkbox_unchecked@2x.png</file>
+    <file>rc_light/checkbox_unchecked_disabled.png</file>
+    <file>rc_light/checkbox_unchecked_disabled@2x.png</file>
+    <file>rc_light/checkbox_unchecked_focus.png</file>
+    <file>rc_light/checkbox_unchecked_focus@2x.png</file>
+    <file>rc_light/checkbox_unchecked_pressed.png</file>
+    <file>rc_light/checkbox_unchecked_pressed@2x.png</file>
+    <file>rc_light/line_horizontal.png</file>
+    <file>rc_light/line_horizontal@2x.png</file>
+    <file>rc_light/line_horizontal_disabled.png</file>
+    <file>rc_light/line_horizontal_disabled@2x.png</file>
+    <file>rc_light/line_horizontal_focus.png</file>
+    <file>rc_light/line_horizontal_focus@2x.png</file>
+    <file>rc_light/line_horizontal_pressed.png</file>
+    <file>rc_light/line_horizontal_pressed@2x.png</file>
+    <file>rc_light/line_vertical.png</file>
+    <file>rc_light/line_vertical@2x.png</file>
+    <file>rc_light/line_vertical_disabled.png</file>
+    <file>rc_light/line_vertical_disabled@2x.png</file>
+    <file>rc_light/line_vertical_focus.png</file>
+    <file>rc_light/line_vertical_focus@2x.png</file>
+    <file>rc_light/line_vertical_pressed.png</file>
+    <file>rc_light/line_vertical_pressed@2x.png</file>
+    <file>rc_light/radio_checked.png</file>
+    <file>rc_light/radio_checked@2x.png</file>
+    <file>rc_light/radio_checked_disabled.png</file>
+    <file>rc_light/radio_checked_disabled@2x.png</file>
+    <file>rc_light/radio_checked_focus.png</file>
+    <file>rc_light/radio_checked_focus@2x.png</file>
+    <file>rc_light/radio_checked_pressed.png</file>
+    <file>rc_light/radio_checked_pressed@2x.png</file>
+    <file>rc_light/radio_unchecked.png</file>
+    <file>rc_light/radio_unchecked@2x.png</file>
+    <file>rc_light/radio_unchecked_disabled.png</file>
+    <file>rc_light/radio_unchecked_disabled@2x.png</file>
+    <file>rc_light/radio_unchecked_focus.png</file>
+    <file>rc_light/radio_unchecked_focus@2x.png</file>
+    <file>rc_light/radio_unchecked_pressed.png</file>
+    <file>rc_light/radio_unchecked_pressed@2x.png</file>
+    <file>rc_light/toolbar_move_horizontal.png</file>
+    <file>rc_light/toolbar_move_horizontal@2x.png</file>
+    <file>rc_light/toolbar_move_horizontal_disabled.png</file>
+    <file>rc_light/toolbar_move_horizontal_disabled@2x.png</file>
+    <file>rc_light/toolbar_move_horizontal_focus.png</file>
+    <file>rc_light/toolbar_move_horizontal_focus@2x.png</file>
+    <file>rc_light/toolbar_move_horizontal_pressed.png</file>
+    <file>rc_light/toolbar_move_horizontal_pressed@2x.png</file>
+    <file>rc_light/toolbar_move_vertical.png</file>
+    <file>rc_light/toolbar_move_vertical@2x.png</file>
+    <file>rc_light/toolbar_move_vertical_disabled.png</file>
+    <file>rc_light/toolbar_move_vertical_disabled@2x.png</file>
+    <file>rc_light/toolbar_move_vertical_focus.png</file>
+    <file>rc_light/toolbar_move_vertical_focus@2x.png</file>
+    <file>rc_light/toolbar_move_vertical_pressed.png</file>
+    <file>rc_light/toolbar_move_vertical_pressed@2x.png</file>
+    <file>rc_light/toolbar_separator_horizontal.png</file>
+    <file>rc_light/toolbar_separator_horizontal@2x.png</file>
+    <file>rc_light/toolbar_separator_horizontal_disabled.png</file>
+    <file>rc_light/toolbar_separator_horizontal_disabled@2x.png</file>
+    <file>rc_light/toolbar_separator_horizontal_focus.png</file>
+    <file>rc_light/toolbar_separator_horizontal_focus@2x.png</file>
+    <file>rc_light/toolbar_separator_horizontal_pressed.png</file>
+    <file>rc_light/toolbar_separator_horizontal_pressed@2x.png</file>
+    <file>rc_light/toolbar_separator_vertical.png</file>
+    <file>rc_light/toolbar_separator_vertical@2x.png</file>
+    <file>rc_light/toolbar_separator_vertical_disabled.png</file>
+    <file>rc_light/toolbar_separator_vertical_disabled@2x.png</file>
+    <file>rc_light/toolbar_separator_vertical_focus.png</file>
+    <file>rc_light/toolbar_separator_vertical_focus@2x.png</file>
+    <file>rc_light/toolbar_separator_vertical_pressed.png</file>
+    <file>rc_light/toolbar_separator_vertical_pressed@2x.png</file>
+    <file>rc_light/transparent.png</file>
+    <file>rc_light/transparent@2x.png</file>
+    <file>rc_light/transparent_disabled.png</file>
+    <file>rc_light/transparent_disabled@2x.png</file>
+    <file>rc_light/transparent_focus.png</file>
+    <file>rc_light/transparent_focus@2x.png</file>
+    <file>rc_light/transparent_pressed.png</file>
+    <file>rc_light/transparent_pressed@2x.png</file>
+    <file>rc_light/window_close.png</file>
+    <file>rc_light/window_close@2x.png</file>
+    <file>rc_light/window_close_disabled.png</file>
+    <file>rc_light/window_close_disabled@2x.png</file>
+    <file>rc_light/window_close_focus.png</file>
+    <file>rc_light/window_close_focus@2x.png</file>
+    <file>rc_light/window_close_pressed.png</file>
+    <file>rc_light/window_close_pressed@2x.png</file>
+    <file>rc_light/window_grip.png</file>
+    <file>rc_light/window_grip@2x.png</file>
+    <file>rc_light/window_grip_disabled.png</file>
+    <file>rc_light/window_grip_disabled@2x.png</file>
+    <file>rc_light/window_grip_focus.png</file>
+    <file>rc_light/window_grip_focus@2x.png</file>
+    <file>rc_light/window_grip_pressed.png</file>
+    <file>rc_light/window_grip_pressed@2x.png</file>
+    <file>rc_light/window_minimize.png</file>
+    <file>rc_light/window_minimize@2x.png</file>
+    <file>rc_light/window_minimize_disabled.png</file>
+    <file>rc_light/window_minimize_disabled@2x.png</file>
+    <file>rc_light/window_minimize_focus.png</file>
+    <file>rc_light/window_minimize_focus@2x.png</file>
+    <file>rc_light/window_minimize_pressed.png</file>
+    <file>rc_light/window_minimize_pressed@2x.png</file>
+    <file>rc_light/window_undock.png</file>
+    <file>rc_light/window_undock@2x.png</file>
+    <file>rc_light/window_undock_disabled.png</file>
+    <file>rc_light/window_undock_disabled@2x.png</file>
+    <file>rc_light/window_undock_focus.png</file>
+    <file>rc_light/window_undock_focus@2x.png</file>
+    <file>rc_light/window_undock_pressed.png</file>
+    <file>rc_light/window_undock_pressed@2x.png</file>
 </qresource>
 </RCC>
diff --git a/utils/rsc/fonts/FiraCode-Regular.ttf b/utils/rsc/fonts/FiraCode-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..0d570685b44c04723bf4ca6c954839034346723d
Binary files /dev/null and b/utils/rsc/fonts/FiraCode-Regular.ttf differ
diff --git a/utils/rsc/fonts/NotoSans-Bold.ttf b/utils/rsc/fonts/NotoSans-Bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..54ad879b41b5db8b21dca1aa00a2d474697e7bf0
Binary files /dev/null and b/utils/rsc/fonts/NotoSans-Bold.ttf differ
diff --git a/utils/rsc/fonts/NotoSans-BoldItalic.ttf b/utils/rsc/fonts/NotoSans-BoldItalic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..530a82835d3b0b07d4b56cfae9ebfa5e02a9129e
Binary files /dev/null and b/utils/rsc/fonts/NotoSans-BoldItalic.ttf differ
diff --git a/utils/rsc/fonts/NotoSans-Italic.ttf b/utils/rsc/fonts/NotoSans-Italic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..27ff1ed60a9afc0e6a4d7604abf6d9ad307ef7fd
Binary files /dev/null and b/utils/rsc/fonts/NotoSans-Italic.ttf differ
diff --git a/utils/rsc/fonts/NotoSans-Regular.ttf b/utils/rsc/fonts/NotoSans-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..10589e277ed7087dfd2d499a064e8c0e8bd9efad
Binary files /dev/null and b/utils/rsc/fonts/NotoSans-Regular.ttf differ
diff --git a/utils/rsc/icons/breeze-dark/document-new.svg b/utils/rsc/icons/breeze-dark/document-new.svg
new file mode 100644
index 0000000000000000000000000000000000000000..316017273c750d6e786f49e2a7ce86d8376fff58
--- /dev/null
+++ b/utils/rsc/icons/breeze-dark/document-new.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#eff0f1;
+      }
+      </style>
+  </defs>
+  <path style="fill:currentColor;fill-opacity:1;stroke:none" 
+     d="M 3 2 L 3 14 L 8 14 L 8 13 L 4 13 L 4 3 L 9 3 L 9 6 L 12 6 L 12 9 L 13 9 L 13 6 L 13 5 L 10 2 L 9 2 L 3 2 z M 10 9 L 10 11 L 8 11 L 8 12 L 10 12 L 10 14 L 11 14 L 11 12 L 13 12 L 13 11 L 11 11 L 11 9 L 10 9 z "
+     class="ColorScheme-Text"
+     />
+</svg>
diff --git a/utils/rsc/icons/breeze-dark/document-open.svg b/utils/rsc/icons/breeze-dark/document-open.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4e0f9c470daab722eceb8f75850c31eec853ece4
--- /dev/null
+++ b/utils/rsc/icons/breeze-dark/document-open.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#eff0f1;
+      }
+      </style>
+  </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" 
+     d="M 2 2 L 2 3 L 2 6 L 2 7 L 2 13 L 2 14 L 14 14 L 14 13 L 14 6 L 14 5 L 14 4 L 9.0078125 4 L 7.0078125 2 L 7 2.0078125 L 7 2 L 3 2 L 2 2 z M 3 3 L 6.5917969 3 L 7.59375 4 L 7 4 L 7 4.0078125 L 6.9921875 4 L 4.9921875 6 L 3 6 L 3 3 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z "
+     class="ColorScheme-Text"
+     />
+</svg>
diff --git a/utils/rsc/icons/breeze-dark/document-save-as.svg b/utils/rsc/icons/breeze-dark/document-save-as.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7aa06852a1c22ec900a4b53132ee2693bc0310c5
--- /dev/null
+++ b/utils/rsc/icons/breeze-dark/document-save-as.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#eff0f1;
+      }
+      </style>
+  </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" 
+     d="M 2 2 L 2 14 L 3 14 L 4 14 L 7 14 L 7 13 L 6 13 L 5 13 L 5 10 L 6 10 L 7 10 L 8 10 L 8 9 L 7 9 L 5 9 L 3.96875 9 L 3.96875 13 L 3 13 L 3 3 L 4 3 L 5 3 L 5 6 L 5 7 L 7 7 L 11 7 L 11 6 L 11 3 L 11.28125 3 L 13 4.71875 L 13 5 L 13 7 L 14 7 L 14 4.28125 L 11.71875 2 L 11.6875 2 L 11 2 L 4 2 L 3 2 L 2 2 z M 6 3 L 7.90625 3 L 7.90625 6 L 6 6 L 6 3 z M 12 8 L 11 9 L 10 10 L 8 12 L 8 13 L 8 14 L 10 14 L 11 13 L 12 12 L 13 11 L 14 10 L 12 8 z M 11.689453 9.6894531 L 12.28125 10.28125 L 10.59375 11.96875 L 10.59375 11.984375 L 9.3125 13.28125 L 8.71875 12.6875 L 11.689453 9.6894531 z "
+     class="ColorScheme-Text"
+     />
+</svg>
diff --git a/utils/rsc/icons/breeze-dark/document-save.svg b/utils/rsc/icons/breeze-dark/document-save.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1484379e82b5351c9a7cd029fd0b1640dd54e64d
--- /dev/null
+++ b/utils/rsc/icons/breeze-dark/document-save.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#eff0f1;
+      }
+      </style>
+  </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" 
+     d="M 2 2 L 2 14 L 3 14 L 4 14 L 10 14 L 11 14 L 12 14 L 14 14 L 14 4.28125 L 11.71875 2 L 11.6875 2 L 11 2 L 4 2 L 3 2 L 2 2 z M 3 3 L 4 3 L 5 3 L 5 6 L 5 7 L 11 7 L 11 6 L 11 3 L 11.28125 3 L 13 4.71875 L 13 5 L 13 13 L 12 13 L 12 9 L 11 9 L 5 9 L 3.96875 9 L 3.96875 13 L 3 13 L 3 3 z M 6 3 L 7.90625 3 L 7.90625 6 L 6 6 L 6 3 z M 5 10 L 6 10 L 10 10 L 11 10 L 11 13 L 10 13 L 6 13 L 5 13 L 5 10 z "
+     class="ColorScheme-Text"
+     />
+</svg>
diff --git a/utils/rsc/icons/breeze-dark/folder.svg b/utils/rsc/icons/breeze-dark/folder.svg
new file mode 100644
index 0000000000000000000000000000000000000000..fcd5c0ab3da02bdf4a0c379434970f325bd29781
--- /dev/null
+++ b/utils/rsc/icons/breeze-dark/folder.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#eff0f1
+      }
+      </style>
+  </defs>
+    <path
+       style="fill:currentColor;fill-opacity:1;stroke:none" 
+       d="M 3 3 L 3 4 L 3 19 L 4 19 L 19 19 L 19 18 L 19 5 L 12.007812 5 L 10.007812 3 L 10 3.0078125 L 10 3 L 4 3 L 3 3 z M 4 4 L 7 4 L 9.5859375 4 L 10.589844 5.0039062 L 6.5703125 9 L 6.5683594 9 L 4 9 L 4 4 z M 9.0078125 8 L 18 8 L 18 18 L 4 18 L 4 10 L 5.5625 10 L 7 10 L 7 9.9921875 L 7.0078125 10 L 9.0078125 8 z "
+       class="ColorScheme-Text" />
+</svg>
diff --git a/utils/rsc/icons/breeze-dark/help-about.svg b/utils/rsc/icons/breeze-dark/help-about.svg
new file mode 100644
index 0000000000000000000000000000000000000000..856d1b2b8ba2d50ec2d0c357000992045d106cc8
--- /dev/null
+++ b/utils/rsc/icons/breeze-dark/help-about.svg
@@ -0,0 +1,12 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+    <style type="text/css" id="current-color-scheme">
+        .ColorScheme-Text {
+            color:#eff0f1;
+        }
+    </style>
+    <g class="ColorScheme-Text" fill="currentColor" fill-rule="evenodd">
+        <path d="m8 2a6 6 0 0 0 -6 6 6 6 0 0 0 6 6 6 6 0 0 0 6-6 6 6 0 0 0 -6-6zm0 1a5 5 0 0 1 5 5 5 5 0 0 1 -5 5 5 5 0 0 1 -5-5 5 5 0 0 1 5-5z"/>
+        <path d="m7 4h2v2h-2z"/>
+        <path d="m7 7h2v5h-2z"/>
+    </g>
+</svg>
diff --git a/utils/rsc/icons/breeze-dark/text-x-generic.svg b/utils/rsc/icons/breeze-dark/text-x-generic.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f8733cf2d342ac5009d9a4d81232e42f087c5c71
--- /dev/null
+++ b/utils/rsc/icons/breeze-dark/text-x-generic.svg
@@ -0,0 +1,26 @@
+<svg width="32" xmlns="http://www.w3.org/2000/svg" height="32" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient id="a" y1="392.36" y2="365.36" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="translate(309.57 152.44)">
+   <stop stop-color="#ffffff" stop-opacity="0"/>
+   <stop offset="1" stop-color="#ffffff" stop-opacity=".2"/>
+  </linearGradient>
+  <linearGradient id="b" y1="17" x1="47" y2="24" gradientUnits="userSpaceOnUse" x2="54" gradientTransform="translate(357.57 507.8)">
+   <stop stop-color="#060606"/>
+   <stop offset="1" stop-opacity="0"/>
+  </linearGradient>
+  <path id="c" d="m389.57 545.8v-28h15l7 7v21h-14z"/>
+ </defs>
+ <g transform="translate(-384.57-515.8)">
+  <g color-rendering="auto" color-interpolation-filters="linearRGB" shape-rendering="auto" image-rendering="auto" text-rendering="auto" color-interpolation="sRGB" color="#000000">
+   <use fill="#eeeeee" xlink:href="#c"/>
+   <g transform="scale(1-1)">
+    <rect opacity=".6" x="389.57" y="-518.8" width="15" fill="#ffffff" height="1"/>
+    <rect opacity=".15" x="389.57" y="-545.8" width="22" height="1"/>
+   </g>
+   <path opacity=".5" fill-rule="evenodd" d="m411.57 524.8l-7-7v7z"/>
+   <path opacity=".6" d="m394.57 537.8v-1h6v1zm0-2v-1h12v1zm0-3v-1h8v1zm0-2v-1h12v1zm0-2v-1h12v1z"/>
+  </g>
+  <use fill="url(#a)" xlink:href="#c"/>
+  <path opacity=".1" fill="url(#b)" fill-rule="evenodd" d="m404.57 524.8l7 7v-7z"/>
+ </g>
+</svg>
diff --git a/utils/rsc/icons/breeze-light/document-new.svg b/utils/rsc/icons/breeze-light/document-new.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6434a18e6e514b3c09b3c4c1b82b4594669207ca
--- /dev/null
+++ b/utils/rsc/icons/breeze-light/document-new.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#232629;
+      }
+      </style>
+  </defs>
+  <path style="fill:currentColor;fill-opacity:1;stroke:none" 
+     d="M 3 2 L 3 14 L 8 14 L 8 13 L 4 13 L 4 3 L 9 3 L 9 6 L 12 6 L 12 9 L 13 9 L 13 6 L 13 5 L 10 2 L 9 2 L 3 2 z M 10 9 L 10 11 L 8 11 L 8 12 L 10 12 L 10 14 L 11 14 L 11 12 L 13 12 L 13 11 L 11 11 L 11 9 L 10 9 z "
+     class="ColorScheme-Text"
+     />
+</svg>
diff --git a/utils/rsc/icons/breeze-light/document-open.svg b/utils/rsc/icons/breeze-light/document-open.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4d2b838970181d6ee4f841e07d6cba3b8ddcbb14
--- /dev/null
+++ b/utils/rsc/icons/breeze-light/document-open.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#232629;
+      }
+      </style>
+  </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" 
+     d="M 2 2 L 2 3 L 2 6 L 2 7 L 2 13 L 2 14 L 14 14 L 14 13 L 14 6 L 14 5 L 14 4 L 9.0078125 4 L 7.0078125 2 L 7 2.0078125 L 7 2 L 3 2 L 2 2 z M 3 3 L 6.5917969 3 L 7.59375 4 L 7 4 L 7 4.0078125 L 6.9921875 4 L 4.9921875 6 L 3 6 L 3 3 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z "
+     class="ColorScheme-Text"
+     />
+</svg>
diff --git a/utils/rsc/icons/breeze-light/document-save-as.svg b/utils/rsc/icons/breeze-light/document-save-as.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b8ad9683168a8958b0b45f9595b072b6844bb8b8
--- /dev/null
+++ b/utils/rsc/icons/breeze-light/document-save-as.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#232629;
+      }
+      </style>
+  </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" 
+     d="M 2 2 L 2 14 L 3 14 L 4 14 L 7 14 L 7 13 L 6 13 L 5 13 L 5 10 L 6 10 L 7 10 L 8 10 L 8 9 L 7 9 L 5 9 L 3.96875 9 L 3.96875 13 L 3 13 L 3 3 L 4 3 L 5 3 L 5 6 L 5 7 L 7 7 L 11 7 L 11 6 L 11 3 L 11.28125 3 L 13 4.71875 L 13 5 L 13 7 L 14 7 L 14 4.28125 L 11.71875 2 L 11.6875 2 L 11 2 L 4 2 L 3 2 L 2 2 z M 6 3 L 7.90625 3 L 7.90625 6 L 6 6 L 6 3 z M 12 8 L 11 9 L 10 10 L 8 12 L 8 13 L 8 14 L 10 14 L 11 13 L 12 12 L 13 11 L 14 10 L 12 8 z M 11.689453 9.6894531 L 12.28125 10.28125 L 10.59375 11.96875 L 10.59375 11.984375 L 9.3125 13.28125 L 8.71875 12.6875 L 11.689453 9.6894531 z "
+     class="ColorScheme-Text"
+     />
+</svg>
diff --git a/utils/rsc/icons/breeze-light/document-save.svg b/utils/rsc/icons/breeze-light/document-save.svg
new file mode 100644
index 0000000000000000000000000000000000000000..cd2db5adb0765ae7a3fd8c7eee78bbd1f6fafe87
--- /dev/null
+++ b/utils/rsc/icons/breeze-light/document-save.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#232629;
+      }
+      </style>
+  </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" 
+     d="M 2 2 L 2 14 L 3 14 L 4 14 L 10 14 L 11 14 L 12 14 L 14 14 L 14 4.28125 L 11.71875 2 L 11.6875 2 L 11 2 L 4 2 L 3 2 L 2 2 z M 3 3 L 4 3 L 5 3 L 5 6 L 5 7 L 11 7 L 11 6 L 11 3 L 11.28125 3 L 13 4.71875 L 13 5 L 13 13 L 12 13 L 12 9 L 11 9 L 5 9 L 3.96875 9 L 3.96875 13 L 3 13 L 3 3 z M 6 3 L 7.90625 3 L 7.90625 6 L 6 6 L 6 3 z M 5 10 L 6 10 L 10 10 L 11 10 L 11 13 L 10 13 L 6 13 L 5 13 L 5 10 z "
+     class="ColorScheme-Text"
+     />
+</svg>
diff --git a/utils/rsc/icons/breeze-light/folder.svg b/utils/rsc/icons/breeze-light/folder.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7a5f325e433853431b7b570e9052a7274cd5aba4
--- /dev/null
+++ b/utils/rsc/icons/breeze-light/folder.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#232629
+      }
+      </style>
+  </defs>
+    <path
+       style="fill:currentColor;fill-opacity:1;stroke:none" 
+       d="M 3 3 L 3 4 L 3 19 L 4 19 L 19 19 L 19 18 L 19 5 L 12.007812 5 L 10.007812 3 L 10 3.0078125 L 10 3 L 4 3 L 3 3 z M 4 4 L 7 4 L 9.5859375 4 L 10.589844 5.0039062 L 6.5703125 9 L 6.5683594 9 L 4 9 L 4 4 z M 9.0078125 8 L 18 8 L 18 18 L 4 18 L 4 10 L 5.5625 10 L 7 10 L 7 9.9921875 L 7.0078125 10 L 9.0078125 8 z "
+       class="ColorScheme-Text" />
+</svg>
diff --git a/utils/rsc/icons/breeze-light/help-about.svg b/utils/rsc/icons/breeze-light/help-about.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ea1dc02cdb0f4ddba638dd3b881ceaf139e4d4c6
--- /dev/null
+++ b/utils/rsc/icons/breeze-light/help-about.svg
@@ -0,0 +1,12 @@
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+    <style type="text/css" id="current-color-scheme">
+        .ColorScheme-Text {
+            color:#232629;
+        }
+    </style>
+    <g class="ColorScheme-Text" fill="currentColor" fill-rule="evenodd">
+        <path d="m8 2a6 6 0 0 0 -6 6 6 6 0 0 0 6 6 6 6 0 0 0 6-6 6 6 0 0 0 -6-6zm0 1a5 5 0 0 1 5 5 5 5 0 0 1 -5 5 5 5 0 0 1 -5-5 5 5 0 0 1 5-5z"/>
+        <path d="m7 4h2v2h-2z"/>
+        <path d="m7 7h2v5h-2z"/>
+    </g>
+</svg>
diff --git a/utils/rsc/icons/breeze-light/text-x-generic.svg b/utils/rsc/icons/breeze-light/text-x-generic.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f8733cf2d342ac5009d9a4d81232e42f087c5c71
--- /dev/null
+++ b/utils/rsc/icons/breeze-light/text-x-generic.svg
@@ -0,0 +1,26 @@
+<svg width="32" xmlns="http://www.w3.org/2000/svg" height="32" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient id="a" y1="392.36" y2="365.36" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="translate(309.57 152.44)">
+   <stop stop-color="#ffffff" stop-opacity="0"/>
+   <stop offset="1" stop-color="#ffffff" stop-opacity=".2"/>
+  </linearGradient>
+  <linearGradient id="b" y1="17" x1="47" y2="24" gradientUnits="userSpaceOnUse" x2="54" gradientTransform="translate(357.57 507.8)">
+   <stop stop-color="#060606"/>
+   <stop offset="1" stop-opacity="0"/>
+  </linearGradient>
+  <path id="c" d="m389.57 545.8v-28h15l7 7v21h-14z"/>
+ </defs>
+ <g transform="translate(-384.57-515.8)">
+  <g color-rendering="auto" color-interpolation-filters="linearRGB" shape-rendering="auto" image-rendering="auto" text-rendering="auto" color-interpolation="sRGB" color="#000000">
+   <use fill="#eeeeee" xlink:href="#c"/>
+   <g transform="scale(1-1)">
+    <rect opacity=".6" x="389.57" y="-518.8" width="15" fill="#ffffff" height="1"/>
+    <rect opacity=".15" x="389.57" y="-545.8" width="22" height="1"/>
+   </g>
+   <path opacity=".5" fill-rule="evenodd" d="m411.57 524.8l-7-7v7z"/>
+   <path opacity=".6" d="m394.57 537.8v-1h6v1zm0-2v-1h12v1zm0-3v-1h8v1zm0-2v-1h12v1zm0-2v-1h12v1z"/>
+  </g>
+  <use fill="url(#a)" xlink:href="#c"/>
+  <path opacity=".1" fill="url(#b)" fill-rule="evenodd" d="m404.57 524.8l7 7v-7z"/>
+ </g>
+</svg>
diff --git a/utils/rsc/licence/APACHE-2.0 b/utils/rsc/licence/APACHE-2.0
new file mode 100644
index 0000000000000000000000000000000000000000..ef51da2b0e8df139a427a56d3c2054c1b5e75118
--- /dev/null
+++ b/utils/rsc/licence/APACHE-2.0
@@ -0,0 +1,202 @@
+
+                              Apache License
+                        Version 2.0, January 2004
+                     http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/utils/rsc/licence/CCAI-4.0 b/utils/rsc/licence/CCAI-4.0
new file mode 100644
index 0000000000000000000000000000000000000000..ac63f8dbf4b595b07bc7d294eda179f602639ea7
--- /dev/null
+++ b/utils/rsc/licence/CCAI-4.0
@@ -0,0 +1,362 @@
+# Creative Commons Attribution International 4.0 - Images
+
+Creative Commons Corporation (“Creative Commons”) is not a law firm and
+does not provide legal services or legal advice. Distribution of
+Creative Commons public licenses does not create a lawyer-client or
+other relationship. Creative Commons makes its licenses and related
+information available on an “as-is” basis. Creative Commons gives no
+warranties regarding its licenses, any material licensed under their
+terms and conditions, or any related information. Creative Commons
+disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+## Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and
+conditions that creators and other rights holders may use to share
+original works of authorship and other material subject to copyright and
+certain other rights specified in the public license below. The
+following considerations are for informational purposes only, are not
+exhaustive, and do not form part of our licenses.
+
+- **Considerations for licensors:** Our public licenses are intended
+  for use by those authorized to give the public permission to use
+  material in ways otherwise restricted by copyright and certain other
+  rights. Our licenses are irrevocable. Licensors should read and
+  understand the terms and conditions of the license they choose before
+  applying it. Licensors should also secure all rights necessary before
+  applying our licenses so that the public can reuse the material as
+  expected. Licensors should clearly mark any material not subject to
+  the license. This includes other CC-licensed material, or material
+  used under an exception or limitation to copyright. More
+  considerations for
+  licensors <http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors>.
+
+- **Considerations for the public:** By using one of our public
+  licenses, a licensor grants the public permission to use the licensed
+  material under specified terms and conditions. If the licensor’s
+  permission is not necessary for any reason–for example, because of
+  any applicable exception or limitation to copyright–then that use is
+  not regulated by the license. Our licenses grant only permissions
+  under copyright and certain other rights that a licensor has
+  authority to grant. Use of the licensed material may still be
+  restricted for other reasons, including because others have copyright
+  or other rights in the material. A licensor may make special
+  requests, such as asking that all changes be marked or described.
+  Although not required by our licenses, you are encouraged to respect
+  those requests where reasonable. More considerations for the
+  public <http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees>.
+
+
+# Creative Commons Attribution 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree
+to be bound by the terms and conditions of this Creative Commons
+Attribution 4.0 International Public License ("Public License"). To the
+extent this Public License may be interpreted as a contract, You are
+granted the Licensed Rights in consideration of Your acceptance of these
+terms and conditions, and the Licensor grants You such rights in
+consideration of benefits the Licensor receives from making the Licensed
+Material available under these terms and conditions.
+
+## Section 1 – Definitions
+
+a. **Adapted Material** means material subject to Copyright and Similar
+   Rights that is derived from or based upon the Licensed Material and
+   in which the Licensed Material is translated, altered, arranged,
+   transformed, or otherwise modified in a manner requiring permission
+   under the Copyright and Similar Rights held by the Licensor. For
+   purposes of this Public License, where the Licensed Material is a
+   musical work, performance, or sound recording, Adapted Material is
+   always produced where the Licensed Material is synched in timed
+   relation with a moving image.
+
+b. **Adapter's License** means the license You apply to Your Copyright
+   and Similar Rights in Your contributions to Adapted Material in
+   accordance with the terms and conditions of this Public License.
+
+c. **Copyright and Similar Rights** means copyright and/or similar
+   rights closely related to copyright including, without limitation,
+   performance, broadcast, sound recording, and Sui Generis Database
+   Rights, without regard to how the rights are labeled or categorized.
+   For purposes of this Public License, the rights specified in Section
+   2(b)(1)-(2) are not Copyright and Similar Rights.
+
+d. **Effective Technological Measures** means those measures that, in
+   the absence of proper authority, may not be circumvented under laws
+   fulfilling obligations under Article 11 of the WIPO Copyright Treaty
+   adopted on December 20, 1996, and/or similar international
+   agreements.
+
+e. **Exceptions and Limitations** means fair use, fair dealing, and/or
+   any other exception or limitation to Copyright and Similar Rights
+   that applies to Your use of the Licensed Material.
+
+f. **Licensed Material** means the artistic or literary work, database,
+   or other material to which the Licensor applied this Public License.
+
+g. **Licensed Rights** means the rights granted to You subject to the
+   terms and conditions of this Public License, which are limited to all
+   Copyright and Similar Rights that apply to Your use of the Licensed
+   Material and that the Licensor has authority to license.
+
+h. **Licensor** means the individual(s) or entity(ies) granting rights
+   under this Public License.
+
+i. **Share** means to provide material to the public by any means or
+   process that requires permission under the Licensed Rights, such as
+   reproduction, public display, public performance, distribution,
+   dissemination, communication, or importation, and to make material
+   available to the public including in ways that members of the public
+   may access the material from a place and at a time individually
+   chosen by them.
+
+j. **Sui Generis Database Rights** means rights other than copyright
+   resulting from Directive 96/9/EC of the European Parliament and of
+   the Council of 11 March 1996 on the legal protection of databases, as
+   amended and/or succeeded, as well as other essentially equivalent
+   rights anywhere in the world.
+
+k. **You** means the individual or entity exercising the Licensed Rights
+   under this Public License. Your has a corresponding meaning.
+
+## Section 2 – Scope
+
+a. **License grant.**
+
+1. Subject to the terms and conditions of this Public License, the
+   Licensor hereby grants You a worldwide, royalty-free,
+   non-sublicensable, non-exclusive, irrevocable license to exercise the
+   Licensed Rights in the Licensed Material to:
+
+   A. reproduce and Share the Licensed Material, in whole or in part; and
+
+   B. produce, reproduce, and Share Adapted Material.
+
+2. **Exceptions and Limitations.** For the avoidance of doubt, where
+   Exceptions and Limitations apply to Your use, this Public License
+   does not apply, and You do not need to comply with its terms and
+   conditions.
+
+3. **Term.** The term of this Public License is specified in Section
+   6(a).
+
+4. **Media and formats; technical modifications allowed.** The Licensor
+   authorizes You to exercise the Licensed Rights in all media and
+   formats whether now known or hereafter created, and to make technical
+   modifications necessary to do so. The Licensor waives and/or agrees
+   not to assert any right or authority to forbid You from making
+   technical modifications necessary to exercise the Licensed Rights,
+   including technical modifications necessary to circumvent Effective
+   Technological Measures. For purposes of this Public License, simply
+   making modifications authorized by this Section 2(a)(4) never
+   produces Adapted Material.
+
+5. **Downstream recipients.**
+
+   A. **Offer from the Licensor – Licensed Material.** Every recipient
+      of the Licensed Material automatically receives an offer from the
+      Licensor to exercise the Licensed Rights under the terms and
+      conditions of this Public License.
+
+   B. **No downstream restrictions.** You may not offer or impose any
+      additional or different terms or conditions on, or apply any
+      Effective Technological Measures to, the Licensed Material if doing
+      so restricts exercise of the Licensed Rights by any recipient of the
+      Licensed Material.
+
+6. **No endorsement.** Nothing in this Public License constitutes or may
+   be construed as permission to assert or imply that You are, or that
+   Your use of the Licensed Material is, connected with, or sponsored,
+   endorsed, or granted official status by, the Licensor or others
+   designated to receive attribution as provided in Section
+   3(a)(1)(A)(i).
+
+b. **Other rights.**
+
+1. Moral rights, such as the right of integrity, are not licensed under
+   this Public License, nor are publicity, privacy, and/or other similar
+   personality rights; however, to the extent possible, the Licensor
+   waives and/or agrees not to assert any such rights held by the
+   Licensor to the limited extent necessary to allow You to exercise the
+   Licensed Rights, but not otherwise.
+
+2. Patent and trademark rights are not licensed under this Public
+   License.
+
+3. To the extent possible, the Licensor waives any right to collect
+   royalties from You for the exercise of the Licensed Rights, whether
+   directly or through a collecting society under any voluntary or
+   waivable statutory or compulsory licensing scheme. In all other cases
+   the Licensor expressly reserves any right to collect such royalties.
+
+## Section 3 – License Conditions
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+a. **Attribution.**
+
+1. If You Share the Licensed Material (including in modified form), You
+   must:
+
+   A. retain the following if it is supplied by the Licensor with the
+      Licensed Material:
+
+      - i. identification of the creator(s) of the Licensed Material and any
+           others designated to receive attribution, in any reasonable manner
+           requested by the Licensor (including by pseudonym if designated);
+
+      - ii. a copyright notice;
+
+      - iii. a notice that refers to this Public License;
+
+      - iv. a notice that refers to the disclaimer of warranties;
+
+      - v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
+
+   B. indicate if You modified the Licensed Material and retain an
+   indication of any previous modifications; and
+
+   C. indicate the Licensed Material is licensed under this Public
+   License, and include the text of, or the URI or hyperlink to, this
+   Public License.
+
+2. You may satisfy the conditions in Section 3(a)(1) in any reasonable
+   manner based on the medium, means, and context in which You Share the
+   Licensed Material. For example, it may be reasonable to satisfy the
+   conditions by providing a URI or hyperlink to a resource that
+   includes the required information.
+
+3. If requested by the Licensor, You must remove any of the information
+   required by Section 3(a)(1)(A) to the extent reasonably practicable.
+
+4. If You Share Adapted Material You produce, the Adapter's License You
+   apply must not prevent recipients of the Adapted Material from
+   complying with this Public License.
+
+## Section 4 – Sui Generis Database Rights
+
+Where the Licensed Rights include Sui Generis Database Rights that apply
+to Your use of the Licensed Material:
+
+a. for the avoidance of doubt, Section 2(a)(1) grants You the right to
+   extract, reuse, reproduce, and Share all or a substantial portion of
+   the contents of the database;
+
+b. if You include all or a substantial portion of the database contents
+   in a database in which You have Sui Generis Database Rights, then the
+   database in which You have Sui Generis Database Rights (but not its
+   individual contents) is Adapted Material; and
+
+c. You must comply with the conditions in Section 3(a) if You Share all
+   or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Public License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+## Section 5 – Disclaimer of Warranties and Limitation of Liability
+
+a. Unless otherwise separately undertaken by the Licensor, to the
+   extent possible, the Licensor offers the Licensed Material as-is and
+   as-available, and makes no representations or warranties of any kind
+   concerning the Licensed Material, whether express, implied,
+   statutory, or other. This includes, without limitation, warranties of
+   title, merchantability, fitness for a particular purpose,
+   non-infringement, absence of latent or other defects, accuracy, or
+   the presence or absence of errors, whether or not known or
+   discoverable. Where disclaimers of warranties are not allowed in full
+   or in part, this disclaimer may not apply to You.
+
+b. To the extent possible, in no event will the Licensor be liable to
+   You on any legal theory (including, without limitation, negligence)
+   or otherwise for any direct, special, indirect, incidental,
+   consequential, punitive, exemplary, or other losses, costs, expenses,
+   or damages arising out of this Public License or use of the Licensed
+   Material, even if the Licensor has been advised of the possibility of
+   such losses, costs, expenses, or damages. Where a limitation of
+   liability is not allowed in full or in part, this limitation may not
+   apply to You.
+
+c. The disclaimer of warranties and limitation of liability provided
+   above shall be interpreted in a manner that, to the extent possible,
+   most closely approximates an absolute disclaimer and waiver of all
+   liability.
+
+## Section 6 – Term and Termination
+
+a. This Public License applies for the term of the Copyright and Similar
+   Rights licensed here. However, if You fail to comply with this Public
+   License, then Your rights under this Public License terminate
+   automatically.
+
+b. Where Your right to use the Licensed Material has terminated under
+   Section 6(a), it reinstates:
+
+1. automatically as of the date the violation is cured, provided it is
+   cured within 30 days of Your discovery of the violation; or
+
+2. upon express reinstatement by the Licensor.
+
+For the avoidance of doubt, this Section 6(b) does not affect any right
+the Licensor may have to seek remedies for Your violations of this
+Public License.
+
+c. For the avoidance of doubt, the Licensor may also offer the Licensed
+   Material under separate terms or conditions or stop distributing the
+   Licensed Material at any time; however, doing so will not terminate
+   this Public License.
+
+d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+   License.
+
+## Section 7 – Other Terms and Conditions
+
+a. The Licensor shall not be bound by any additional or different terms
+   or conditions communicated by You unless expressly agreed.
+
+b. Any arrangements, understandings, or agreements regarding the
+   Licensed Material not stated herein are separate from and independent
+   of the terms and conditions of this Public License.
+
+## Section 8 – Interpretation
+
+a. For the avoidance of doubt, this Public License does not, and shall
+   not be interpreted to, reduce, limit, restrict, or impose conditions
+   on any use of the Licensed Material that could lawfully be made
+   without permission under this Public License.
+
+b. To the extent possible, if any provision of this Public License is
+   deemed unenforceable, it shall be automatically reformed to the
+   minimum extent necessary to make it enforceable. If the provision
+   cannot be reformed, it shall be severed from this Public License
+   without affecting the enforceability of the remaining terms and
+   conditions.
+
+c. No term or condition of this Public License will be waived and no
+   failure to comply consented to unless expressly agreed to by the
+   Licensor.
+
+d. Nothing in this Public License constitutes or may be interpreted as a
+   limitation upon, or waiver of, any privileges and immunities that
+   apply to the Licensor or You, including from the legal processes of
+   any jurisdiction or authority.
+
+Creative Commons is not a party to its public licenses.
+Notwithstanding, Creative Commons may elect to apply one of its
+public licenses to material it publishes and in those instances will
+be considered the “Licensor.” Except for the limited purpose of
+indicating that material is shared under a Creative Commons public
+license or as otherwise permitted by the Creative Commons policies
+published at
+creativecommons.org/policies <http://creativecommons.org/policies>,
+Creative Commons does not authorize the use of the trademark
+"Creative Commons" or any other trademark or logo of Creative
+Commons without its prior written consent including, without
+limitation, in connection with any unauthorized modifications to any
+of its public licenses or any other arrangements, understandings, or
+agreements concerning use of licensed material. For the avoidance of
+doubt, this paragraph does not form part of the public licenses.
+
+Creative Commons may be contacted at creativecommons.org
diff --git a/utils/rsc/licence/LGPL-V2.0 b/utils/rsc/licence/LGPL-V2.0
new file mode 100644
index 0000000000000000000000000000000000000000..55ecd87c3a1994dedeaabfe7eaf95dc10d30f495
--- /dev/null
+++ b/utils/rsc/licence/LGPL-V2.0
@@ -0,0 +1,481 @@
+                  GNU LIBRARY GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+                  GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/utils/rsc/licence/LGPL-V2.1 b/utils/rsc/licence/LGPL-V2.1
new file mode 100644
index 0000000000000000000000000000000000000000..e5ab03e1238af66de157fae2e6270d7e8f967f93
--- /dev/null
+++ b/utils/rsc/licence/LGPL-V2.1
@@ -0,0 +1,502 @@
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/utils/rsc/licence/LGPL-V3 b/utils/rsc/licence/LGPL-V3
new file mode 100644
index 0000000000000000000000000000000000000000..0d83951c8886edbb2460138a64af42deac72bbc7
--- /dev/null
+++ b/utils/rsc/licence/LGPL-V3
@@ -0,0 +1,164 @@
+                   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/utils/rsc/licence/MIT b/utils/rsc/licence/MIT
new file mode 100644
index 0000000000000000000000000000000000000000..f85e365de02a257e41b27305e74277428218ff96
--- /dev/null
+++ b/utils/rsc/licence/MIT
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/utils/rsc/licence/OFL-1.1 b/utils/rsc/licence/OFL-1.1
new file mode 100644
index 0000000000000000000000000000000000000000..22d6502adeb48e77e8f50f9722acc8e383af9bc0
--- /dev/null
+++ b/utils/rsc/licence/OFL-1.1
@@ -0,0 +1,90 @@
+Copyright (c) year, authors
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+# SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+
+## PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+## DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+## PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+   in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+   redistributed and/or sold with any software, provided that each copy
+   contains the above copyright notice and this license. These can be
+   included either as stand-alone text files, human-readable headers or
+   in the appropriate machine-readable metadata fields within text or
+   binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+   Name(s) unless explicit written permission is granted by the corresponding
+   Copyright Holder. This restriction only applies to the primary font name as
+   presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+   Software shall not be used to promote, endorse or advertise any
+   Modified Version, except to acknowledge the contribution(s) of the
+   Copyright Holder(s) and the Author(s) or with their explicit written
+   permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+   must be distributed entirely under this license, and must not be
+   distributed under any other license. The requirement for fonts to
+   remain under this license does not apply to any document created
+   using the Font Software.
+
+## TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+## DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/utils/rsc/qdarkstyle_dark.qss b/utils/rsc/qdarkstyle_dark.qss
new file mode 100644
index 0000000000000000000000000000000000000000..111a24d388536cd35c0a05c189fb95b19047c17c
--- /dev/null
+++ b/utils/rsc/qdarkstyle_dark.qss
@@ -0,0 +1,2212 @@
+/* ---------------------------------------------------------------------------
+
+    WARNING! File created programmatically. All changes made in this file will be lost!
+
+    Created by the qtsass compiler v0.3.0
+
+    The definitions are in the "qdarkstyle.qss._styles.scss" module
+
+--------------------------------------------------------------------------- */
+/* Light Style - QDarkStyleSheet ------------------------------------------ */
+/*
+
+See Qt documentation:
+
+  - https://doc.qt.io/qt-5/stylesheet.html
+  - https://doc.qt.io/qt-5/stylesheet-reference.html
+  - https://doc.qt.io/qt-5/stylesheet-examples.html
+
+--------------------------------------------------------------------------- */
+/* Reset elements ------------------------------------------------------------
+
+Resetting everything helps to unify styles across different operating systems
+
+--------------------------------------------------------------------------- */
+* {
+  padding: 0px;
+  margin: 0px;
+  border: 0px;
+  border-style: none;
+  border-image: none;
+  outline: 0;
+}
+
+/* specific reset for elements inside QToolBar */
+QToolBar * {
+  margin: 0px;
+  padding: 0px;
+}
+
+/* QWidget ----------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QWidget {
+  background-color: #19232D;
+  border: 0px solid #455364;
+  padding: 0px;
+  color: #E0E1E3;
+  selection-background-color: #346792;
+  selection-color: #E0E1E3;
+}
+
+QWidget:disabled {
+  background-color: #19232D;
+  color: #9DA9B5;
+  selection-background-color: #26486B;
+  selection-color: #9DA9B5;
+}
+
+QWidget::item:selected {
+  background-color: #346792;
+}
+
+QWidget::item:hover:!selected {
+  background-color: #1A72BB;
+}
+
+/* QMainWindow ------------------------------------------------------------
+
+This adjusts the splitter in the dock widget, not qsplitter
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow
+
+--------------------------------------------------------------------------- */
+QMainWindow::separator {
+  background-color: #455364;
+  border: 0px solid #19232D;
+  spacing: 0px;
+  padding: 2px;
+}
+
+QMainWindow::separator:hover {
+  background-color: #60798B;
+  border: 0px solid #1A72BB;
+}
+
+QMainWindow::separator:horizontal {
+  width: 5px;
+  margin-top: 2px;
+  margin-bottom: 2px;
+  image: url(":/qss_icons/dark/rc_dark/toolbar_separator_vertical.png");
+}
+
+QMainWindow::separator:vertical {
+  height: 5px;
+  margin-left: 2px;
+  margin-right: 2px;
+  image: url(":/qss_icons/dark/rc_dark/toolbar_separator_horizontal.png");
+}
+
+/* QToolTip ---------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip
+
+--------------------------------------------------------------------------- */
+QToolTip {
+  background-color: #346792;
+  color: #E0E1E3;
+  /* If you remove the border property, background stops working on Windows */
+  border: none;
+  /* Remove padding, for fix combo box tooltip */
+  padding: 0px;
+  /* Remove opacity, fix #174 - may need to use RGBA */
+}
+
+/* QStatusBar -------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar
+
+--------------------------------------------------------------------------- */
+QStatusBar {
+  border: 1px solid #455364;
+  /* Fixes Spyder #9120, #9121 */
+  background: #455364;
+  /* Fixes #205, white vertical borders separating items */
+}
+
+QStatusBar::item {
+  border: none;
+}
+
+QStatusBar QToolTip {
+  background-color: #1A72BB;
+  border: 1px solid #19232D;
+  color: #19232D;
+  /* Remove padding, for fix combo box tooltip */
+  padding: 0px;
+  /* Reducing transparency to read better */
+  opacity: 230;
+}
+
+QStatusBar QLabel {
+  /* Fixes Spyder #9120, #9121 */
+  background: transparent;
+}
+
+/* QCheckBox --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox
+
+--------------------------------------------------------------------------- */
+QCheckBox {
+  background-color: #19232D;
+  color: #E0E1E3;
+  spacing: 4px;
+  outline: none;
+  padding-top: 4px;
+  padding-bottom: 4px;
+}
+
+QCheckBox:focus {
+  border: none;
+}
+
+QCheckBox QWidget:disabled {
+  background-color: #19232D;
+  color: #9DA9B5;
+}
+
+QCheckBox::indicator {
+  margin-left: 2px;
+  height: 14px;
+  width: 14px;
+}
+
+QCheckBox::indicator:unchecked {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked.png");
+}
+
+QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed {
+  border: none;
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_focus.png");
+}
+
+QCheckBox::indicator:unchecked:disabled {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_disabled.png");
+}
+
+QCheckBox::indicator:checked {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked.png");
+}
+
+QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed {
+  border: none;
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked_focus.png");
+}
+
+QCheckBox::indicator:checked:disabled {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked_disabled.png");
+}
+
+QCheckBox::indicator:indeterminate {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate.png");
+}
+
+QCheckBox::indicator:indeterminate:disabled {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_disabled.png");
+}
+
+QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_focus.png");
+}
+
+/* QGroupBox --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox
+
+--------------------------------------------------------------------------- */
+QGroupBox {
+  font-weight: bold;
+  border: 1px solid #455364;
+  border-radius: 4px;
+  padding: 2px;
+  margin-top: 6px;
+  margin-bottom: 4px;
+}
+
+QGroupBox::title {
+  subcontrol-origin: margin;
+  subcontrol-position: top left;
+  left: 4px;
+  padding-left: 2px;
+  padding-right: 4px;
+  padding-top: -4px;
+}
+
+QGroupBox::indicator {
+  margin-left: 2px;
+  margin-top: 2px;
+  padding: 0;
+  height: 14px;
+  width: 14px;
+}
+
+QGroupBox::indicator:unchecked {
+  border: none;
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked.png");
+}
+
+QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed {
+  border: none;
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_focus.png");
+}
+
+QGroupBox::indicator:unchecked:disabled {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_disabled.png");
+}
+
+QGroupBox::indicator:checked {
+  border: none;
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked.png");
+}
+
+QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed {
+  border: none;
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked_focus.png");
+}
+
+QGroupBox::indicator:checked:disabled {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked_disabled.png");
+}
+
+/* QRadioButton -----------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton
+
+--------------------------------------------------------------------------- */
+QRadioButton {
+  background-color: #19232D;
+  color: #E0E1E3;
+  spacing: 4px;
+  padding-top: 4px;
+  padding-bottom: 4px;
+  border: none;
+  outline: none;
+}
+
+QRadioButton:focus {
+  border: none;
+}
+
+QRadioButton:disabled {
+  background-color: #19232D;
+  color: #9DA9B5;
+  border: none;
+  outline: none;
+}
+
+QRadioButton QWidget {
+  background-color: #19232D;
+  color: #E0E1E3;
+  spacing: 0px;
+  padding: 0px;
+  outline: none;
+  border: none;
+}
+
+QRadioButton::indicator {
+  border: none;
+  outline: none;
+  margin-left: 2px;
+  height: 14px;
+  width: 14px;
+}
+
+QRadioButton::indicator:unchecked {
+  image: url(":/qss_icons/dark/rc_dark/radio_unchecked.png");
+}
+
+QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/dark/rc_dark/radio_unchecked_focus.png");
+}
+
+QRadioButton::indicator:unchecked:disabled {
+  image: url(":/qss_icons/dark/rc_dark/radio_unchecked_disabled.png");
+}
+
+QRadioButton::indicator:checked {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/dark/rc_dark/radio_checked.png");
+}
+
+QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/dark/rc_dark/radio_checked_focus.png");
+}
+
+QRadioButton::indicator:checked:disabled {
+  outline: none;
+  image: url(":/qss_icons/dark/rc_dark/radio_checked_disabled.png");
+}
+
+/* QMenuBar ---------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar
+
+--------------------------------------------------------------------------- */
+QMenuBar {
+  background-color: #455364;
+  padding: 2px;
+  border: 1px solid #19232D;
+  color: #E0E1E3;
+  selection-background-color: #1A72BB;
+}
+
+QMenuBar:focus {
+  border: 1px solid #346792;
+}
+
+QMenuBar::item {
+  background: transparent;
+  padding: 4px;
+}
+
+QMenuBar::item:selected {
+  padding: 4px;
+  background: transparent;
+  border: 0px solid #455364;
+  background-color: #1A72BB;
+}
+
+QMenuBar::item:pressed {
+  padding: 4px;
+  border: 0px solid #455364;
+  background-color: #1A72BB;
+  color: #E0E1E3;
+  margin-bottom: 0px;
+  padding-bottom: 0px;
+}
+
+/* QMenu ------------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu
+
+--------------------------------------------------------------------------- */
+QMenu {
+  border: 0px solid #455364;
+  color: #E0E1E3;
+  margin: 0px;
+  background-color: #37414F;
+  selection-background-color: #1A72BB;
+}
+
+QMenu::separator {
+  height: 1px;
+  background-color: #60798B;
+  color: #E0E1E3;
+}
+
+QMenu::item {
+  background-color: #37414F;
+  padding: 4px 24px 4px 28px;
+  /* Reserve space for selection border */
+  border: 1px transparent #455364;
+}
+
+QMenu::item:selected {
+  color: #E0E1E3;
+  background-color: #1A72BB;
+}
+
+QMenu::item:pressed {
+  background-color: #1A72BB;
+}
+
+QMenu::icon {
+  padding-left: 10px;
+  width: 14px;
+  height: 14px;
+}
+
+QMenu::indicator {
+  padding-left: 8px;
+  width: 12px;
+  height: 12px;
+  /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */
+  /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */
+}
+
+QMenu::indicator:non-exclusive:unchecked {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked.png");
+}
+
+QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed {
+  border: none;
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_focus.png");
+}
+
+QMenu::indicator:non-exclusive:unchecked:disabled {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_disabled.png");
+}
+
+QMenu::indicator:non-exclusive:checked {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked.png");
+}
+
+QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed {
+  border: none;
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked_focus.png");
+}
+
+QMenu::indicator:non-exclusive:checked:disabled {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked_disabled.png");
+}
+
+QMenu::indicator:non-exclusive:indeterminate {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate.png");
+}
+
+QMenu::indicator:non-exclusive:indeterminate:disabled {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_disabled.png");
+}
+
+QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_focus.png");
+}
+
+QMenu::indicator:exclusive:unchecked {
+  image: url(":/qss_icons/dark/rc_dark/radio_unchecked.png");
+}
+
+QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/dark/rc_dark/radio_unchecked_focus.png");
+}
+
+QMenu::indicator:exclusive:unchecked:disabled {
+  image: url(":/qss_icons/dark/rc_dark/radio_unchecked_disabled.png");
+}
+
+QMenu::indicator:exclusive:checked {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/dark/rc_dark/radio_checked.png");
+}
+
+QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/dark/rc_dark/radio_checked_focus.png");
+}
+
+QMenu::indicator:exclusive:checked:disabled {
+  outline: none;
+  image: url(":/qss_icons/dark/rc_dark/radio_checked_disabled.png");
+}
+
+QMenu::right-arrow {
+  margin: 5px;
+  padding-left: 12px;
+  image: url(":/qss_icons/dark/rc_dark/arrow_right.png");
+  height: 12px;
+  width: 12px;
+}
+
+/* QAbstractItemView ------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox
+
+--------------------------------------------------------------------------- */
+QAbstractItemView {
+  alternate-background-color: #19232D;
+  color: #E0E1E3;
+  border: 1px solid #455364;
+  border-radius: 4px;
+}
+
+QAbstractItemView QLineEdit {
+  padding: 2px;
+}
+
+/* QAbstractScrollArea ----------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea
+
+--------------------------------------------------------------------------- */
+QAbstractScrollArea {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  border-radius: 4px;
+  /* fix #159 */
+  padding: 2px;
+  /* remove min-height to fix #244 */
+  color: #E0E1E3;
+}
+
+QAbstractScrollArea:disabled {
+  color: #9DA9B5;
+}
+
+/* QScrollArea ------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QScrollArea QWidget QWidget:disabled {
+  background-color: #19232D;
+}
+
+/* QScrollBar -------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar
+
+--------------------------------------------------------------------------- */
+QScrollBar:horizontal {
+  height: 16px;
+  margin: 2px 16px 2px 16px;
+  border: 1px solid #455364;
+  border-radius: 4px;
+  background-color: #19232D;
+}
+
+QScrollBar:vertical {
+  background-color: #19232D;
+  width: 16px;
+  margin: 16px 2px 16px 2px;
+  border: 1px solid #455364;
+  border-radius: 4px;
+}
+
+QScrollBar::handle:horizontal {
+  background-color: #60798B;
+  border: 1px solid #455364;
+  border-radius: 4px;
+  min-width: 8px;
+}
+
+QScrollBar::handle:horizontal:hover {
+  background-color: #346792;
+  border: #346792;
+  border-radius: 4px;
+  min-width: 8px;
+}
+
+QScrollBar::handle:horizontal:focus {
+  border: 1px solid #1A72BB;
+}
+
+QScrollBar::handle:vertical {
+  background-color: #60798B;
+  border: 1px solid #455364;
+  min-height: 8px;
+  border-radius: 4px;
+}
+
+QScrollBar::handle:vertical:hover {
+  background-color: #346792;
+  border: #346792;
+  border-radius: 4px;
+  min-height: 8px;
+}
+
+QScrollBar::handle:vertical:focus {
+  border: 1px solid #1A72BB;
+}
+
+QScrollBar::add-line:horizontal {
+  margin: 0px 0px 0px 0px;
+  border-image: url(":/qss_icons/dark/rc_dark/arrow_right_disabled.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: right;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on {
+  border-image: url(":/qss_icons/dark/rc_dark/arrow_right.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: right;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical {
+  margin: 3px 0px 3px 0px;
+  border-image: url(":/qss_icons/dark/rc_dark/arrow_down_disabled.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: bottom;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on {
+  border-image: url(":/qss_icons/dark/rc_dark/arrow_down.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: bottom;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal {
+  margin: 0px 3px 0px 3px;
+  border-image: url(":/qss_icons/dark/rc_dark/arrow_left_disabled.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: left;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on {
+  border-image: url(":/qss_icons/dark/rc_dark/arrow_left.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: left;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:vertical {
+  margin: 3px 0px 3px 0px;
+  border-image: url(":/qss_icons/dark/rc_dark/arrow_up_disabled.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: top;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on {
+  border-image: url(":/qss_icons/dark/rc_dark/arrow_up.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: top;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal {
+  background: none;
+}
+
+QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {
+  background: none;
+}
+
+QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
+  background: none;
+}
+
+QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
+  background: none;
+}
+
+/* QTextEdit --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets
+
+--------------------------------------------------------------------------- */
+QTextEdit {
+  background-color: #19232D;
+  color: #E0E1E3;
+  border-radius: 4px;
+  border: 1px solid #455364;
+}
+
+QTextEdit:focus {
+  border: 1px solid #1A72BB;
+}
+
+QTextEdit:selected {
+  background: #346792;
+  color: #455364;
+}
+
+/* QPlainTextEdit ---------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QPlainTextEdit {
+  background-color: #19232D;
+  color: #E0E1E3;
+  border-radius: 4px;
+  border: 1px solid #455364;
+}
+
+QPlainTextEdit:focus {
+  border: 1px solid #1A72BB;
+}
+
+QPlainTextEdit:selected {
+  background: #346792;
+  color: #455364;
+}
+
+/* QSizeGrip --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip
+
+--------------------------------------------------------------------------- */
+QSizeGrip {
+  background: transparent;
+  width: 12px;
+  height: 12px;
+  image: url(":/qss_icons/dark/rc_dark/window_grip.png");
+}
+
+/* QStackedWidget ---------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QStackedWidget {
+  padding: 2px;
+  border: 1px solid #455364;
+  border: 1px solid #19232D;
+}
+
+/* QToolBar ---------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar
+
+--------------------------------------------------------------------------- */
+QToolBar {
+  background-color: #455364;
+  border-bottom: 1px solid #19232D;
+  padding: 1px;
+  font-weight: bold;
+  spacing: 2px;
+}
+
+QToolBar:disabled {
+  /* Fixes #272 */
+  background-color: #455364;
+}
+
+QToolBar::handle:horizontal {
+  width: 16px;
+  image: url(":/qss_icons/dark/rc_dark/toolbar_move_horizontal.png");
+}
+
+QToolBar::handle:vertical {
+  height: 16px;
+  image: url(":/qss_icons/dark/rc_dark/toolbar_move_vertical.png");
+}
+
+QToolBar::separator:horizontal {
+  width: 16px;
+  image: url(":/qss_icons/dark/rc_dark/toolbar_separator_horizontal.png");
+}
+
+QToolBar::separator:vertical {
+  height: 16px;
+  image: url(":/qss_icons/dark/rc_dark/toolbar_separator_vertical.png");
+}
+
+QToolButton#qt_toolbar_ext_button {
+  background: #455364;
+  border: 0px;
+  color: #E0E1E3;
+  image: url(":/qss_icons/dark/rc_dark/arrow_right.png");
+}
+
+/* QAbstractSpinBox -------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QAbstractSpinBox {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  color: #E0E1E3;
+  /* This fixes 103, 111 */
+  padding-top: 2px;
+  /* This fixes 103, 111 */
+  padding-bottom: 2px;
+  padding-left: 4px;
+  padding-right: 4px;
+  border-radius: 4px;
+  /* min-width: 5px; removed to fix 109 */
+}
+
+QAbstractSpinBox:up-button {
+  background-color: transparent #19232D;
+  subcontrol-origin: border;
+  subcontrol-position: top right;
+  border-left: 1px solid #455364;
+  border-bottom: 1px solid #455364;
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+  margin: 1px;
+  width: 12px;
+  margin-bottom: -1px;
+}
+
+QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off {
+  image: url(":/qss_icons/dark/rc_dark/arrow_up_disabled.png");
+  height: 8px;
+  width: 8px;
+}
+
+QAbstractSpinBox::up-arrow:hover {
+  image: url(":/qss_icons/dark/rc_dark/arrow_up.png");
+}
+
+QAbstractSpinBox:down-button {
+  background-color: transparent #19232D;
+  subcontrol-origin: border;
+  subcontrol-position: bottom right;
+  border-left: 1px solid #455364;
+  border-top: 1px solid #455364;
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+  margin: 1px;
+  width: 12px;
+  margin-top: -1px;
+}
+
+QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off {
+  image: url(":/qss_icons/dark/rc_dark/arrow_down_disabled.png");
+  height: 8px;
+  width: 8px;
+}
+
+QAbstractSpinBox::down-arrow:hover {
+  image: url(":/qss_icons/dark/rc_dark/arrow_down.png");
+}
+
+QAbstractSpinBox:hover {
+  border: 1px solid #346792;
+  color: #E0E1E3;
+}
+
+QAbstractSpinBox:focus {
+  border: 1px solid #1A72BB;
+}
+
+QAbstractSpinBox:selected {
+  background: #346792;
+  color: #455364;
+}
+
+/* ------------------------------------------------------------------------ */
+/* DISPLAYS --------------------------------------------------------------- */
+/* ------------------------------------------------------------------------ */
+/* QLabel -----------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe
+
+--------------------------------------------------------------------------- */
+QLabel {
+  background-color: #19232D;
+  border: 0px solid #455364;
+  padding: 2px;
+  margin: 0px;
+  color: #E0E1E3;
+}
+
+QLabel:disabled {
+  background-color: #19232D;
+  border: 0px solid #455364;
+  color: #9DA9B5;
+}
+
+/* QTextBrowser -----------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea
+
+--------------------------------------------------------------------------- */
+QTextBrowser {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  color: #E0E1E3;
+  border-radius: 4px;
+}
+
+QTextBrowser:disabled {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  color: #9DA9B5;
+  border-radius: 4px;
+}
+
+QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed {
+  border: 1px solid #455364;
+}
+
+/* QGraphicsView ----------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QGraphicsView {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  color: #E0E1E3;
+  border-radius: 4px;
+}
+
+QGraphicsView:disabled {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  color: #9DA9B5;
+  border-radius: 4px;
+}
+
+QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed {
+  border: 1px solid #455364;
+}
+
+/* QCalendarWidget --------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QCalendarWidget {
+  border: 1px solid #455364;
+  border-radius: 4px;
+}
+
+QCalendarWidget:disabled {
+  background-color: #19232D;
+  color: #9DA9B5;
+}
+
+/* QLCDNumber -------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QLCDNumber {
+  background-color: #19232D;
+  color: #E0E1E3;
+}
+
+QLCDNumber:disabled {
+  background-color: #19232D;
+  color: #9DA9B5;
+}
+
+/* QProgressBar -----------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar
+
+--------------------------------------------------------------------------- */
+QProgressBar {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  color: #E0E1E3;
+  border-radius: 4px;
+  text-align: center;
+}
+
+QProgressBar:disabled {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  color: #9DA9B5;
+  border-radius: 4px;
+  text-align: center;
+}
+
+QProgressBar::chunk {
+  background-color: #346792;
+  color: #19232D;
+  border-radius: 4px;
+}
+
+QProgressBar::chunk:disabled {
+  background-color: #26486B;
+  color: #9DA9B5;
+  border-radius: 4px;
+}
+
+/* ------------------------------------------------------------------------ */
+/* BUTTONS ---------------------------------------------------------------- */
+/* ------------------------------------------------------------------------ */
+/* QPushButton ------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton
+
+--------------------------------------------------------------------------- */
+QPushButton {
+  background-color: #455364;
+  color: #E0E1E3;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+  border: none;
+}
+
+QPushButton:disabled {
+  background-color: #455364;
+  color: #9DA9B5;
+  border-radius: 4px;
+  padding: 2px;
+}
+
+QPushButton:checked {
+  background-color: #60798B;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+}
+
+QPushButton:checked:disabled {
+  background-color: #60798B;
+  color: #9DA9B5;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+}
+
+QPushButton:checked:selected {
+  background: #60798B;
+}
+
+QPushButton:hover {
+  background-color: #54687A;
+  color: #E0E1E3;
+}
+
+QPushButton:pressed {
+  background-color: #60798B;
+}
+
+QPushButton:selected {
+  background: #60798B;
+  color: #E0E1E3;
+}
+
+QPushButton::menu-indicator {
+  subcontrol-origin: padding;
+  subcontrol-position: bottom right;
+  bottom: 4px;
+}
+
+QDialogButtonBox QPushButton {
+  /* Issue #194 #248 - Special case of QPushButton inside dialogs, for better UI */
+  min-width: 80px;
+}
+
+/* QToolButton ------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton
+
+--------------------------------------------------------------------------- */
+QToolButton {
+  background-color: #455364;
+  color: #E0E1E3;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+  border: none;
+  /* The subcontrols below are used only in the DelayedPopup mode */
+  /* The subcontrols below are used only in the MenuButtonPopup mode */
+  /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */
+}
+
+QToolButton:disabled {
+  background-color: #455364;
+  color: #9DA9B5;
+  border-radius: 4px;
+  padding: 2px;
+}
+
+QToolButton:checked {
+  background-color: #60798B;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+}
+
+QToolButton:checked:disabled {
+  background-color: #60798B;
+  color: #9DA9B5;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+}
+
+QToolButton:checked:hover {
+  background-color: #54687A;
+  color: #E0E1E3;
+}
+
+QToolButton:checked:pressed {
+  background-color: #60798B;
+}
+
+QToolButton:checked:selected {
+  background: #60798B;
+  color: #E0E1E3;
+}
+
+QToolButton:hover {
+  background-color: #54687A;
+  color: #E0E1E3;
+}
+
+QToolButton:pressed {
+  background-color: #60798B;
+}
+
+QToolButton:selected {
+  background: #60798B;
+  color: #E0E1E3;
+}
+
+QToolButton[popupMode="0"] {
+  /* Only for DelayedPopup */
+  padding-right: 2px;
+}
+
+QToolButton[popupMode="1"] {
+  /* Only for MenuButtonPopup */
+  padding-right: 20px;
+}
+
+QToolButton[popupMode="1"]::menu-button {
+  border: none;
+}
+
+QToolButton[popupMode="1"]::menu-button:hover {
+  border: none;
+  border-left: 1px solid #455364;
+  border-radius: 0;
+}
+
+QToolButton[popupMode="2"] {
+  /* Only for InstantPopup */
+  padding-right: 2px;
+}
+
+QToolButton::menu-button {
+  padding: 2px;
+  border-radius: 4px;
+  width: 12px;
+  border: none;
+  outline: none;
+}
+
+QToolButton::menu-button:hover {
+  border: 1px solid #346792;
+}
+
+QToolButton::menu-button:checked:hover {
+  border: 1px solid #346792;
+}
+
+QToolButton::menu-indicator {
+  image: url(":/qss_icons/dark/rc_dark/arrow_down.png");
+  height: 8px;
+  width: 8px;
+  top: 0;
+  /* Exclude a shift for better image */
+  left: -2px;
+  /* Shift it a bit */
+}
+
+QToolButton::menu-arrow {
+  image: url(":/qss_icons/dark/rc_dark/arrow_down.png");
+  height: 8px;
+  width: 8px;
+}
+
+QToolButton::menu-arrow:hover {
+  image: url(":/qss_icons/dark/rc_dark/arrow_down_focus.png");
+}
+
+/* QCommandLinkButton -----------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QCommandLinkButton {
+  background-color: transparent;
+  border: 1px solid #455364;
+  color: #E0E1E3;
+  border-radius: 4px;
+  padding: 0px;
+  margin: 0px;
+}
+
+QCommandLinkButton:disabled {
+  background-color: transparent;
+  color: #9DA9B5;
+}
+
+/* ------------------------------------------------------------------------ */
+/* INPUTS - NO FIELDS ----------------------------------------------------- */
+/* ------------------------------------------------------------------------ */
+/* QComboBox --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox
+
+--------------------------------------------------------------------------- */
+QComboBox {
+  border: 1px solid #455364;
+  border-radius: 4px;
+  selection-background-color: #346792;
+  padding-left: 4px;
+  padding-right: 4px;
+  /* padding-right = 36; 4 + 16*2 See scrollbar size */
+  /* changed to 4px to fix #239 */
+  /* Fixes #103, #111 */
+  min-height: 1.5em;
+  /* padding-top: 2px;     removed to fix #132 */
+  /* padding-bottom: 2px;  removed to fix #132 */
+  /* min-width: 75px;      removed to fix #109 */
+  /* Needed to remove indicator - fix #132 */
+}
+
+QComboBox QAbstractItemView {
+  border: 1px solid #455364;
+  border-radius: 0;
+  background-color: #19232D;
+  selection-background-color: #346792;
+}
+
+QComboBox QAbstractItemView:hover {
+  background-color: #19232D;
+  color: #E0E1E3;
+}
+
+QComboBox QAbstractItemView:selected {
+  background: #346792;
+  color: #455364;
+}
+
+QComboBox QAbstractItemView:alternate {
+  background: #19232D;
+}
+
+QComboBox:disabled {
+  background-color: #19232D;
+  color: #9DA9B5;
+}
+
+QComboBox:hover {
+  border: 1px solid #346792;
+}
+
+QComboBox:focus {
+  border: 1px solid #1A72BB;
+}
+
+QComboBox:on {
+  selection-background-color: #346792;
+}
+
+QComboBox::indicator {
+  border: none;
+  border-radius: 0;
+  background-color: transparent;
+  selection-background-color: transparent;
+  color: transparent;
+  selection-color: transparent;
+  /* Needed to remove indicator - fix #132 */
+}
+
+QComboBox::indicator:alternate {
+  background: #19232D;
+}
+
+QComboBox::item:alternate {
+  background: #19232D;
+}
+
+QComboBox::item:checked {
+  font-weight: bold;
+}
+
+QComboBox::item:selected {
+  border: 0px solid transparent;
+}
+
+QComboBox::drop-down {
+  subcontrol-origin: padding;
+  subcontrol-position: top right;
+  width: 12px;
+  border-left: 1px solid #455364;
+}
+
+QComboBox::down-arrow {
+  image: url(":/qss_icons/dark/rc_dark/arrow_down_disabled.png");
+  height: 8px;
+  width: 8px;
+}
+
+QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus {
+  image: url(":/qss_icons/dark/rc_dark/arrow_down.png");
+}
+
+/* QSlider ----------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider
+
+--------------------------------------------------------------------------- */
+QSlider:disabled {
+  background: #19232D;
+}
+
+QSlider:focus {
+  border: none;
+}
+
+QSlider::groove:horizontal {
+  background: #455364;
+  border: 1px solid #455364;
+  height: 4px;
+  margin: 0px;
+  border-radius: 4px;
+}
+
+QSlider::groove:vertical {
+  background: #455364;
+  border: 1px solid #455364;
+  width: 4px;
+  margin: 0px;
+  border-radius: 4px;
+}
+
+QSlider::add-page:vertical {
+  background: #346792;
+  border: 1px solid #455364;
+  width: 4px;
+  margin: 0px;
+  border-radius: 4px;
+}
+
+QSlider::add-page:vertical :disabled {
+  background: #26486B;
+}
+
+QSlider::sub-page:horizontal {
+  background: #346792;
+  border: 1px solid #455364;
+  height: 4px;
+  margin: 0px;
+  border-radius: 4px;
+}
+
+QSlider::sub-page:horizontal:disabled {
+  background: #26486B;
+}
+
+QSlider::handle:horizontal {
+  background: #9DA9B5;
+  border: 1px solid #455364;
+  width: 8px;
+  height: 8px;
+  margin: -8px 0px;
+  border-radius: 4px;
+}
+
+QSlider::handle:horizontal:hover {
+  background: #346792;
+  border: 1px solid #346792;
+}
+
+QSlider::handle:horizontal:focus {
+  border: 1px solid #1A72BB;
+}
+
+QSlider::handle:vertical {
+  background: #9DA9B5;
+  border: 1px solid #455364;
+  width: 8px;
+  height: 8px;
+  margin: 0 -8px;
+  border-radius: 4px;
+}
+
+QSlider::handle:vertical:hover {
+  background: #346792;
+  border: 1px solid #346792;
+}
+
+QSlider::handle:vertical:focus {
+  border: 1px solid #1A72BB;
+}
+
+/* QLineEdit --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit
+
+--------------------------------------------------------------------------- */
+QLineEdit {
+  background-color: #19232D;
+  padding-top: 2px;
+  /* This QLineEdit fix  103, 111 */
+  padding-bottom: 2px;
+  /* This QLineEdit fix  103, 111 */
+  padding-left: 4px;
+  padding-right: 4px;
+  border-style: solid;
+  border: 1px solid #455364;
+  border-radius: 4px;
+  color: #E0E1E3;
+}
+
+QLineEdit:disabled {
+  background-color: #19232D;
+  color: #9DA9B5;
+}
+
+QLineEdit:hover {
+  border: 1px solid #346792;
+  color: #E0E1E3;
+}
+
+QLineEdit:focus {
+  border: 1px solid #1A72BB;
+}
+
+QLineEdit:selected {
+  background-color: #346792;
+  color: #455364;
+}
+
+/* QTabWiget --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar
+
+--------------------------------------------------------------------------- */
+QTabWidget {
+  padding: 2px;
+  selection-background-color: #455364;
+}
+
+QTabWidget QWidget {
+  /* Fixes #189 */
+  border-radius: 4px;
+}
+
+QTabWidget::pane {
+  border: 1px solid #455364;
+  border-radius: 4px;
+  margin: 0px;
+  /* Fixes double border inside pane with pyqt5 */
+  padding: 0px;
+}
+
+QTabWidget::pane:selected {
+  background-color: #455364;
+  border: 1px solid #346792;
+}
+
+/* QTabBar ----------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar
+
+--------------------------------------------------------------------------- */
+QTabBar, QDockWidget QTabBar {
+  qproperty-drawBase: 0;
+  border-radius: 4px;
+  margin: 0px;
+  padding: 2px;
+  border: 0;
+  /* left: 5px; move to the right by 5px - removed for fix */
+}
+
+QTabBar::close-button, QDockWidget QTabBar::close-button {
+  border: 0;
+  margin: 0;
+  padding: 4px;
+  image: url(":/qss_icons/dark/rc_dark/window_close.png");
+}
+
+QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover {
+  image: url(":/qss_icons/dark/rc_dark/window_close_focus.png");
+}
+
+QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed {
+  image: url(":/qss_icons/dark/rc_dark/window_close_pressed.png");
+}
+
+QTabBar::tab, QDockWidget QTabBar::tab {
+  /* !selected and disabled ----------------------------------------- */
+  /* selected ------------------------------------------------------- */
+}
+
+QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled {
+  border-bottom: 3px solid #26486B;
+  color: #9DA9B5;
+  background-color: #455364;
+}
+
+QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled {
+  border-top: 3px solid #26486B;
+  color: #9DA9B5;
+  background-color: #455364;
+}
+
+QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled {
+  border-right: 3px solid #26486B;
+  color: #9DA9B5;
+  background-color: #455364;
+}
+
+QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled {
+  border-left: 3px solid #26486B;
+  color: #9DA9B5;
+  background-color: #455364;
+}
+
+QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled {
+  border-bottom: 3px solid #19232D;
+  color: #9DA9B5;
+  background-color: #19232D;
+}
+
+QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled {
+  border-top: 3px solid #19232D;
+  color: #9DA9B5;
+  background-color: #19232D;
+}
+
+QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled {
+  border-right: 3px solid #19232D;
+  color: #9DA9B5;
+  background-color: #19232D;
+}
+
+QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled {
+  border-left: 3px solid #19232D;
+  color: #9DA9B5;
+  background-color: #19232D;
+}
+
+QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected {
+  border-bottom: 2px solid #19232D;
+  margin-top: 2px;
+}
+
+QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected {
+  border-top: 2px solid #19232D;
+  margin-bottom: 2px;
+}
+
+QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected {
+  border-left: 2px solid #19232D;
+  margin-right: 2px;
+}
+
+QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected {
+  border-right: 2px solid #19232D;
+  margin-left: 2px;
+}
+
+QTabBar::tab:top, QDockWidget QTabBar::tab:top {
+  background-color: #455364;
+  margin-left: 2px;
+  padding-left: 4px;
+  padding-right: 4px;
+  padding-top: 2px;
+  padding-bottom: 2px;
+  min-width: 5px;
+  border-bottom: 3px solid #455364;
+  border-top-left-radius: 4px;
+  border-top-right-radius: 4px;
+}
+
+QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected {
+  background-color: #54687A;
+  border-bottom: 3px solid #259AE9;
+  border-top-left-radius: 4px;
+  border-top-right-radius: 4px;
+}
+
+QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover {
+  border: 1px solid #1A72BB;
+  border-bottom: 3px solid #1A72BB;
+  /* Fixes spyder-ide/spyder#9766 and #243 */
+  padding-left: 3px;
+  padding-right: 3px;
+}
+
+QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom {
+  border-top: 3px solid #455364;
+  background-color: #455364;
+  margin-left: 2px;
+  padding-left: 4px;
+  padding-right: 4px;
+  padding-top: 2px;
+  padding-bottom: 2px;
+  border-bottom-left-radius: 4px;
+  border-bottom-right-radius: 4px;
+  min-width: 5px;
+}
+
+QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected {
+  background-color: #54687A;
+  border-top: 3px solid #259AE9;
+  border-bottom-left-radius: 4px;
+  border-bottom-right-radius: 4px;
+}
+
+QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover {
+  border: 1px solid #1A72BB;
+  border-top: 3px solid #1A72BB;
+  /* Fixes spyder-ide/spyder#9766 and #243 */
+  padding-left: 3px;
+  padding-right: 3px;
+}
+
+QTabBar::tab:left, QDockWidget QTabBar::tab:left {
+  background-color: #455364;
+  margin-top: 2px;
+  padding-left: 2px;
+  padding-right: 2px;
+  padding-top: 4px;
+  padding-bottom: 4px;
+  border-top-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+  min-height: 5px;
+}
+
+QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected {
+  background-color: #54687A;
+  border-right: 3px solid #259AE9;
+}
+
+QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover {
+  border: 1px solid #1A72BB;
+  border-right: 3px solid #1A72BB;
+  /* Fixes different behavior #271 */
+  margin-right: 0px;
+  padding-right: -1px;
+}
+
+QTabBar::tab:right, QDockWidget QTabBar::tab:right {
+  background-color: #455364;
+  margin-top: 2px;
+  padding-left: 2px;
+  padding-right: 2px;
+  padding-top: 4px;
+  padding-bottom: 4px;
+  border-top-right-radius: 4px;
+  border-bottom-right-radius: 4px;
+  min-height: 5px;
+}
+
+QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected {
+  background-color: #54687A;
+  border-left: 3px solid #259AE9;
+}
+
+QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover {
+  border: 1px solid #1A72BB;
+  border-left: 3px solid #1A72BB;
+  /* Fixes different behavior #271 */
+  margin-left: 0px;
+  padding-left: 0px;
+}
+
+QTabBar QToolButton, QDockWidget QTabBar QToolButton {
+  /* Fixes #136 */
+  background-color: #455364;
+  height: 12px;
+  width: 12px;
+}
+
+QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed {
+  background-color: #455364;
+}
+
+QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover {
+  border: 1px solid #346792;
+}
+
+QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled {
+  image: url(":/qss_icons/dark/rc_dark/arrow_left.png");
+}
+
+QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled {
+  image: url(":/qss_icons/dark/rc_dark/arrow_left_disabled.png");
+}
+
+QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled {
+  image: url(":/qss_icons/dark/rc_dark/arrow_right.png");
+}
+
+QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled {
+  image: url(":/qss_icons/dark/rc_dark/arrow_right_disabled.png");
+}
+
+/* QDockWiget -------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QDockWidget {
+  outline: 1px solid #455364;
+  background-color: #19232D;
+  border: 1px solid #455364;
+  border-radius: 4px;
+  titlebar-close-icon: url(":/qss_icons/dark/rc_dark/transparent.png");
+  titlebar-normal-icon: url(":/qss_icons/dark/rc_dark/transparent.png");
+}
+
+QDockWidget::title {
+  /* Better size for title bar */
+  padding: 3px;
+  spacing: 4px;
+  border: none;
+  background-color: #455364;
+}
+
+QDockWidget::close-button {
+  icon-size: 12px;
+  border: none;
+  background: transparent;
+  background-image: transparent;
+  border: 0;
+  margin: 0;
+  padding: 0;
+  image: url(":/qss_icons/dark/rc_dark/window_close.png");
+}
+
+QDockWidget::close-button:hover {
+  image: url(":/qss_icons/dark/rc_dark/window_close_focus.png");
+}
+
+QDockWidget::close-button:pressed {
+  image: url(":/qss_icons/dark/rc_dark/window_close_pressed.png");
+}
+
+QDockWidget::float-button {
+  icon-size: 12px;
+  border: none;
+  background: transparent;
+  background-image: transparent;
+  border: 0;
+  margin: 0;
+  padding: 0;
+  image: url(":/qss_icons/dark/rc_dark/window_undock.png");
+}
+
+QDockWidget::float-button:hover {
+  image: url(":/qss_icons/dark/rc_dark/window_undock_focus.png");
+}
+
+QDockWidget::float-button:pressed {
+  image: url(":/qss_icons/dark/rc_dark/window_undock_pressed.png");
+}
+
+/* QTreeView QListView QTableView -----------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview
+
+--------------------------------------------------------------------------- */
+QTreeView:branch:selected, QTreeView:branch:hover {
+  background: url(":/qss_icons/dark/rc_dark/transparent.png");
+}
+
+QTreeView:branch:has-siblings:!adjoins-item {
+  border-image: url(":/qss_icons/dark/rc_dark/branch_line.png") 0;
+}
+
+QTreeView:branch:has-siblings:adjoins-item {
+  border-image: url(":/qss_icons/dark/rc_dark/branch_more.png") 0;
+}
+
+QTreeView:branch:!has-children:!has-siblings:adjoins-item {
+  border-image: url(":/qss_icons/dark/rc_dark/branch_end.png") 0;
+}
+
+QTreeView:branch:has-children:!has-siblings:closed, QTreeView:branch:closed:has-children:has-siblings {
+  border-image: none;
+  image: url(":/qss_icons/dark/rc_dark/branch_closed.png");
+}
+
+QTreeView:branch:open:has-children:!has-siblings, QTreeView:branch:open:has-children:has-siblings {
+  border-image: none;
+  image: url(":/qss_icons/dark/rc_dark/branch_open.png");
+}
+
+QTreeView:branch:has-children:!has-siblings:closed:hover, QTreeView:branch:closed:has-children:has-siblings:hover {
+  image: url(":/qss_icons/dark/rc_dark/branch_closed_focus.png");
+}
+
+QTreeView:branch:open:has-children:!has-siblings:hover, QTreeView:branch:open:has-children:has-siblings:hover {
+  image: url(":/qss_icons/dark/rc_dark/branch_open_focus.png");
+}
+
+QTreeView::indicator:checked,
+QListView::indicator:checked,
+QTableView::indicator:checked,
+QColumnView::indicator:checked {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked.png");
+}
+
+QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed,
+QListView::indicator:checked:hover,
+QListView::indicator:checked:focus,
+QListView::indicator:checked:pressed,
+QTableView::indicator:checked:hover,
+QTableView::indicator:checked:focus,
+QTableView::indicator:checked:pressed,
+QColumnView::indicator:checked:hover,
+QColumnView::indicator:checked:focus,
+QColumnView::indicator:checked:pressed {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_checked_focus.png");
+}
+
+QTreeView::indicator:unchecked,
+QListView::indicator:unchecked,
+QTableView::indicator:unchecked,
+QColumnView::indicator:unchecked {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked.png");
+}
+
+QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed,
+QListView::indicator:unchecked:hover,
+QListView::indicator:unchecked:focus,
+QListView::indicator:unchecked:pressed,
+QTableView::indicator:unchecked:hover,
+QTableView::indicator:unchecked:focus,
+QTableView::indicator:unchecked:pressed,
+QColumnView::indicator:unchecked:hover,
+QColumnView::indicator:unchecked:focus,
+QColumnView::indicator:unchecked:pressed {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_focus.png");
+}
+
+QTreeView::indicator:indeterminate,
+QListView::indicator:indeterminate,
+QTableView::indicator:indeterminate,
+QColumnView::indicator:indeterminate {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate.png");
+}
+
+QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed,
+QListView::indicator:indeterminate:hover,
+QListView::indicator:indeterminate:focus,
+QListView::indicator:indeterminate:pressed,
+QTableView::indicator:indeterminate:hover,
+QTableView::indicator:indeterminate:focus,
+QTableView::indicator:indeterminate:pressed,
+QColumnView::indicator:indeterminate:hover,
+QColumnView::indicator:indeterminate:focus,
+QColumnView::indicator:indeterminate:pressed {
+  image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_focus.png");
+}
+
+QTreeView,
+QListView,
+QTableView,
+QColumnView {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  color: #E0E1E3;
+  gridline-color: #455364;
+  border-radius: 4px;
+}
+
+QTreeView:disabled,
+QListView:disabled,
+QTableView:disabled,
+QColumnView:disabled {
+  background-color: #19232D;
+  color: #9DA9B5;
+}
+
+QTreeView:selected,
+QListView:selected,
+QTableView:selected,
+QColumnView:selected {
+  background-color: #346792;
+  color: #455364;
+}
+
+QTreeView:focus,
+QListView:focus,
+QTableView:focus,
+QColumnView:focus {
+  border: 1px solid #1A72BB;
+}
+
+QTreeView::item:pressed,
+QListView::item:pressed,
+QTableView::item:pressed,
+QColumnView::item:pressed {
+  background-color: #346792;
+}
+
+QTreeView::item:selected:active,
+QListView::item:selected:active,
+QTableView::item:selected:active,
+QColumnView::item:selected:active {
+  background-color: #346792;
+}
+
+QTreeView::item:selected:!active,
+QListView::item:selected:!active,
+QTableView::item:selected:!active,
+QColumnView::item:selected:!active {
+  color: #E0E1E3;
+  background-color: #37414F;
+}
+
+QTreeView::item:!selected:hover,
+QListView::item:!selected:hover,
+QTableView::item:!selected:hover,
+QColumnView::item:!selected:hover {
+  outline: 0;
+  color: #E0E1E3;
+  background-color: #37414F;
+}
+
+QTableCornerButton::section {
+  background-color: #19232D;
+  border: 1px transparent #455364;
+  border-radius: 0px;
+}
+
+/* QHeaderView ------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview
+
+--------------------------------------------------------------------------- */
+QHeaderView {
+  background-color: #455364;
+  border: 0px transparent #455364;
+  padding: 0;
+  margin: 0;
+  border-radius: 0;
+}
+
+QHeaderView:disabled {
+  background-color: #455364;
+  border: 1px transparent #455364;
+}
+
+QHeaderView::section {
+  background-color: #455364;
+  color: #E0E1E3;
+  border-radius: 0;
+  text-align: left;
+  font-size: 13px;
+}
+
+QHeaderView::section::horizontal {
+  padding-top: 0;
+  padding-bottom: 0;
+  padding-left: 4px;
+  padding-right: 4px;
+  border-left: 1px solid #19232D;
+}
+
+QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one {
+  border-left: 1px solid #455364;
+}
+
+QHeaderView::section::horizontal:disabled {
+  color: #9DA9B5;
+}
+
+QHeaderView::section::vertical {
+  padding-top: 0;
+  padding-bottom: 0;
+  padding-left: 4px;
+  padding-right: 4px;
+  border-top: 1px solid #19232D;
+}
+
+QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one {
+  border-top: 1px solid #455364;
+}
+
+QHeaderView::section::vertical:disabled {
+  color: #9DA9B5;
+}
+
+QHeaderView::down-arrow {
+  /* Those settings (border/width/height/background-color) solve bug */
+  /* transparent arrow background and size */
+  background-color: #455364;
+  border: none;
+  height: 12px;
+  width: 12px;
+  padding-left: 2px;
+  padding-right: 2px;
+  image: url(":/qss_icons/dark/rc_dark/arrow_down.png");
+}
+
+QHeaderView::up-arrow {
+  background-color: #455364;
+  border: none;
+  height: 12px;
+  width: 12px;
+  padding-left: 2px;
+  padding-right: 2px;
+  image: url(":/qss_icons/dark/rc_dark/arrow_up.png");
+}
+
+/* QToolBox --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox
+
+--------------------------------------------------------------------------- */
+QToolBox {
+  padding: 0px;
+  border: 0px;
+  border: 1px solid #455364;
+}
+
+QToolBox:selected {
+  padding: 0px;
+  border: 2px solid #346792;
+}
+
+QToolBox::tab {
+  background-color: #19232D;
+  border: 1px solid #455364;
+  color: #E0E1E3;
+  border-top-left-radius: 4px;
+  border-top-right-radius: 4px;
+}
+
+QToolBox::tab:disabled {
+  color: #9DA9B5;
+}
+
+QToolBox::tab:selected {
+  background-color: #60798B;
+  border-bottom: 2px solid #346792;
+}
+
+QToolBox::tab:selected:disabled {
+  background-color: #455364;
+  border-bottom: 2px solid #26486B;
+}
+
+QToolBox::tab:!selected {
+  background-color: #455364;
+  border-bottom: 2px solid #455364;
+}
+
+QToolBox::tab:!selected:disabled {
+  background-color: #19232D;
+}
+
+QToolBox::tab:hover {
+  border-color: #1A72BB;
+  border-bottom: 2px solid #1A72BB;
+}
+
+QToolBox QScrollArea QWidget QWidget {
+  padding: 0px;
+  border: 0px;
+  background-color: #19232D;
+}
+
+/* QFrame -----------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe
+https://doc.qt.io/qt-5/qframe.html#-prop
+https://doc.qt.io/qt-5/qframe.html#details
+https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color
+
+--------------------------------------------------------------------------- */
+/* (dot) .QFrame  fix #141, #126, #123 */
+.QFrame {
+  border-radius: 4px;
+  border: 1px solid #455364;
+  /* No frame */
+  /* HLine */
+  /* HLine */
+}
+
+.QFrame[frameShape="0"] {
+  border-radius: 4px;
+  border: 1px transparent #455364;
+}
+
+.QFrame[frameShape="4"] {
+  max-height: 2px;
+  border: none;
+  background-color: #455364;
+}
+
+.QFrame[frameShape="5"] {
+  max-width: 2px;
+  border: none;
+  background-color: #455364;
+}
+
+/* QSplitter --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter
+
+--------------------------------------------------------------------------- */
+QSplitter {
+  background-color: #455364;
+  spacing: 0px;
+  padding: 0px;
+  margin: 0px;
+}
+
+QSplitter::handle {
+  background-color: #455364;
+  border: 0px solid #19232D;
+  spacing: 0px;
+  padding: 1px;
+  margin: 0px;
+}
+
+QSplitter::handle:hover {
+  background-color: #9DA9B5;
+}
+
+QSplitter::handle:horizontal {
+  width: 5px;
+  image: url(":/qss_icons/dark/rc_dark/line_vertical.png");
+}
+
+QSplitter::handle:vertical {
+  height: 5px;
+  image: url(":/qss_icons/dark/rc_dark/line_horizontal.png");
+}
+
+/* QDateEdit, QDateTimeEdit -----------------------------------------------
+
+--------------------------------------------------------------------------- */
+QDateEdit, QDateTimeEdit {
+  selection-background-color: #346792;
+  border-style: solid;
+  border: 1px solid #455364;
+  border-radius: 4px;
+  /* This fixes 103, 111 */
+  padding-top: 2px;
+  /* This fixes 103, 111 */
+  padding-bottom: 2px;
+  padding-left: 4px;
+  padding-right: 4px;
+  min-width: 10px;
+}
+
+QDateEdit:on, QDateTimeEdit:on {
+  selection-background-color: #346792;
+}
+
+QDateEdit::drop-down, QDateTimeEdit::drop-down {
+  subcontrol-origin: padding;
+  subcontrol-position: top right;
+  width: 12px;
+  border-left: 1px solid #455364;
+}
+
+QDateEdit::down-arrow, QDateTimeEdit::down-arrow {
+  image: url(":/qss_icons/dark/rc_dark/arrow_down_disabled.png");
+  height: 8px;
+  width: 8px;
+}
+
+QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus {
+  image: url(":/qss_icons/dark/rc_dark/arrow_down.png");
+}
+
+QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView {
+  background-color: #19232D;
+  border-radius: 4px;
+  border: 1px solid #455364;
+  selection-background-color: #346792;
+}
+
+/* QAbstractView ----------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QAbstractView:hover {
+  border: 1px solid #346792;
+  color: #E0E1E3;
+}
+
+QAbstractView:selected {
+  background: #346792;
+  color: #455364;
+}
+
+/* PlotWidget -------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+PlotWidget {
+  /* Fix cut labels in plots #134 */
+  padding: 0px;
+}
diff --git a/utils/rsc/qdarkstyle_light.qss b/utils/rsc/qdarkstyle_light.qss
new file mode 100644
index 0000000000000000000000000000000000000000..4fa86e125e84aff13b7b565d664a68fab52db0c3
--- /dev/null
+++ b/utils/rsc/qdarkstyle_light.qss
@@ -0,0 +1,2212 @@
+/* ---------------------------------------------------------------------------
+
+    WARNING! File created programmatically. All changes made in this file will be lost!
+
+    Created by the qtsass compiler v0.3.0
+
+    The definitions are in the "qdarkstyle.qss._styles.scss" module
+
+--------------------------------------------------------------------------- */
+/* Dark Style - QDarkStyleSheet ------------------------------------------ */
+/*
+
+See Qt documentation:
+
+  - https://doc.qt.io/qt-5/stylesheet.html
+  - https://doc.qt.io/qt-5/stylesheet-reference.html
+  - https://doc.qt.io/qt-5/stylesheet-examples.html
+
+--------------------------------------------------------------------------- */
+/* Reset elements ------------------------------------------------------------
+
+Resetting everything helps to unify styles across different operating systems
+
+--------------------------------------------------------------------------- */
+* {
+  padding: 0px;
+  margin: 0px;
+  border: 0px;
+  border-style: none;
+  border-image: none;
+  outline: 0;
+}
+
+/* specific reset for elements inside QToolBar */
+QToolBar * {
+  margin: 0px;
+  padding: 0px;
+}
+
+/* QWidget ----------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QWidget {
+  background-color: #FAFAFA;
+  border: 0px solid #C9CDD0;
+  padding: 0px;
+  color: #19232D;
+  selection-background-color: #9FCBFF;
+  selection-color: #19232D;
+}
+
+QWidget:disabled {
+  background-color: #FAFAFA;
+  color: #788D9C;
+  selection-background-color: #DAEDFF;
+  selection-color: #788D9C;
+}
+
+QWidget::item:selected {
+  background-color: #9FCBFF;
+}
+
+QWidget::item:hover:!selected {
+  background-color: #73C7FF;
+}
+
+/* QMainWindow ------------------------------------------------------------
+
+This adjusts the splitter in the dock widget, not qsplitter
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow
+
+--------------------------------------------------------------------------- */
+QMainWindow::separator {
+  background-color: #C9CDD0;
+  border: 0px solid #FAFAFA;
+  spacing: 0px;
+  padding: 2px;
+}
+
+QMainWindow::separator:hover {
+  background-color: #ACB1B6;
+  border: 0px solid #73C7FF;
+}
+
+QMainWindow::separator:horizontal {
+  width: 5px;
+  margin-top: 2px;
+  margin-bottom: 2px;
+  image: url(":/qss_icons/light/rc_light/toolbar_separator_vertical.png");
+}
+
+QMainWindow::separator:vertical {
+  height: 5px;
+  margin-left: 2px;
+  margin-right: 2px;
+  image: url(":/qss_icons/light/rc_light/toolbar_separator_horizontal.png");
+}
+
+/* QToolTip ---------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip
+
+--------------------------------------------------------------------------- */
+QToolTip {
+  background-color: #9FCBFF;
+  color: #19232D;
+  /* If you remove the border property, background stops working on Windows */
+  border: none;
+  /* Remove padding, for fix combo box tooltip */
+  padding: 0px;
+  /* Remove opacity, fix #174 - may need to use RGBA */
+}
+
+/* QStatusBar -------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar
+
+--------------------------------------------------------------------------- */
+QStatusBar {
+  border: 1px solid #C9CDD0;
+  /* Fixes Spyder #9120, #9121 */
+  background: #C9CDD0;
+  /* Fixes #205, white vertical borders separating items */
+}
+
+QStatusBar::item {
+  border: none;
+}
+
+QStatusBar QToolTip {
+  background-color: #73C7FF;
+  border: 1px solid #FAFAFA;
+  color: #FAFAFA;
+  /* Remove padding, for fix combo box tooltip */
+  padding: 0px;
+  /* Reducing transparency to read better */
+  opacity: 230;
+}
+
+QStatusBar QLabel {
+  /* Fixes Spyder #9120, #9121 */
+  background: transparent;
+}
+
+/* QCheckBox --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox
+
+--------------------------------------------------------------------------- */
+QCheckBox {
+  background-color: #FAFAFA;
+  color: #19232D;
+  spacing: 4px;
+  outline: none;
+  padding-top: 4px;
+  padding-bottom: 4px;
+}
+
+QCheckBox:focus {
+  border: none;
+}
+
+QCheckBox QWidget:disabled {
+  background-color: #FAFAFA;
+  color: #788D9C;
+}
+
+QCheckBox::indicator {
+  margin-left: 2px;
+  height: 14px;
+  width: 14px;
+}
+
+QCheckBox::indicator:unchecked {
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked.png");
+}
+
+QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed {
+  border: none;
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked_focus.png");
+}
+
+QCheckBox::indicator:unchecked:disabled {
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked_disabled.png");
+}
+
+QCheckBox::indicator:checked {
+  image: url(":/qss_icons/light/rc_light/checkbox_checked.png");
+}
+
+QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed {
+  border: none;
+  image: url(":/qss_icons/light/rc_light/checkbox_checked_focus.png");
+}
+
+QCheckBox::indicator:checked:disabled {
+  image: url(":/qss_icons/light/rc_light/checkbox_checked_disabled.png");
+}
+
+QCheckBox::indicator:indeterminate {
+  image: url(":/qss_icons/light/rc_light/checkbox_indeterminate.png");
+}
+
+QCheckBox::indicator:indeterminate:disabled {
+  image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_disabled.png");
+}
+
+QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed {
+  image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_focus.png");
+}
+
+/* QGroupBox --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox
+
+--------------------------------------------------------------------------- */
+QGroupBox {
+  font-weight: bold;
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+  padding: 2px;
+  margin-top: 6px;
+  margin-bottom: 4px;
+}
+
+QGroupBox::title {
+  subcontrol-origin: margin;
+  subcontrol-position: top left;
+  left: 4px;
+  padding-left: 2px;
+  padding-right: 4px;
+  padding-top: -4px;
+}
+
+QGroupBox::indicator {
+  margin-left: 2px;
+  margin-top: 2px;
+  padding: 0;
+  height: 14px;
+  width: 14px;
+}
+
+QGroupBox::indicator:unchecked {
+  border: none;
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked.png");
+}
+
+QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed {
+  border: none;
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked_focus.png");
+}
+
+QGroupBox::indicator:unchecked:disabled {
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked_disabled.png");
+}
+
+QGroupBox::indicator:checked {
+  border: none;
+  image: url(":/qss_icons/light/rc_light/checkbox_checked.png");
+}
+
+QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed {
+  border: none;
+  image: url(":/qss_icons/light/rc_light/checkbox_checked_focus.png");
+}
+
+QGroupBox::indicator:checked:disabled {
+  image: url(":/qss_icons/light/rc_light/checkbox_checked_disabled.png");
+}
+
+/* QRadioButton -----------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton
+
+--------------------------------------------------------------------------- */
+QRadioButton {
+  background-color: #FAFAFA;
+  color: #19232D;
+  spacing: 4px;
+  padding-top: 4px;
+  padding-bottom: 4px;
+  border: none;
+  outline: none;
+}
+
+QRadioButton:focus {
+  border: none;
+}
+
+QRadioButton:disabled {
+  background-color: #FAFAFA;
+  color: #788D9C;
+  border: none;
+  outline: none;
+}
+
+QRadioButton QWidget {
+  background-color: #FAFAFA;
+  color: #19232D;
+  spacing: 0px;
+  padding: 0px;
+  outline: none;
+  border: none;
+}
+
+QRadioButton::indicator {
+  border: none;
+  outline: none;
+  margin-left: 2px;
+  height: 14px;
+  width: 14px;
+}
+
+QRadioButton::indicator:unchecked {
+  image: url(":/qss_icons/light/rc_light/radio_unchecked.png");
+}
+
+QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/light/rc_light/radio_unchecked_focus.png");
+}
+
+QRadioButton::indicator:unchecked:disabled {
+  image: url(":/qss_icons/light/rc_light/radio_unchecked_disabled.png");
+}
+
+QRadioButton::indicator:checked {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/light/rc_light/radio_checked.png");
+}
+
+QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/light/rc_light/radio_checked_focus.png");
+}
+
+QRadioButton::indicator:checked:disabled {
+  outline: none;
+  image: url(":/qss_icons/light/rc_light/radio_checked_disabled.png");
+}
+
+/* QMenuBar ---------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar
+
+--------------------------------------------------------------------------- */
+QMenuBar {
+  background-color: #C9CDD0;
+  padding: 2px;
+  border: 1px solid #FAFAFA;
+  color: #19232D;
+  selection-background-color: #73C7FF;
+}
+
+QMenuBar:focus {
+  border: 1px solid #9FCBFF;
+}
+
+QMenuBar::item {
+  background: transparent;
+  padding: 4px;
+}
+
+QMenuBar::item:selected {
+  padding: 4px;
+  background: transparent;
+  border: 0px solid #C9CDD0;
+  background-color: #73C7FF;
+}
+
+QMenuBar::item:pressed {
+  padding: 4px;
+  border: 0px solid #C9CDD0;
+  background-color: #73C7FF;
+  color: #19232D;
+  margin-bottom: 0px;
+  padding-bottom: 0px;
+}
+
+/* QMenu ------------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu
+
+--------------------------------------------------------------------------- */
+QMenu {
+  border: 0px solid #C9CDD0;
+  color: #19232D;
+  margin: 0px;
+  background-color: #CED1D4;
+  selection-background-color: #73C7FF;
+}
+
+QMenu::separator {
+  height: 1px;
+  background-color: #ACB1B6;
+  color: #19232D;
+}
+
+QMenu::item {
+  background-color: #CED1D4;
+  padding: 4px 24px 4px 28px;
+  /* Reserve space for selection border */
+  border: 1px transparent #C9CDD0;
+}
+
+QMenu::item:selected {
+  color: #19232D;
+  background-color: #73C7FF;
+}
+
+QMenu::item:pressed {
+  background-color: #73C7FF;
+}
+
+QMenu::icon {
+  padding-left: 10px;
+  width: 14px;
+  height: 14px;
+}
+
+QMenu::indicator {
+  padding-left: 8px;
+  width: 12px;
+  height: 12px;
+  /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */
+  /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */
+}
+
+QMenu::indicator:non-exclusive:unchecked {
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked.png");
+}
+
+QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed {
+  border: none;
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked_focus.png");
+}
+
+QMenu::indicator:non-exclusive:unchecked:disabled {
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked_disabled.png");
+}
+
+QMenu::indicator:non-exclusive:checked {
+  image: url(":/qss_icons/light/rc_light/checkbox_checked.png");
+}
+
+QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed {
+  border: none;
+  image: url(":/qss_icons/light/rc_light/checkbox_checked_focus.png");
+}
+
+QMenu::indicator:non-exclusive:checked:disabled {
+  image: url(":/qss_icons/light/rc_light/checkbox_checked_disabled.png");
+}
+
+QMenu::indicator:non-exclusive:indeterminate {
+  image: url(":/qss_icons/light/rc_light/checkbox_indeterminate.png");
+}
+
+QMenu::indicator:non-exclusive:indeterminate:disabled {
+  image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_disabled.png");
+}
+
+QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed {
+  image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_focus.png");
+}
+
+QMenu::indicator:exclusive:unchecked {
+  image: url(":/qss_icons/light/rc_light/radio_unchecked.png");
+}
+
+QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/light/rc_light/radio_unchecked_focus.png");
+}
+
+QMenu::indicator:exclusive:unchecked:disabled {
+  image: url(":/qss_icons/light/rc_light/radio_unchecked_disabled.png");
+}
+
+QMenu::indicator:exclusive:checked {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/light/rc_light/radio_checked.png");
+}
+
+QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed {
+  border: none;
+  outline: none;
+  image: url(":/qss_icons/light/rc_light/radio_checked_focus.png");
+}
+
+QMenu::indicator:exclusive:checked:disabled {
+  outline: none;
+  image: url(":/qss_icons/light/rc_light/radio_checked_disabled.png");
+}
+
+QMenu::right-arrow {
+  margin: 5px;
+  padding-left: 12px;
+  image: url(":/qss_icons/light/rc_light/arrow_right.png");
+  height: 12px;
+  width: 12px;
+}
+
+/* QAbstractItemView ------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox
+
+--------------------------------------------------------------------------- */
+QAbstractItemView {
+  alternate-background-color: #FAFAFA;
+  color: #19232D;
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+}
+
+QAbstractItemView QLineEdit {
+  padding: 2px;
+}
+
+/* QAbstractScrollArea ----------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea
+
+--------------------------------------------------------------------------- */
+QAbstractScrollArea {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+  /* fix #159 */
+  padding: 2px;
+  /* remove min-height to fix #244 */
+  color: #19232D;
+}
+
+QAbstractScrollArea:disabled {
+  color: #788D9C;
+}
+
+/* QScrollArea ------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QScrollArea QWidget QWidget:disabled {
+  background-color: #FAFAFA;
+}
+
+/* QScrollBar -------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar
+
+--------------------------------------------------------------------------- */
+QScrollBar:horizontal {
+  height: 16px;
+  margin: 2px 16px 2px 16px;
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+  background-color: #FAFAFA;
+}
+
+QScrollBar:vertical {
+  background-color: #FAFAFA;
+  width: 16px;
+  margin: 16px 2px 16px 2px;
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+}
+
+QScrollBar::handle:horizontal {
+  background-color: #ACB1B6;
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+  min-width: 8px;
+}
+
+QScrollBar::handle:horizontal:hover {
+  background-color: #9FCBFF;
+  border: #9FCBFF;
+  border-radius: 4px;
+  min-width: 8px;
+}
+
+QScrollBar::handle:horizontal:focus {
+  border: 1px solid #73C7FF;
+}
+
+QScrollBar::handle:vertical {
+  background-color: #ACB1B6;
+  border: 1px solid #C9CDD0;
+  min-height: 8px;
+  border-radius: 4px;
+}
+
+QScrollBar::handle:vertical:hover {
+  background-color: #9FCBFF;
+  border: #9FCBFF;
+  border-radius: 4px;
+  min-height: 8px;
+}
+
+QScrollBar::handle:vertical:focus {
+  border: 1px solid #73C7FF;
+}
+
+QScrollBar::add-line:horizontal {
+  margin: 0px 0px 0px 0px;
+  border-image: url(":/qss_icons/light/rc_light/arrow_right_disabled.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: right;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on {
+  border-image: url(":/qss_icons/light/rc_light/arrow_right.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: right;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical {
+  margin: 3px 0px 3px 0px;
+  border-image: url(":/qss_icons/light/rc_light/arrow_down_disabled.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: bottom;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on {
+  border-image: url(":/qss_icons/light/rc_light/arrow_down.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: bottom;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal {
+  margin: 0px 3px 0px 3px;
+  border-image: url(":/qss_icons/light/rc_light/arrow_left_disabled.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: left;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on {
+  border-image: url(":/qss_icons/light/rc_light/arrow_left.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: left;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:vertical {
+  margin: 3px 0px 3px 0px;
+  border-image: url(":/qss_icons/light/rc_light/arrow_up_disabled.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: top;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on {
+  border-image: url(":/qss_icons/light/rc_light/arrow_up.png");
+  height: 12px;
+  width: 12px;
+  subcontrol-position: top;
+  subcontrol-origin: margin;
+}
+
+QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal {
+  background: none;
+}
+
+QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {
+  background: none;
+}
+
+QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
+  background: none;
+}
+
+QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
+  background: none;
+}
+
+/* QTextEdit --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets
+
+--------------------------------------------------------------------------- */
+QTextEdit {
+  background-color: #FAFAFA;
+  color: #19232D;
+  border-radius: 4px;
+  border: 1px solid #C9CDD0;
+}
+
+QTextEdit:focus {
+  border: 1px solid #73C7FF;
+}
+
+QTextEdit:selected {
+  background: #9FCBFF;
+  color: #C9CDD0;
+}
+
+/* QPlainTextEdit ---------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QPlainTextEdit {
+  background-color: #FAFAFA;
+  color: #19232D;
+  border-radius: 4px;
+  border: 1px solid #C9CDD0;
+}
+
+QPlainTextEdit:focus {
+  border: 1px solid #73C7FF;
+}
+
+QPlainTextEdit:selected {
+  background: #9FCBFF;
+  color: #C9CDD0;
+}
+
+/* QSizeGrip --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip
+
+--------------------------------------------------------------------------- */
+QSizeGrip {
+  background: transparent;
+  width: 12px;
+  height: 12px;
+  image: url(":/qss_icons/light/rc_light/window_grip.png");
+}
+
+/* QStackedWidget ---------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QStackedWidget {
+  padding: 2px;
+  border: 1px solid #C9CDD0;
+  border: 1px solid #FAFAFA;
+}
+
+/* QToolBar ---------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar
+
+--------------------------------------------------------------------------- */
+QToolBar {
+  background-color: #C9CDD0;
+  border-bottom: 1px solid #FAFAFA;
+  padding: 1px;
+  font-weight: bold;
+  spacing: 2px;
+}
+
+QToolBar:disabled {
+  /* Fixes #272 */
+  background-color: #C9CDD0;
+}
+
+QToolBar::handle:horizontal {
+  width: 16px;
+  image: url(":/qss_icons/light/rc_light/toolbar_move_horizontal.png");
+}
+
+QToolBar::handle:vertical {
+  height: 16px;
+  image: url(":/qss_icons/light/rc_light/toolbar_move_vertical.png");
+}
+
+QToolBar::separator:horizontal {
+  width: 16px;
+  image: url(":/qss_icons/light/rc_light/toolbar_separator_horizontal.png");
+}
+
+QToolBar::separator:vertical {
+  height: 16px;
+  image: url(":/qss_icons/light/rc_light/toolbar_separator_vertical.png");
+}
+
+QToolButton#qt_toolbar_ext_button {
+  background: #C9CDD0;
+  border: 0px;
+  color: #19232D;
+  image: url(":/qss_icons/light/rc_light/arrow_right.png");
+}
+
+/* QAbstractSpinBox -------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QAbstractSpinBox {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  color: #19232D;
+  /* This fixes 103, 111 */
+  padding-top: 2px;
+  /* This fixes 103, 111 */
+  padding-bottom: 2px;
+  padding-left: 4px;
+  padding-right: 4px;
+  border-radius: 4px;
+  /* min-width: 5px; removed to fix 109 */
+}
+
+QAbstractSpinBox:up-button {
+  background-color: transparent #FAFAFA;
+  subcontrol-origin: border;
+  subcontrol-position: top right;
+  border-left: 1px solid #C9CDD0;
+  border-bottom: 1px solid #C9CDD0;
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+  margin: 1px;
+  width: 12px;
+  margin-bottom: -1px;
+}
+
+QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off {
+  image: url(":/qss_icons/light/rc_light/arrow_up_disabled.png");
+  height: 8px;
+  width: 8px;
+}
+
+QAbstractSpinBox::up-arrow:hover {
+  image: url(":/qss_icons/light/rc_light/arrow_up.png");
+}
+
+QAbstractSpinBox:down-button {
+  background-color: transparent #FAFAFA;
+  subcontrol-origin: border;
+  subcontrol-position: bottom right;
+  border-left: 1px solid #C9CDD0;
+  border-top: 1px solid #C9CDD0;
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+  margin: 1px;
+  width: 12px;
+  margin-top: -1px;
+}
+
+QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off {
+  image: url(":/qss_icons/light/rc_light/arrow_down_disabled.png");
+  height: 8px;
+  width: 8px;
+}
+
+QAbstractSpinBox::down-arrow:hover {
+  image: url(":/qss_icons/light/rc_light/arrow_down.png");
+}
+
+QAbstractSpinBox:hover {
+  border: 1px solid #9FCBFF;
+  color: #19232D;
+}
+
+QAbstractSpinBox:focus {
+  border: 1px solid #73C7FF;
+}
+
+QAbstractSpinBox:selected {
+  background: #9FCBFF;
+  color: #C9CDD0;
+}
+
+/* ------------------------------------------------------------------------ */
+/* DISPLAYS --------------------------------------------------------------- */
+/* ------------------------------------------------------------------------ */
+/* QLabel -----------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe
+
+--------------------------------------------------------------------------- */
+QLabel {
+  background-color: #FAFAFA;
+  border: 0px solid #C9CDD0;
+  padding: 2px;
+  margin: 0px;
+  color: #19232D;
+}
+
+QLabel:disabled {
+  background-color: #FAFAFA;
+  border: 0px solid #C9CDD0;
+  color: #788D9C;
+}
+
+/* QTextBrowser -----------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea
+
+--------------------------------------------------------------------------- */
+QTextBrowser {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  color: #19232D;
+  border-radius: 4px;
+}
+
+QTextBrowser:disabled {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  color: #788D9C;
+  border-radius: 4px;
+}
+
+QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed {
+  border: 1px solid #C9CDD0;
+}
+
+/* QGraphicsView ----------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QGraphicsView {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  color: #19232D;
+  border-radius: 4px;
+}
+
+QGraphicsView:disabled {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  color: #788D9C;
+  border-radius: 4px;
+}
+
+QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed {
+  border: 1px solid #C9CDD0;
+}
+
+/* QCalendarWidget --------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QCalendarWidget {
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+}
+
+QCalendarWidget:disabled {
+  background-color: #FAFAFA;
+  color: #788D9C;
+}
+
+/* QLCDNumber -------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QLCDNumber {
+  background-color: #FAFAFA;
+  color: #19232D;
+}
+
+QLCDNumber:disabled {
+  background-color: #FAFAFA;
+  color: #788D9C;
+}
+
+/* QProgressBar -----------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar
+
+--------------------------------------------------------------------------- */
+QProgressBar {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  color: #19232D;
+  border-radius: 4px;
+  text-align: center;
+}
+
+QProgressBar:disabled {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  color: #788D9C;
+  border-radius: 4px;
+  text-align: center;
+}
+
+QProgressBar::chunk {
+  background-color: #9FCBFF;
+  color: #FAFAFA;
+  border-radius: 4px;
+}
+
+QProgressBar::chunk:disabled {
+  background-color: #DAEDFF;
+  color: #788D9C;
+  border-radius: 4px;
+}
+
+/* ------------------------------------------------------------------------ */
+/* BUTTONS ---------------------------------------------------------------- */
+/* ------------------------------------------------------------------------ */
+/* QPushButton ------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton
+
+--------------------------------------------------------------------------- */
+QPushButton {
+  background-color: #C9CDD0;
+  color: #19232D;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+  border: none;
+}
+
+QPushButton:disabled {
+  background-color: #C9CDD0;
+  color: #788D9C;
+  border-radius: 4px;
+  padding: 2px;
+}
+
+QPushButton:checked {
+  background-color: #ACB1B6;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+}
+
+QPushButton:checked:disabled {
+  background-color: #ACB1B6;
+  color: #788D9C;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+}
+
+QPushButton:checked:selected {
+  background: #ACB1B6;
+}
+
+QPushButton:hover {
+  background-color: #B9BDC1;
+  color: #19232D;
+}
+
+QPushButton:pressed {
+  background-color: #ACB1B6;
+}
+
+QPushButton:selected {
+  background: #ACB1B6;
+  color: #19232D;
+}
+
+QPushButton::menu-indicator {
+  subcontrol-origin: padding;
+  subcontrol-position: bottom right;
+  bottom: 4px;
+}
+
+QDialogButtonBox QPushButton {
+  /* Issue #194 #248 - Special case of QPushButton inside dialogs, for better UI */
+  min-width: 80px;
+}
+
+/* QToolButton ------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton
+
+--------------------------------------------------------------------------- */
+QToolButton {
+  background-color: #C9CDD0;
+  color: #19232D;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+  border: none;
+  /* The subcontrols below are used only in the DelayedPopup mode */
+  /* The subcontrols below are used only in the MenuButtonPopup mode */
+  /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */
+}
+
+QToolButton:disabled {
+  background-color: #C9CDD0;
+  color: #788D9C;
+  border-radius: 4px;
+  padding: 2px;
+}
+
+QToolButton:checked {
+  background-color: #ACB1B6;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+}
+
+QToolButton:checked:disabled {
+  background-color: #ACB1B6;
+  color: #788D9C;
+  border-radius: 4px;
+  padding: 2px;
+  outline: none;
+}
+
+QToolButton:checked:hover {
+  background-color: #B9BDC1;
+  color: #19232D;
+}
+
+QToolButton:checked:pressed {
+  background-color: #ACB1B6;
+}
+
+QToolButton:checked:selected {
+  background: #ACB1B6;
+  color: #19232D;
+}
+
+QToolButton:hover {
+  background-color: #B9BDC1;
+  color: #19232D;
+}
+
+QToolButton:pressed {
+  background-color: #ACB1B6;
+}
+
+QToolButton:selected {
+  background: #ACB1B6;
+  color: #19232D;
+}
+
+QToolButton[popupMode="0"] {
+  /* Only for DelayedPopup */
+  padding-right: 2px;
+}
+
+QToolButton[popupMode="1"] {
+  /* Only for MenuButtonPopup */
+  padding-right: 20px;
+}
+
+QToolButton[popupMode="1"]::menu-button {
+  border: none;
+}
+
+QToolButton[popupMode="1"]::menu-button:hover {
+  border: none;
+  border-left: 1px solid #C9CDD0;
+  border-radius: 0;
+}
+
+QToolButton[popupMode="2"] {
+  /* Only for InstantPopup */
+  padding-right: 2px;
+}
+
+QToolButton::menu-button {
+  padding: 2px;
+  border-radius: 4px;
+  width: 12px;
+  border: none;
+  outline: none;
+}
+
+QToolButton::menu-button:hover {
+  border: 1px solid #9FCBFF;
+}
+
+QToolButton::menu-button:checked:hover {
+  border: 1px solid #9FCBFF;
+}
+
+QToolButton::menu-indicator {
+  image: url(":/qss_icons/light/rc_light/arrow_down.png");
+  height: 8px;
+  width: 8px;
+  top: 0;
+  /* Exclude a shift for better image */
+  left: -2px;
+  /* Shift it a bit */
+}
+
+QToolButton::menu-arrow {
+  image: url(":/qss_icons/light/rc_light/arrow_down.png");
+  height: 8px;
+  width: 8px;
+}
+
+QToolButton::menu-arrow:hover {
+  image: url(":/qss_icons/light/rc_light/arrow_down_focus.png");
+}
+
+/* QCommandLinkButton -----------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QCommandLinkButton {
+  background-color: transparent;
+  border: 1px solid #C9CDD0;
+  color: #19232D;
+  border-radius: 4px;
+  padding: 0px;
+  margin: 0px;
+}
+
+QCommandLinkButton:disabled {
+  background-color: transparent;
+  color: #788D9C;
+}
+
+/* ------------------------------------------------------------------------ */
+/* INPUTS - NO FIELDS ----------------------------------------------------- */
+/* ------------------------------------------------------------------------ */
+/* QComboBox --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox
+
+--------------------------------------------------------------------------- */
+QComboBox {
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+  selection-background-color: #9FCBFF;
+  padding-left: 4px;
+  padding-right: 4px;
+  /* padding-right = 36; 4 + 16*2 See scrollbar size */
+  /* changed to 4px to fix #239 */
+  /* Fixes #103, #111 */
+  min-height: 1.5em;
+  /* padding-top: 2px;     removed to fix #132 */
+  /* padding-bottom: 2px;  removed to fix #132 */
+  /* min-width: 75px;      removed to fix #109 */
+  /* Needed to remove indicator - fix #132 */
+}
+
+QComboBox QAbstractItemView {
+  border: 1px solid #C9CDD0;
+  border-radius: 0;
+  background-color: #FAFAFA;
+  selection-background-color: #9FCBFF;
+}
+
+QComboBox QAbstractItemView:hover {
+  background-color: #FAFAFA;
+  color: #19232D;
+}
+
+QComboBox QAbstractItemView:selected {
+  background: #9FCBFF;
+  color: #C9CDD0;
+}
+
+QComboBox QAbstractItemView:alternate {
+  background: #FAFAFA;
+}
+
+QComboBox:disabled {
+  background-color: #FAFAFA;
+  color: #788D9C;
+}
+
+QComboBox:hover {
+  border: 1px solid #9FCBFF;
+}
+
+QComboBox:focus {
+  border: 1px solid #73C7FF;
+}
+
+QComboBox:on {
+  selection-background-color: #9FCBFF;
+}
+
+QComboBox::indicator {
+  border: none;
+  border-radius: 0;
+  background-color: transparent;
+  selection-background-color: transparent;
+  color: transparent;
+  selection-color: transparent;
+  /* Needed to remove indicator - fix #132 */
+}
+
+QComboBox::indicator:alternate {
+  background: #FAFAFA;
+}
+
+QComboBox::item:alternate {
+  background: #FAFAFA;
+}
+
+QComboBox::item:checked {
+  font-weight: bold;
+}
+
+QComboBox::item:selected {
+  border: 0px solid transparent;
+}
+
+QComboBox::drop-down {
+  subcontrol-origin: padding;
+  subcontrol-position: top right;
+  width: 12px;
+  border-left: 1px solid #C9CDD0;
+}
+
+QComboBox::down-arrow {
+  image: url(":/qss_icons/light/rc_light/arrow_down_disabled.png");
+  height: 8px;
+  width: 8px;
+}
+
+QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus {
+  image: url(":/qss_icons/light/rc_light/arrow_down.png");
+}
+
+/* QSlider ----------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider
+
+--------------------------------------------------------------------------- */
+QSlider:disabled {
+  background: #FAFAFA;
+}
+
+QSlider:focus {
+  border: none;
+}
+
+QSlider::groove:horizontal {
+  background: #C9CDD0;
+  border: 1px solid #C9CDD0;
+  height: 4px;
+  margin: 0px;
+  border-radius: 4px;
+}
+
+QSlider::groove:vertical {
+  background: #C9CDD0;
+  border: 1px solid #C9CDD0;
+  width: 4px;
+  margin: 0px;
+  border-radius: 4px;
+}
+
+QSlider::add-page:vertical {
+  background: #9FCBFF;
+  border: 1px solid #C9CDD0;
+  width: 4px;
+  margin: 0px;
+  border-radius: 4px;
+}
+
+QSlider::add-page:vertical :disabled {
+  background: #DAEDFF;
+}
+
+QSlider::sub-page:horizontal {
+  background: #9FCBFF;
+  border: 1px solid #C9CDD0;
+  height: 4px;
+  margin: 0px;
+  border-radius: 4px;
+}
+
+QSlider::sub-page:horizontal:disabled {
+  background: #DAEDFF;
+}
+
+QSlider::handle:horizontal {
+  background: #788D9C;
+  border: 1px solid #C9CDD0;
+  width: 8px;
+  height: 8px;
+  margin: -8px 0px;
+  border-radius: 4px;
+}
+
+QSlider::handle:horizontal:hover {
+  background: #9FCBFF;
+  border: 1px solid #9FCBFF;
+}
+
+QSlider::handle:horizontal:focus {
+  border: 1px solid #73C7FF;
+}
+
+QSlider::handle:vertical {
+  background: #788D9C;
+  border: 1px solid #C9CDD0;
+  width: 8px;
+  height: 8px;
+  margin: 0 -8px;
+  border-radius: 4px;
+}
+
+QSlider::handle:vertical:hover {
+  background: #9FCBFF;
+  border: 1px solid #9FCBFF;
+}
+
+QSlider::handle:vertical:focus {
+  border: 1px solid #73C7FF;
+}
+
+/* QLineEdit --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit
+
+--------------------------------------------------------------------------- */
+QLineEdit {
+  background-color: #FAFAFA;
+  padding-top: 2px;
+  /* This QLineEdit fix  103, 111 */
+  padding-bottom: 2px;
+  /* This QLineEdit fix  103, 111 */
+  padding-left: 4px;
+  padding-right: 4px;
+  border-style: solid;
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+  color: #19232D;
+}
+
+QLineEdit:disabled {
+  background-color: #FAFAFA;
+  color: #788D9C;
+}
+
+QLineEdit:hover {
+  border: 1px solid #9FCBFF;
+  color: #19232D;
+}
+
+QLineEdit:focus {
+  border: 1px solid #73C7FF;
+}
+
+QLineEdit:selected {
+  background-color: #9FCBFF;
+  color: #C9CDD0;
+}
+
+/* QTabWiget --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar
+
+--------------------------------------------------------------------------- */
+QTabWidget {
+  padding: 2px;
+  selection-background-color: #C9CDD0;
+}
+
+QTabWidget QWidget {
+  /* Fixes #189 */
+  border-radius: 4px;
+}
+
+QTabWidget::pane {
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+  margin: 0px;
+  /* Fixes double border inside pane with pyqt5 */
+  padding: 0px;
+}
+
+QTabWidget::pane:selected {
+  background-color: #C9CDD0;
+  border: 1px solid #9FCBFF;
+}
+
+/* QTabBar ----------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar
+
+--------------------------------------------------------------------------- */
+QTabBar, QDockWidget QTabBar {
+  qproperty-drawBase: 0;
+  border-radius: 4px;
+  margin: 0px;
+  padding: 2px;
+  border: 0;
+  /* left: 5px; move to the right by 5px - removed for fix */
+}
+
+QTabBar::close-button, QDockWidget QTabBar::close-button {
+  border: 0;
+  margin: 0;
+  padding: 4px;
+  image: url(":/qss_icons/light/rc_light/window_close.png");
+}
+
+QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover {
+  image: url(":/qss_icons/light/rc_light/window_close_focus.png");
+}
+
+QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed {
+  image: url(":/qss_icons/light/rc_light/window_close_pressed.png");
+}
+
+QTabBar::tab, QDockWidget QTabBar::tab {
+  /* !selected and disabled ----------------------------------------- */
+  /* selected ------------------------------------------------------- */
+}
+
+QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled {
+  border-bottom: 3px solid #DAEDFF;
+  color: #788D9C;
+  background-color: #C9CDD0;
+}
+
+QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled {
+  border-top: 3px solid #DAEDFF;
+  color: #788D9C;
+  background-color: #C9CDD0;
+}
+
+QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled {
+  border-right: 3px solid #DAEDFF;
+  color: #788D9C;
+  background-color: #C9CDD0;
+}
+
+QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled {
+  border-left: 3px solid #DAEDFF;
+  color: #788D9C;
+  background-color: #C9CDD0;
+}
+
+QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled {
+  border-bottom: 3px solid #FAFAFA;
+  color: #788D9C;
+  background-color: #FAFAFA;
+}
+
+QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled {
+  border-top: 3px solid #FAFAFA;
+  color: #788D9C;
+  background-color: #FAFAFA;
+}
+
+QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled {
+  border-right: 3px solid #FAFAFA;
+  color: #788D9C;
+  background-color: #FAFAFA;
+}
+
+QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled {
+  border-left: 3px solid #FAFAFA;
+  color: #788D9C;
+  background-color: #FAFAFA;
+}
+
+QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected {
+  border-bottom: 2px solid #FAFAFA;
+  margin-top: 2px;
+}
+
+QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected {
+  border-top: 2px solid #FAFAFA;
+  margin-bottom: 2px;
+}
+
+QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected {
+  border-left: 2px solid #FAFAFA;
+  margin-right: 2px;
+}
+
+QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected {
+  border-right: 2px solid #FAFAFA;
+  margin-left: 2px;
+}
+
+QTabBar::tab:top, QDockWidget QTabBar::tab:top {
+  background-color: #C9CDD0;
+  margin-left: 2px;
+  padding-left: 4px;
+  padding-right: 4px;
+  padding-top: 2px;
+  padding-bottom: 2px;
+  min-width: 5px;
+  border-bottom: 3px solid #C9CDD0;
+  border-top-left-radius: 4px;
+  border-top-right-radius: 4px;
+}
+
+QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected {
+  background-color: #B9BDC1;
+  border-bottom: 3px solid #37AEFE;
+  border-top-left-radius: 4px;
+  border-top-right-radius: 4px;
+}
+
+QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover {
+  border: 1px solid #73C7FF;
+  border-bottom: 3px solid #73C7FF;
+  /* Fixes spyder-ide/spyder#9766 and #243 */
+  padding-left: 3px;
+  padding-right: 3px;
+}
+
+QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom {
+  border-top: 3px solid #C9CDD0;
+  background-color: #C9CDD0;
+  margin-left: 2px;
+  padding-left: 4px;
+  padding-right: 4px;
+  padding-top: 2px;
+  padding-bottom: 2px;
+  border-bottom-left-radius: 4px;
+  border-bottom-right-radius: 4px;
+  min-width: 5px;
+}
+
+QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected {
+  background-color: #B9BDC1;
+  border-top: 3px solid #37AEFE;
+  border-bottom-left-radius: 4px;
+  border-bottom-right-radius: 4px;
+}
+
+QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover {
+  border: 1px solid #73C7FF;
+  border-top: 3px solid #73C7FF;
+  /* Fixes spyder-ide/spyder#9766 and #243 */
+  padding-left: 3px;
+  padding-right: 3px;
+}
+
+QTabBar::tab:left, QDockWidget QTabBar::tab:left {
+  background-color: #C9CDD0;
+  margin-top: 2px;
+  padding-left: 2px;
+  padding-right: 2px;
+  padding-top: 4px;
+  padding-bottom: 4px;
+  border-top-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+  min-height: 5px;
+}
+
+QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected {
+  background-color: #B9BDC1;
+  border-right: 3px solid #37AEFE;
+}
+
+QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover {
+  border: 1px solid #73C7FF;
+  border-right: 3px solid #73C7FF;
+  /* Fixes different behavior #271 */
+  margin-right: 0px;
+  padding-right: -1px;
+}
+
+QTabBar::tab:right, QDockWidget QTabBar::tab:right {
+  background-color: #C9CDD0;
+  margin-top: 2px;
+  padding-left: 2px;
+  padding-right: 2px;
+  padding-top: 4px;
+  padding-bottom: 4px;
+  border-top-right-radius: 4px;
+  border-bottom-right-radius: 4px;
+  min-height: 5px;
+}
+
+QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected {
+  background-color: #B9BDC1;
+  border-left: 3px solid #37AEFE;
+}
+
+QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover {
+  border: 1px solid #73C7FF;
+  border-left: 3px solid #73C7FF;
+  /* Fixes different behavior #271 */
+  margin-left: 0px;
+  padding-left: 0px;
+}
+
+QTabBar QToolButton, QDockWidget QTabBar QToolButton {
+  /* Fixes #136 */
+  background-color: #C9CDD0;
+  height: 12px;
+  width: 12px;
+}
+
+QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed {
+  background-color: #C9CDD0;
+}
+
+QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover {
+  border: 1px solid #9FCBFF;
+}
+
+QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled {
+  image: url(":/qss_icons/light/rc_light/arrow_left.png");
+}
+
+QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled {
+  image: url(":/qss_icons/light/rc_light/arrow_left_disabled.png");
+}
+
+QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled {
+  image: url(":/qss_icons/light/rc_light/arrow_right.png");
+}
+
+QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled {
+  image: url(":/qss_icons/light/rc_light/arrow_right_disabled.png");
+}
+
+/* QDockWiget -------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QDockWidget {
+  outline: 1px solid #C9CDD0;
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+  titlebar-close-icon: url(":/qss_icons/light/rc_light/transparent.png");
+  titlebar-normal-icon: url(":/qss_icons/light/rc_light/transparent.png");
+}
+
+QDockWidget::title {
+  /* Better size for title bar */
+  padding: 3px;
+  spacing: 4px;
+  border: none;
+  background-color: #C9CDD0;
+}
+
+QDockWidget::close-button {
+  icon-size: 12px;
+  border: none;
+  background: transparent;
+  background-image: transparent;
+  border: 0;
+  margin: 0;
+  padding: 0;
+  image: url(":/qss_icons/light/rc_light/window_close.png");
+}
+
+QDockWidget::close-button:hover {
+  image: url(":/qss_icons/light/rc_light/window_close_focus.png");
+}
+
+QDockWidget::close-button:pressed {
+  image: url(":/qss_icons/light/rc_light/window_close_pressed.png");
+}
+
+QDockWidget::float-button {
+  icon-size: 12px;
+  border: none;
+  background: transparent;
+  background-image: transparent;
+  border: 0;
+  margin: 0;
+  padding: 0;
+  image: url(":/qss_icons/light/rc_light/window_undock.png");
+}
+
+QDockWidget::float-button:hover {
+  image: url(":/qss_icons/light/rc_light/window_undock_focus.png");
+}
+
+QDockWidget::float-button:pressed {
+  image: url(":/qss_icons/light/rc_light/window_undock_pressed.png");
+}
+
+/* QTreeView QListView QTableView -----------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview
+
+--------------------------------------------------------------------------- */
+QTreeView:branch:selected, QTreeView:branch:hover {
+  background: url(":/qss_icons/light/rc_light/transparent.png");
+}
+
+QTreeView:branch:has-siblings:!adjoins-item {
+  border-image: url(":/qss_icons/light/rc_light/branch_line.png") 0;
+}
+
+QTreeView:branch:has-siblings:adjoins-item {
+  border-image: url(":/qss_icons/light/rc_light/branch_more.png") 0;
+}
+
+QTreeView:branch:!has-children:!has-siblings:adjoins-item {
+  border-image: url(":/qss_icons/light/rc_light/branch_end.png") 0;
+}
+
+QTreeView:branch:has-children:!has-siblings:closed, QTreeView:branch:closed:has-children:has-siblings {
+  border-image: none;
+  image: url(":/qss_icons/light/rc_light/branch_closed.png");
+}
+
+QTreeView:branch:open:has-children:!has-siblings, QTreeView:branch:open:has-children:has-siblings {
+  border-image: none;
+  image: url(":/qss_icons/light/rc_light/branch_open.png");
+}
+
+QTreeView:branch:has-children:!has-siblings:closed:hover, QTreeView:branch:closed:has-children:has-siblings:hover {
+  image: url(":/qss_icons/light/rc_light/branch_closed_focus.png");
+}
+
+QTreeView:branch:open:has-children:!has-siblings:hover, QTreeView:branch:open:has-children:has-siblings:hover {
+  image: url(":/qss_icons/light/rc_light/branch_open_focus.png");
+}
+
+QTreeView::indicator:checked,
+QListView::indicator:checked,
+QTableView::indicator:checked,
+QColumnView::indicator:checked {
+  image: url(":/qss_icons/light/rc_light/checkbox_checked.png");
+}
+
+QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed,
+QListView::indicator:checked:hover,
+QListView::indicator:checked:focus,
+QListView::indicator:checked:pressed,
+QTableView::indicator:checked:hover,
+QTableView::indicator:checked:focus,
+QTableView::indicator:checked:pressed,
+QColumnView::indicator:checked:hover,
+QColumnView::indicator:checked:focus,
+QColumnView::indicator:checked:pressed {
+  image: url(":/qss_icons/light/rc_light/checkbox_checked_focus.png");
+}
+
+QTreeView::indicator:unchecked,
+QListView::indicator:unchecked,
+QTableView::indicator:unchecked,
+QColumnView::indicator:unchecked {
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked.png");
+}
+
+QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed,
+QListView::indicator:unchecked:hover,
+QListView::indicator:unchecked:focus,
+QListView::indicator:unchecked:pressed,
+QTableView::indicator:unchecked:hover,
+QTableView::indicator:unchecked:focus,
+QTableView::indicator:unchecked:pressed,
+QColumnView::indicator:unchecked:hover,
+QColumnView::indicator:unchecked:focus,
+QColumnView::indicator:unchecked:pressed {
+  image: url(":/qss_icons/light/rc_light/checkbox_unchecked_focus.png");
+}
+
+QTreeView::indicator:indeterminate,
+QListView::indicator:indeterminate,
+QTableView::indicator:indeterminate,
+QColumnView::indicator:indeterminate {
+  image: url(":/qss_icons/light/rc_light/checkbox_indeterminate.png");
+}
+
+QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed,
+QListView::indicator:indeterminate:hover,
+QListView::indicator:indeterminate:focus,
+QListView::indicator:indeterminate:pressed,
+QTableView::indicator:indeterminate:hover,
+QTableView::indicator:indeterminate:focus,
+QTableView::indicator:indeterminate:pressed,
+QColumnView::indicator:indeterminate:hover,
+QColumnView::indicator:indeterminate:focus,
+QColumnView::indicator:indeterminate:pressed {
+  image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_focus.png");
+}
+
+QTreeView,
+QListView,
+QTableView,
+QColumnView {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  color: #19232D;
+  gridline-color: #C9CDD0;
+  border-radius: 4px;
+}
+
+QTreeView:disabled,
+QListView:disabled,
+QTableView:disabled,
+QColumnView:disabled {
+  background-color: #FAFAFA;
+  color: #788D9C;
+}
+
+QTreeView:selected,
+QListView:selected,
+QTableView:selected,
+QColumnView:selected {
+  background-color: #9FCBFF;
+  color: #C9CDD0;
+}
+
+QTreeView:focus,
+QListView:focus,
+QTableView:focus,
+QColumnView:focus {
+  border: 1px solid #73C7FF;
+}
+
+QTreeView::item:pressed,
+QListView::item:pressed,
+QTableView::item:pressed,
+QColumnView::item:pressed {
+  background-color: #9FCBFF;
+}
+
+QTreeView::item:selected:active,
+QListView::item:selected:active,
+QTableView::item:selected:active,
+QColumnView::item:selected:active {
+  background-color: #9FCBFF;
+}
+
+QTreeView::item:selected:!active,
+QListView::item:selected:!active,
+QTableView::item:selected:!active,
+QColumnView::item:selected:!active {
+  color: #19232D;
+  background-color: #CED1D4;
+}
+
+QTreeView::item:!selected:hover,
+QListView::item:!selected:hover,
+QTableView::item:!selected:hover,
+QColumnView::item:!selected:hover {
+  outline: 0;
+  color: #19232D;
+  background-color: #CED1D4;
+}
+
+QTableCornerButton::section {
+  background-color: #FAFAFA;
+  border: 1px transparent #C9CDD0;
+  border-radius: 0px;
+}
+
+/* QHeaderView ------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview
+
+--------------------------------------------------------------------------- */
+QHeaderView {
+  background-color: #C9CDD0;
+  border: 0px transparent #C9CDD0;
+  padding: 0;
+  margin: 0;
+  border-radius: 0;
+}
+
+QHeaderView:disabled {
+  background-color: #C9CDD0;
+  border: 1px transparent #C9CDD0;
+}
+
+QHeaderView::section {
+  background-color: #C9CDD0;
+  color: #19232D;
+  border-radius: 0;
+  text-align: left;
+  font-size: 13px;
+}
+
+QHeaderView::section::horizontal {
+  padding-top: 0;
+  padding-bottom: 0;
+  padding-left: 4px;
+  padding-right: 4px;
+  border-left: 1px solid #FAFAFA;
+}
+
+QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one {
+  border-left: 1px solid #C9CDD0;
+}
+
+QHeaderView::section::horizontal:disabled {
+  color: #788D9C;
+}
+
+QHeaderView::section::vertical {
+  padding-top: 0;
+  padding-bottom: 0;
+  padding-left: 4px;
+  padding-right: 4px;
+  border-top: 1px solid #FAFAFA;
+}
+
+QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one {
+  border-top: 1px solid #C9CDD0;
+}
+
+QHeaderView::section::vertical:disabled {
+  color: #788D9C;
+}
+
+QHeaderView::down-arrow {
+  /* Those settings (border/width/height/background-color) solve bug */
+  /* transparent arrow background and size */
+  background-color: #C9CDD0;
+  border: none;
+  height: 12px;
+  width: 12px;
+  padding-left: 2px;
+  padding-right: 2px;
+  image: url(":/qss_icons/light/rc_light/arrow_down.png");
+}
+
+QHeaderView::up-arrow {
+  background-color: #C9CDD0;
+  border: none;
+  height: 12px;
+  width: 12px;
+  padding-left: 2px;
+  padding-right: 2px;
+  image: url(":/qss_icons/light/rc_light/arrow_up.png");
+}
+
+/* QToolBox --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox
+
+--------------------------------------------------------------------------- */
+QToolBox {
+  padding: 0px;
+  border: 0px;
+  border: 1px solid #C9CDD0;
+}
+
+QToolBox:selected {
+  padding: 0px;
+  border: 2px solid #9FCBFF;
+}
+
+QToolBox::tab {
+  background-color: #FAFAFA;
+  border: 1px solid #C9CDD0;
+  color: #19232D;
+  border-top-left-radius: 4px;
+  border-top-right-radius: 4px;
+}
+
+QToolBox::tab:disabled {
+  color: #788D9C;
+}
+
+QToolBox::tab:selected {
+  background-color: #ACB1B6;
+  border-bottom: 2px solid #9FCBFF;
+}
+
+QToolBox::tab:selected:disabled {
+  background-color: #C9CDD0;
+  border-bottom: 2px solid #DAEDFF;
+}
+
+QToolBox::tab:!selected {
+  background-color: #C9CDD0;
+  border-bottom: 2px solid #C9CDD0;
+}
+
+QToolBox::tab:!selected:disabled {
+  background-color: #FAFAFA;
+}
+
+QToolBox::tab:hover {
+  border-color: #73C7FF;
+  border-bottom: 2px solid #73C7FF;
+}
+
+QToolBox QScrollArea QWidget QWidget {
+  padding: 0px;
+  border: 0px;
+  background-color: #FAFAFA;
+}
+
+/* QFrame -----------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe
+https://doc.qt.io/qt-5/qframe.html#-prop
+https://doc.qt.io/qt-5/qframe.html#details
+https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color
+
+--------------------------------------------------------------------------- */
+/* (dot) .QFrame  fix #141, #126, #123 */
+.QFrame {
+  border-radius: 4px;
+  border: 1px solid #C9CDD0;
+  /* No frame */
+  /* HLine */
+  /* HLine */
+}
+
+.QFrame[frameShape="0"] {
+  border-radius: 4px;
+  border: 1px transparent #C9CDD0;
+}
+
+.QFrame[frameShape="4"] {
+  max-height: 2px;
+  border: none;
+  background-color: #C9CDD0;
+}
+
+.QFrame[frameShape="5"] {
+  max-width: 2px;
+  border: none;
+  background-color: #C9CDD0;
+}
+
+/* QSplitter --------------------------------------------------------------
+
+https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter
+
+--------------------------------------------------------------------------- */
+QSplitter {
+  background-color: #C9CDD0;
+  spacing: 0px;
+  padding: 0px;
+  margin: 0px;
+}
+
+QSplitter::handle {
+  background-color: #C9CDD0;
+  border: 0px solid #FAFAFA;
+  spacing: 0px;
+  padding: 1px;
+  margin: 0px;
+}
+
+QSplitter::handle:hover {
+  background-color: #788D9C;
+}
+
+QSplitter::handle:horizontal {
+  width: 5px;
+  image: url(":/qss_icons/light/rc_light/line_vertical.png");
+}
+
+QSplitter::handle:vertical {
+  height: 5px;
+  image: url(":/qss_icons/light/rc_light/line_horizontal.png");
+}
+
+/* QDateEdit, QDateTimeEdit -----------------------------------------------
+
+--------------------------------------------------------------------------- */
+QDateEdit, QDateTimeEdit {
+  selection-background-color: #9FCBFF;
+  border-style: solid;
+  border: 1px solid #C9CDD0;
+  border-radius: 4px;
+  /* This fixes 103, 111 */
+  padding-top: 2px;
+  /* This fixes 103, 111 */
+  padding-bottom: 2px;
+  padding-left: 4px;
+  padding-right: 4px;
+  min-width: 10px;
+}
+
+QDateEdit:on, QDateTimeEdit:on {
+  selection-background-color: #9FCBFF;
+}
+
+QDateEdit::drop-down, QDateTimeEdit::drop-down {
+  subcontrol-origin: padding;
+  subcontrol-position: top right;
+  width: 12px;
+  border-left: 1px solid #C9CDD0;
+}
+
+QDateEdit::down-arrow, QDateTimeEdit::down-arrow {
+  image: url(":/qss_icons/light/rc_light/arrow_down_disabled.png");
+  height: 8px;
+  width: 8px;
+}
+
+QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus {
+  image: url(":/qss_icons/light/rc_light/arrow_down.png");
+}
+
+QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView {
+  background-color: #FAFAFA;
+  border-radius: 4px;
+  border: 1px solid #C9CDD0;
+  selection-background-color: #9FCBFF;
+}
+
+/* QAbstractView ----------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+QAbstractView:hover {
+  border: 1px solid #9FCBFF;
+  color: #19232D;
+}
+
+QAbstractView:selected {
+  background: #9FCBFF;
+  color: #C9CDD0;
+}
+
+/* PlotWidget -------------------------------------------------------------
+
+--------------------------------------------------------------------------- */
+PlotWidget {
+  /* Fix cut labels in plots #134 */
+  padding: 0px;
+}
diff --git a/utils/rsc/rc_dark/arrow_down.png b/utils/rsc/rc_dark/arrow_down.png
new file mode 100644
index 0000000000000000000000000000000000000000..5575ab5ce569d09e2708b0a16a90a5a5a381790e
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down.png differ
diff --git a/utils/rsc/rc_dark/arrow_down@2x.png b/utils/rsc/rc_dark/arrow_down@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4596a5ce8addad7f348c21132be688271c6c3c51
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_down_disabled.png b/utils/rsc/rc_dark/arrow_down_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..bdf8c1abb736f498c84fc4980d36b450c8131507
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_disabled.png differ
diff --git a/utils/rsc/rc_dark/arrow_down_disabled@2x.png b/utils/rsc/rc_dark/arrow_down_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc1bcb5241e732dd725009b80f10d48b108142bb
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_down_focus.png b/utils/rsc/rc_dark/arrow_down_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..94fcdc3597d4f0a0755200c90681c6017261ce9e
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_focus.png differ
diff --git a/utils/rsc/rc_dark/arrow_down_focus@2x.png b/utils/rsc/rc_dark/arrow_down_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b12f74d0a38ab95428c3ff012c9150e9b20ac2a
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_down_pressed.png b/utils/rsc/rc_dark/arrow_down_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..4058c58b3499409d4f306bf4912c028e5bf0b037
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_pressed.png differ
diff --git a/utils/rsc/rc_dark/arrow_down_pressed@2x.png b/utils/rsc/rc_dark/arrow_down_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d43b0affaf60565a553974132719110d39ba4a2d
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_left.png b/utils/rsc/rc_dark/arrow_left.png
new file mode 100644
index 0000000000000000000000000000000000000000..7fbc35065bb5941a78725becd5f810d7619e616c
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left.png differ
diff --git a/utils/rsc/rc_dark/arrow_left@2x.png b/utils/rsc/rc_dark/arrow_left@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc649ca7093e1b7155c59e8fb08ed00094ae7e67
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_left_disabled.png b/utils/rsc/rc_dark/arrow_left_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa3b282cce48aa69e35c3334cdcfde8575fc560f
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_disabled.png differ
diff --git a/utils/rsc/rc_dark/arrow_left_disabled@2x.png b/utils/rsc/rc_dark/arrow_left_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..87c928ea3ed00ccf8025e343918b55a4287f27f3
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_left_focus.png b/utils/rsc/rc_dark/arrow_left_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..52a0d91028955151cd7f12db4cb3c66986c52333
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_focus.png differ
diff --git a/utils/rsc/rc_dark/arrow_left_focus@2x.png b/utils/rsc/rc_dark/arrow_left_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ee7029246b572e191905a28abcf8b331face937
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_left_pressed.png b/utils/rsc/rc_dark/arrow_left_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..c04ce09435c23ac5720f55d7d12e7ffcc6e74248
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_pressed.png differ
diff --git a/utils/rsc/rc_dark/arrow_left_pressed@2x.png b/utils/rsc/rc_dark/arrow_left_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..02218c80dd467beda61fa8b7ee3efcd2d32eae36
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_right.png b/utils/rsc/rc_dark/arrow_right.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd31b4f2a4276b8085e1ee20ea9787cd7dbb5c53
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right.png differ
diff --git a/utils/rsc/rc_dark/arrow_right@2x.png b/utils/rsc/rc_dark/arrow_right@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4dbc931200bbce38c512374d0f6c6ca2f294e856
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_right_disabled.png b/utils/rsc/rc_dark/arrow_right_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb4cdb03617db3e7f16f1055faedd523b5485d70
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_disabled.png differ
diff --git a/utils/rsc/rc_dark/arrow_right_disabled@2x.png b/utils/rsc/rc_dark/arrow_right_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..50f173096e0dfc53d3525dc28ee8f2a4e86f2f72
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_right_focus.png b/utils/rsc/rc_dark/arrow_right_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..9dd8f0f0b1230a22d763fee2d397742aba9a96ec
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_focus.png differ
diff --git a/utils/rsc/rc_dark/arrow_right_focus@2x.png b/utils/rsc/rc_dark/arrow_right_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ac9d5c9ebf44016af725d780287f7a9e31fd555
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_right_pressed.png b/utils/rsc/rc_dark/arrow_right_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ce10fcbe1f86f33769258eaa6f91ec81bf19e11
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_pressed.png differ
diff --git a/utils/rsc/rc_dark/arrow_right_pressed@2x.png b/utils/rsc/rc_dark/arrow_right_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..86e3b9286c5c08edd9ac267e7fdd2ea566b08ec0
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_up.png b/utils/rsc/rc_dark/arrow_up.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ea571e471d251a3c76f2908754faaffeebbf0b0
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up.png differ
diff --git a/utils/rsc/rc_dark/arrow_up@2x.png b/utils/rsc/rc_dark/arrow_up@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..51b1d7234c0a17996fa9d0d149fa44a447a01cae
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_up_disabled.png b/utils/rsc/rc_dark/arrow_up_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..146b65f16b4ab7e41d768b66ad175c9eb49b4287
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_disabled.png differ
diff --git a/utils/rsc/rc_dark/arrow_up_disabled@2x.png b/utils/rsc/rc_dark/arrow_up_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..cacee7f748004445b8c8947bc9ecaf793dada4b6
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_up_focus.png b/utils/rsc/rc_dark/arrow_up_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab33162c73f94dbf7931bce009644a459bbf9812
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_focus.png differ
diff --git a/utils/rsc/rc_dark/arrow_up_focus@2x.png b/utils/rsc/rc_dark/arrow_up_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c8ef33f487c65f5be8a290ee8558bbaa7f7139f
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/arrow_up_pressed.png b/utils/rsc/rc_dark/arrow_up_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3368d096febea4a232751a41d2983faec3a6248
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_pressed.png differ
diff --git a/utils/rsc/rc_dark/arrow_up_pressed@2x.png b/utils/rsc/rc_dark/arrow_up_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a63819665cb7acac0824a9a0607e2866c2c3da92
Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/base_icon.png b/utils/rsc/rc_dark/base_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164
Binary files /dev/null and b/utils/rsc/rc_dark/base_icon.png differ
diff --git a/utils/rsc/rc_dark/base_icon@2x.png b/utils/rsc/rc_dark/base_icon@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb
Binary files /dev/null and b/utils/rsc/rc_dark/base_icon@2x.png differ
diff --git a/utils/rsc/rc_dark/base_icon_disabled.png b/utils/rsc/rc_dark/base_icon_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164
Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_disabled.png differ
diff --git a/utils/rsc/rc_dark/base_icon_disabled@2x.png b/utils/rsc/rc_dark/base_icon_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb
Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/base_icon_focus.png b/utils/rsc/rc_dark/base_icon_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164
Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_focus.png differ
diff --git a/utils/rsc/rc_dark/base_icon_focus@2x.png b/utils/rsc/rc_dark/base_icon_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb
Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/base_icon_pressed.png b/utils/rsc/rc_dark/base_icon_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164
Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_pressed.png differ
diff --git a/utils/rsc/rc_dark/base_icon_pressed@2x.png b/utils/rsc/rc_dark/base_icon_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb
Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_closed.png b/utils/rsc/rc_dark/branch_closed.png
new file mode 100644
index 0000000000000000000000000000000000000000..d484c324b42f065e40783cd85f827b605f59a6dd
Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed.png differ
diff --git a/utils/rsc/rc_dark/branch_closed@2x.png b/utils/rsc/rc_dark/branch_closed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f49651b704519d8039548111b93554bd743616e8
Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_closed_disabled.png b/utils/rsc/rc_dark/branch_closed_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa622523c1af8efed0eba8c3433ac92b53473108
Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_disabled.png differ
diff --git a/utils/rsc/rc_dark/branch_closed_disabled@2x.png b/utils/rsc/rc_dark/branch_closed_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac318f5b193feb6b94a0363406d7d66b0b99b327
Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_closed_focus.png b/utils/rsc/rc_dark/branch_closed_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a98eab661d03ac7e32e571db7027a8288476f57
Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_focus.png differ
diff --git a/utils/rsc/rc_dark/branch_closed_focus@2x.png b/utils/rsc/rc_dark/branch_closed_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..39fd0d0e20408fe2f4c44537abea487c927232a1
Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_closed_pressed.png b/utils/rsc/rc_dark/branch_closed_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..049f4bfe5b19f10aa7aff62c79504b1325cc580b
Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_pressed.png differ
diff --git a/utils/rsc/rc_dark/branch_closed_pressed@2x.png b/utils/rsc/rc_dark/branch_closed_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f58ae2238795878b095402957666e8e663cc4fed
Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_end.png b/utils/rsc/rc_dark/branch_end.png
new file mode 100644
index 0000000000000000000000000000000000000000..2109845651ae107d5b42a132ebeb2b63c05fb867
Binary files /dev/null and b/utils/rsc/rc_dark/branch_end.png differ
diff --git a/utils/rsc/rc_dark/branch_end@2x.png b/utils/rsc/rc_dark/branch_end@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..91f3bd02d3decdf453be0c3183e86d1046087629
Binary files /dev/null and b/utils/rsc/rc_dark/branch_end@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_end_disabled.png b/utils/rsc/rc_dark/branch_end_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe819bc14156ed1ea3822956c893ec996017b404
Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_disabled.png differ
diff --git a/utils/rsc/rc_dark/branch_end_disabled@2x.png b/utils/rsc/rc_dark/branch_end_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..58024770943348ff8b9ff6b2f3cce0cbc8eb8894
Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_end_focus.png b/utils/rsc/rc_dark/branch_end_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a978c0cc626e4c8a3bde6568e3e6197bedbd5cd
Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_focus.png differ
diff --git a/utils/rsc/rc_dark/branch_end_focus@2x.png b/utils/rsc/rc_dark/branch_end_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ece9b825d5ac72bc51e950af77c6071af1d65a1f
Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_end_pressed.png b/utils/rsc/rc_dark/branch_end_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d4050997cd7ebca3c982e660a9ebdbb4712a9b1
Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_pressed.png differ
diff --git a/utils/rsc/rc_dark/branch_end_pressed@2x.png b/utils/rsc/rc_dark/branch_end_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4822745c4378dd4a5780f41afdd9fb3cfec731e8
Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_line.png b/utils/rsc/rc_dark/branch_line.png
new file mode 100644
index 0000000000000000000000000000000000000000..75cc027f81737e367517a2b2c7fd7bd243ff0d37
Binary files /dev/null and b/utils/rsc/rc_dark/branch_line.png differ
diff --git a/utils/rsc/rc_dark/branch_line@2x.png b/utils/rsc/rc_dark/branch_line@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7273705589c0fa5f768274376eab813eda018b3a
Binary files /dev/null and b/utils/rsc/rc_dark/branch_line@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_line_disabled.png b/utils/rsc/rc_dark/branch_line_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..01c6cffa7a4c41e39c8b2f2ad8ac1f60807ae0d2
Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_disabled.png differ
diff --git a/utils/rsc/rc_dark/branch_line_disabled@2x.png b/utils/rsc/rc_dark/branch_line_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..57789e942675a34da6a6a113f14ac483cffb93f6
Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_line_focus.png b/utils/rsc/rc_dark/branch_line_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..599626230bff816cfdf552ed76a7623fc1e83c58
Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_focus.png differ
diff --git a/utils/rsc/rc_dark/branch_line_focus@2x.png b/utils/rsc/rc_dark/branch_line_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..34e7d603f7aeb233f097c963069f24011c1324da
Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_line_pressed.png b/utils/rsc/rc_dark/branch_line_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a54b0948d7de3b7b5b7651abdb8caaa23f91080
Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_pressed.png differ
diff --git a/utils/rsc/rc_dark/branch_line_pressed@2x.png b/utils/rsc/rc_dark/branch_line_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb74fd3243db35b207fc12b7309450008792736d
Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_more.png b/utils/rsc/rc_dark/branch_more.png
new file mode 100644
index 0000000000000000000000000000000000000000..045f963fac6eb74a5b978c23fe7e58ebb2bb5027
Binary files /dev/null and b/utils/rsc/rc_dark/branch_more.png differ
diff --git a/utils/rsc/rc_dark/branch_more@2x.png b/utils/rsc/rc_dark/branch_more@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ccde0931651541714654a629be4ffcf391f6ce61
Binary files /dev/null and b/utils/rsc/rc_dark/branch_more@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_more_disabled.png b/utils/rsc/rc_dark/branch_more_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..8630b91c95381b851e7caab3ef7ec5b0e92e31ca
Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_disabled.png differ
diff --git a/utils/rsc/rc_dark/branch_more_disabled@2x.png b/utils/rsc/rc_dark/branch_more_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..37d2cdbbd5479aeb25be4e5f3f5dde5be7229c0a
Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_more_focus.png b/utils/rsc/rc_dark/branch_more_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..38067367f8da378cc48efc893076fbcf831bd6db
Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_focus.png differ
diff --git a/utils/rsc/rc_dark/branch_more_focus@2x.png b/utils/rsc/rc_dark/branch_more_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d80ccb8ccba7e3fd3c279a3ddad6adf020d60855
Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_more_pressed.png b/utils/rsc/rc_dark/branch_more_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..a306eb288f0ce1ee9fcfe32e951f50d99a870320
Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_pressed.png differ
diff --git a/utils/rsc/rc_dark/branch_more_pressed@2x.png b/utils/rsc/rc_dark/branch_more_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7044b28223febf305198af5cabafa1779416736a
Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_open.png b/utils/rsc/rc_dark/branch_open.png
new file mode 100644
index 0000000000000000000000000000000000000000..445ec718101e8becb0f4b3952a52b66dd5a62721
Binary files /dev/null and b/utils/rsc/rc_dark/branch_open.png differ
diff --git a/utils/rsc/rc_dark/branch_open@2x.png b/utils/rsc/rc_dark/branch_open@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..febb31878907d870b65c1a4c7cd426b9e179fe47
Binary files /dev/null and b/utils/rsc/rc_dark/branch_open@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_open_disabled.png b/utils/rsc/rc_dark/branch_open_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b840d7678dbb711fdcbda65cd2501255a8e6c0d
Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_disabled.png differ
diff --git a/utils/rsc/rc_dark/branch_open_disabled@2x.png b/utils/rsc/rc_dark/branch_open_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6c5b40ed2195fb73751770d977a7673d4c3ce2b
Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_open_focus.png b/utils/rsc/rc_dark/branch_open_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..fecf8733e1be04a11efd690f1b4b406a81308058
Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_focus.png differ
diff --git a/utils/rsc/rc_dark/branch_open_focus@2x.png b/utils/rsc/rc_dark/branch_open_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..296d17553ccf8e51068f163eb1dbf52aa0f563af
Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/branch_open_pressed.png b/utils/rsc/rc_dark/branch_open_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a7cffab5491b36d923c598813ce2848ce763f97
Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_pressed.png differ
diff --git a/utils/rsc/rc_dark/branch_open_pressed@2x.png b/utils/rsc/rc_dark/branch_open_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..24e282c85cf22a5c2101f14a54effe7bff4249d8
Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_checked.png b/utils/rsc/rc_dark/checkbox_checked.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa5f56720d7a0b4ed7c94e8417af0de691af2925
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked.png differ
diff --git a/utils/rsc/rc_dark/checkbox_checked@2x.png b/utils/rsc/rc_dark/checkbox_checked@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..60b4fb2ae13132b5a7c3c26cca5eac0a9969cc72
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_checked_disabled.png b/utils/rsc/rc_dark/checkbox_checked_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..208f3709efd963dbb2a42821027180a49a6a899a
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_disabled.png differ
diff --git a/utils/rsc/rc_dark/checkbox_checked_disabled@2x.png b/utils/rsc/rc_dark/checkbox_checked_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c8ad0c584186158c8ec9c8d0a282b319492a591
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_checked_focus.png b/utils/rsc/rc_dark/checkbox_checked_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..a35def37feec07aad46c3f90bdc12e680d150cc8
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_focus.png differ
diff --git a/utils/rsc/rc_dark/checkbox_checked_focus@2x.png b/utils/rsc/rc_dark/checkbox_checked_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..925cd36208f8e985dec5e47bd4480413afd69dcc
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_checked_pressed.png b/utils/rsc/rc_dark/checkbox_checked_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..f95dc13eb9b6e69937fe0b0e3bcc05bff1d823c0
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_pressed.png differ
diff --git a/utils/rsc/rc_dark/checkbox_checked_pressed@2x.png b/utils/rsc/rc_dark/checkbox_checked_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..641c047aef546eb4a66da486c9b14092b503aac3
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate.png b/utils/rsc/rc_dark/checkbox_indeterminate.png
new file mode 100644
index 0000000000000000000000000000000000000000..02de1ad2c56e5a0d6e7f418f6d669ac60e6a2770
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate.png differ
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate@2x.png b/utils/rsc/rc_dark/checkbox_indeterminate@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8fabf6ea488aaddfdbf948802c07ab944044e003
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_disabled.png b/utils/rsc/rc_dark/checkbox_indeterminate_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..df99affe016d77926885f4e79454a790af168ec3
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_disabled.png differ
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_disabled@2x.png b/utils/rsc/rc_dark/checkbox_indeterminate_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..3102eaa3f59bd213cb312df5d946016118eba943
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_focus.png b/utils/rsc/rc_dark/checkbox_indeterminate_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..370454348f95a416c5c2ba27ded03e72e8564835
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_focus.png differ
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_focus@2x.png b/utils/rsc/rc_dark/checkbox_indeterminate_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8da0a8c983d3206248ed93b450c7c293b2d817db
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_pressed.png b/utils/rsc/rc_dark/checkbox_indeterminate_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..b971d7fae5cffdffb0cb0ee5a170a4152c0baac1
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_pressed.png differ
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_pressed@2x.png b/utils/rsc/rc_dark/checkbox_indeterminate_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e37b8433ae4fc97f4a952769041f84726577b08
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_unchecked.png b/utils/rsc/rc_dark/checkbox_unchecked.png
new file mode 100644
index 0000000000000000000000000000000000000000..80bcf2b660c529f9d19349f9180e8df76f0f466a
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked.png differ
diff --git a/utils/rsc/rc_dark/checkbox_unchecked@2x.png b/utils/rsc/rc_dark/checkbox_unchecked@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..df0fa4d5a841597365069e8027e0ad71910ad7d9
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_disabled.png b/utils/rsc/rc_dark/checkbox_unchecked_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..ede58c818d906470a46438b5a038e478d67e475f
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_disabled.png differ
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_disabled@2x.png b/utils/rsc/rc_dark/checkbox_unchecked_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6721b38f5f24dc28bee8ea4a3ca0e9f8108a4c01
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_focus.png b/utils/rsc/rc_dark/checkbox_unchecked_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..3883d2d5a28cc6fd2b7cb9cfa54ec435687409b5
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_focus.png differ
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_focus@2x.png b/utils/rsc/rc_dark/checkbox_unchecked_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..35c061c0db3db83ddad5fb72cf43eeb06446b58a
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_pressed.png b/utils/rsc/rc_dark/checkbox_unchecked_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..d98639eedce57060249d9a5c39b5d189804b0c2a
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_pressed.png differ
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_pressed@2x.png b/utils/rsc/rc_dark/checkbox_unchecked_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..88a52460dce4edef3484455c45dee9572511e6f5
Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/line_horizontal.png b/utils/rsc/rc_dark/line_horizontal.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc858c8d0ce607e693694425a4e1e82f2b882f97
Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal.png differ
diff --git a/utils/rsc/rc_dark/line_horizontal@2x.png b/utils/rsc/rc_dark/line_horizontal@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ea4f9c1c178c6a22334bc9144c58451e74f99a3
Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal@2x.png differ
diff --git a/utils/rsc/rc_dark/line_horizontal_disabled.png b/utils/rsc/rc_dark/line_horizontal_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..72e073a789692e5c2346142b990dcfa47c9c410c
Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_disabled.png differ
diff --git a/utils/rsc/rc_dark/line_horizontal_disabled@2x.png b/utils/rsc/rc_dark/line_horizontal_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..09a439df962a68164c87bfda552670a44a941c18
Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/line_horizontal_focus.png b/utils/rsc/rc_dark/line_horizontal_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..c84512bb54d6bb2046f3552363db0b7faa1f6620
Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_focus.png differ
diff --git a/utils/rsc/rc_dark/line_horizontal_focus@2x.png b/utils/rsc/rc_dark/line_horizontal_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8dd58f609f7e73774edb47f36c7e53c20d419a08
Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/line_horizontal_pressed.png b/utils/rsc/rc_dark/line_horizontal_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ca2605bd5a275df2266842439d0725f170647d3
Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_pressed.png differ
diff --git a/utils/rsc/rc_dark/line_horizontal_pressed@2x.png b/utils/rsc/rc_dark/line_horizontal_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd966178122b2875018a1430f7fa213f200fe6e4
Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/line_vertical.png b/utils/rsc/rc_dark/line_vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..49a9105261779cb93e4a66ca49d4cd52681081c2
Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical.png differ
diff --git a/utils/rsc/rc_dark/line_vertical@2x.png b/utils/rsc/rc_dark/line_vertical@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..cbb017ee609e3f273e34f084775e4cc1824b89c6
Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical@2x.png differ
diff --git a/utils/rsc/rc_dark/line_vertical_disabled.png b/utils/rsc/rc_dark/line_vertical_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..96585468854c16306fb1bd201e9a047f57610e13
Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_disabled.png differ
diff --git a/utils/rsc/rc_dark/line_vertical_disabled@2x.png b/utils/rsc/rc_dark/line_vertical_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7836a9465433e489635a9e48e45c748dddecb5d2
Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/line_vertical_focus.png b/utils/rsc/rc_dark/line_vertical_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..512ee7d235a51e815b319907242ec62705bddc2c
Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_focus.png differ
diff --git a/utils/rsc/rc_dark/line_vertical_focus@2x.png b/utils/rsc/rc_dark/line_vertical_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..af503251d4abd58ec684d81819f531d97cc98f00
Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/line_vertical_pressed.png b/utils/rsc/rc_dark/line_vertical_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..b8dd215356f3471b30b411bce8ec8a2a86533eda
Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_pressed.png differ
diff --git a/utils/rsc/rc_dark/line_vertical_pressed@2x.png b/utils/rsc/rc_dark/line_vertical_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1d43a83e28d6d433a5c9b9f8e8be57f3bba786a
Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/radio_checked.png b/utils/rsc/rc_dark/radio_checked.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a1d26a4f17cd1fe8d8839310a97b4bf80068f97
Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked.png differ
diff --git a/utils/rsc/rc_dark/radio_checked@2x.png b/utils/rsc/rc_dark/radio_checked@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb2cbb46c00a699fc20749d7bfdfedab44d6941a
Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked@2x.png differ
diff --git a/utils/rsc/rc_dark/radio_checked_disabled.png b/utils/rsc/rc_dark/radio_checked_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..f78c15360f84f414dee6911d6bc2a82d4261c236
Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_disabled.png differ
diff --git a/utils/rsc/rc_dark/radio_checked_disabled@2x.png b/utils/rsc/rc_dark/radio_checked_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..30168e86bc2d6438454babf56baafb7c1a419f51
Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/radio_checked_focus.png b/utils/rsc/rc_dark/radio_checked_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d9c9801cf0b6ff3649e3eb4b6e641719ecadd20
Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_focus.png differ
diff --git a/utils/rsc/rc_dark/radio_checked_focus@2x.png b/utils/rsc/rc_dark/radio_checked_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..63476a0752671e91713c24391dd98aa7bfd80b56
Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/radio_checked_pressed.png b/utils/rsc/rc_dark/radio_checked_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..421ecb44a48b3c36647c2d1e7288f48d3124d52e
Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_pressed.png differ
diff --git a/utils/rsc/rc_dark/radio_checked_pressed@2x.png b/utils/rsc/rc_dark/radio_checked_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9030e10138c4604d59f620a4fa3e69da8f228b33
Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/radio_unchecked.png b/utils/rsc/rc_dark/radio_unchecked.png
new file mode 100644
index 0000000000000000000000000000000000000000..23b06ced329a3197e5ddec6467c5d881b40dc52e
Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked.png differ
diff --git a/utils/rsc/rc_dark/radio_unchecked@2x.png b/utils/rsc/rc_dark/radio_unchecked@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..41e790ac764a1c951fffc2559cecd2c87d87d59f
Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked@2x.png differ
diff --git a/utils/rsc/rc_dark/radio_unchecked_disabled.png b/utils/rsc/rc_dark/radio_unchecked_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..075ca8557a941aa42638ed74990897756311b87a
Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_disabled.png differ
diff --git a/utils/rsc/rc_dark/radio_unchecked_disabled@2x.png b/utils/rsc/rc_dark/radio_unchecked_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..61cd48ffe12c5da696c0634928382744f01838ad
Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/radio_unchecked_focus.png b/utils/rsc/rc_dark/radio_unchecked_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..d58758039c280f8bffaceac2db5ac63d4cd3a850
Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_focus.png differ
diff --git a/utils/rsc/rc_dark/radio_unchecked_focus@2x.png b/utils/rsc/rc_dark/radio_unchecked_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f12c860be431b46ed6351643e9ba8a3c39aa854
Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/radio_unchecked_pressed.png b/utils/rsc/rc_dark/radio_unchecked_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..37c09a6d81e007bcf678f7a835755cb928a6933a
Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_pressed.png differ
diff --git a/utils/rsc/rc_dark/radio_unchecked_pressed@2x.png b/utils/rsc/rc_dark/radio_unchecked_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e424e4b37ae52a2a94d351b855b2167bc27f5b2
Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal.png b/utils/rsc/rc_dark/toolbar_move_horizontal.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d2f51f062442018b2ea3b0558b1ccf442d73ea8
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal@2x.png b/utils/rsc/rc_dark/toolbar_move_horizontal@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c35b4653240feb15e25c4b840b598c5b47628e69
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_disabled.png b/utils/rsc/rc_dark/toolbar_move_horizontal_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..013ac4578b12fc76571f47db420fcb2653a4eca8
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_disabled.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png b/utils/rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f713dd4d046c76717979a0d47a57ccaba9631404
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_focus.png b/utils/rsc/rc_dark/toolbar_move_horizontal_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d0d425889d977a6a6b0b92786dea52168791861
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_focus.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_focus@2x.png b/utils/rsc/rc_dark/toolbar_move_horizontal_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a5ca39b1eb7ece9a93e3d76627ae2efb2746bfc
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_pressed.png b/utils/rsc/rc_dark/toolbar_move_horizontal_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..e414c0c52bc0b10c01ee74448217e6a44a5e11dd
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_pressed.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png b/utils/rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e8e8af20f3502fff80898ec36910768e740fe2bc
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical.png b/utils/rsc/rc_dark/toolbar_move_vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..140846d759a7ff963856278443400398aa1f48f3
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical@2x.png b/utils/rsc/rc_dark/toolbar_move_vertical@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7edf454a3b72a890f5c177f22a11e0d83a4b80c2
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_disabled.png b/utils/rsc/rc_dark/toolbar_move_vertical_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cd85dd72434f5171f88f8d259bb21150186da3b
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_disabled.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_disabled@2x.png b/utils/rsc/rc_dark/toolbar_move_vertical_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..07d5ae1bffe7e5b37934788ef4f4face59da1ecb
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_focus.png b/utils/rsc/rc_dark/toolbar_move_vertical_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..9aac0365ad51127f595ecece819298531ad89ab9
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_focus.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_focus@2x.png b/utils/rsc/rc_dark/toolbar_move_vertical_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3b1d1805cb3fe3c4ead89149b2c6528ce6cf155
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_pressed.png b/utils/rsc/rc_dark/toolbar_move_vertical_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..30b3921e20e5c01d2839ced911886aad7674711e
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_pressed.png differ
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_pressed@2x.png b/utils/rsc/rc_dark/toolbar_move_vertical_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd01207452e9c6acbe6f2bff42e02217b69849cd
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal.png b/utils/rsc/rc_dark/toolbar_separator_horizontal.png
new file mode 100644
index 0000000000000000000000000000000000000000..96e2689ff5f7f4f5c69ec2c9bd5ecac9ee60c346
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal@2x.png b/utils/rsc/rc_dark/toolbar_separator_horizontal@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5944e44c9550998d5b4ce1b448b1fffd79e0042e
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..941e14509d5b8c58c484db94925f6f6d09a4be09
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e44a33be6c9523e88a75557fda60da7c348e4a9d
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_focus.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..590b314711ced2ff4b6aa08022cce45a9cca0e11
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_focus.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca88313f67c91854ee2b3a89bfbbf8d25d0f6002
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..38004682a2a882747f0036f792655109c96123b5
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d4b88c0476bb5b540ddf5108a02b52fe26618d8f
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical.png b/utils/rsc/rc_dark/toolbar_separator_vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..b503c8093ee49c71fae9ae15d78c6163cf10a41d
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical@2x.png b/utils/rsc/rc_dark/toolbar_separator_vertical@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2725a7fa1aee6f336b84b25639cdfe63ffa14d38
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_disabled.png b/utils/rsc/rc_dark/toolbar_separator_vertical_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..6aa1fbdd763f029569ac0f31d10ea9627d4edced
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_disabled.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png b/utils/rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e54cfa8ec05ee3ff66c6ba131919b7a70974f1b
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_focus.png b/utils/rsc/rc_dark/toolbar_separator_vertical_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..fcdfc0f21835c0e22d2a6f1010ca2e3f0bd0e37e
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_focus.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_focus@2x.png b/utils/rsc/rc_dark/toolbar_separator_vertical_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..51b0839655f68fea36835f3b18acb7857ec06bdd
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_pressed.png b/utils/rsc/rc_dark/toolbar_separator_vertical_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d6f84d51ff46471d0aa34652ecbde506cefddb4
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_pressed.png differ
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png b/utils/rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..3876a8e87650fd78fdc753ed3cd853d14f6f9a21
Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/transparent.png b/utils/rsc/rc_dark/transparent.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15
Binary files /dev/null and b/utils/rsc/rc_dark/transparent.png differ
diff --git a/utils/rsc/rc_dark/transparent@2x.png b/utils/rsc/rc_dark/transparent@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70
Binary files /dev/null and b/utils/rsc/rc_dark/transparent@2x.png differ
diff --git a/utils/rsc/rc_dark/transparent_disabled.png b/utils/rsc/rc_dark/transparent_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15
Binary files /dev/null and b/utils/rsc/rc_dark/transparent_disabled.png differ
diff --git a/utils/rsc/rc_dark/transparent_disabled@2x.png b/utils/rsc/rc_dark/transparent_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70
Binary files /dev/null and b/utils/rsc/rc_dark/transparent_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/transparent_focus.png b/utils/rsc/rc_dark/transparent_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15
Binary files /dev/null and b/utils/rsc/rc_dark/transparent_focus.png differ
diff --git a/utils/rsc/rc_dark/transparent_focus@2x.png b/utils/rsc/rc_dark/transparent_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70
Binary files /dev/null and b/utils/rsc/rc_dark/transparent_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/transparent_pressed.png b/utils/rsc/rc_dark/transparent_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15
Binary files /dev/null and b/utils/rsc/rc_dark/transparent_pressed.png differ
diff --git a/utils/rsc/rc_dark/transparent_pressed@2x.png b/utils/rsc/rc_dark/transparent_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70
Binary files /dev/null and b/utils/rsc/rc_dark/transparent_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/window_close.png b/utils/rsc/rc_dark/window_close.png
new file mode 100644
index 0000000000000000000000000000000000000000..0115ca3f32bedff8b25115c025f0de5a19c4c658
Binary files /dev/null and b/utils/rsc/rc_dark/window_close.png differ
diff --git a/utils/rsc/rc_dark/window_close@2x.png b/utils/rsc/rc_dark/window_close@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..41dcd8160dd3e5b127eaafd36851568e2f1c2b4a
Binary files /dev/null and b/utils/rsc/rc_dark/window_close@2x.png differ
diff --git a/utils/rsc/rc_dark/window_close_disabled.png b/utils/rsc/rc_dark/window_close_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..55144fff865d59d462d69cee53b6a914095df698
Binary files /dev/null and b/utils/rsc/rc_dark/window_close_disabled.png differ
diff --git a/utils/rsc/rc_dark/window_close_disabled@2x.png b/utils/rsc/rc_dark/window_close_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..766aef7c1a8d870f23adecf56437544246d8b2bc
Binary files /dev/null and b/utils/rsc/rc_dark/window_close_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/window_close_focus.png b/utils/rsc/rc_dark/window_close_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..61df25f829749c6e3d10d70c06590297f06b7e58
Binary files /dev/null and b/utils/rsc/rc_dark/window_close_focus.png differ
diff --git a/utils/rsc/rc_dark/window_close_focus@2x.png b/utils/rsc/rc_dark/window_close_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ea50b1a9bae52b49d29f3f80b987aac61655418
Binary files /dev/null and b/utils/rsc/rc_dark/window_close_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/window_close_pressed.png b/utils/rsc/rc_dark/window_close_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..042311def70b6d5de7265b6529aad4f7506058f2
Binary files /dev/null and b/utils/rsc/rc_dark/window_close_pressed.png differ
diff --git a/utils/rsc/rc_dark/window_close_pressed@2x.png b/utils/rsc/rc_dark/window_close_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b54d9a16d99fe14a0a1c56f6b9abd857ce3cb14b
Binary files /dev/null and b/utils/rsc/rc_dark/window_close_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/window_grip.png b/utils/rsc/rc_dark/window_grip.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ea1c438f5f1d016d97565196f0753c85139ea9d
Binary files /dev/null and b/utils/rsc/rc_dark/window_grip.png differ
diff --git a/utils/rsc/rc_dark/window_grip@2x.png b/utils/rsc/rc_dark/window_grip@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b31309e8b2e372f833ce144a9a43b6f8cc8c130f
Binary files /dev/null and b/utils/rsc/rc_dark/window_grip@2x.png differ
diff --git a/utils/rsc/rc_dark/window_grip_disabled.png b/utils/rsc/rc_dark/window_grip_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..b66e23b9982253f8430dff6389546010896bfe16
Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_disabled.png differ
diff --git a/utils/rsc/rc_dark/window_grip_disabled@2x.png b/utils/rsc/rc_dark/window_grip_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee3d0ba8866ee3e6a531a73a1f370e44abd0a22a
Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/window_grip_focus.png b/utils/rsc/rc_dark/window_grip_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..400af158cd3c34ff79ad51c6085124bd6e36431e
Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_focus.png differ
diff --git a/utils/rsc/rc_dark/window_grip_focus@2x.png b/utils/rsc/rc_dark/window_grip_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..83c9ec634bd431ba197bf789f241922b6a747bd8
Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/window_grip_pressed.png b/utils/rsc/rc_dark/window_grip_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..f71dd8c9a53b88d1581c788ffb252626ba5d5d40
Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_pressed.png differ
diff --git a/utils/rsc/rc_dark/window_grip_pressed@2x.png b/utils/rsc/rc_dark/window_grip_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..109878a352612428fb1a4dc1ffc7a26a809a1267
Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/window_minimize.png b/utils/rsc/rc_dark/window_minimize.png
new file mode 100644
index 0000000000000000000000000000000000000000..07517b943ae1f3f9c992c126bd8ba8c18358b914
Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize.png differ
diff --git a/utils/rsc/rc_dark/window_minimize@2x.png b/utils/rsc/rc_dark/window_minimize@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..434bb07cd3d0f0166679d6153aeaeaa24a03bac4
Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize@2x.png differ
diff --git a/utils/rsc/rc_dark/window_minimize_disabled.png b/utils/rsc/rc_dark/window_minimize_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1ee4aedad5a25e978e2b997db6a0805a41453f0
Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_disabled.png differ
diff --git a/utils/rsc/rc_dark/window_minimize_disabled@2x.png b/utils/rsc/rc_dark/window_minimize_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8454ad832e0f95d6b8adb24ad5122117d4f7f135
Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/window_minimize_focus.png b/utils/rsc/rc_dark/window_minimize_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b56123f1c96e560b24178fb637bb2393b088521
Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_focus.png differ
diff --git a/utils/rsc/rc_dark/window_minimize_focus@2x.png b/utils/rsc/rc_dark/window_minimize_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a66fb71ecc3320b93389ac4004c28fea8d610c50
Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/window_minimize_pressed.png b/utils/rsc/rc_dark/window_minimize_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b70c0ade02bfed3be09755b6bf124469ad5d5d5
Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_pressed.png differ
diff --git a/utils/rsc/rc_dark/window_minimize_pressed@2x.png b/utils/rsc/rc_dark/window_minimize_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5750a8e7ed5bc6e188eb7c8979808fca3cc2d35f
Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_pressed@2x.png differ
diff --git a/utils/rsc/rc_dark/window_undock.png b/utils/rsc/rc_dark/window_undock.png
new file mode 100644
index 0000000000000000000000000000000000000000..9be9cdf778bbfbfbdd97d4aa9fc10b38f33c12ab
Binary files /dev/null and b/utils/rsc/rc_dark/window_undock.png differ
diff --git a/utils/rsc/rc_dark/window_undock@2x.png b/utils/rsc/rc_dark/window_undock@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..40345ab9425d92d9963ecac67d9426040f28840a
Binary files /dev/null and b/utils/rsc/rc_dark/window_undock@2x.png differ
diff --git a/utils/rsc/rc_dark/window_undock_disabled.png b/utils/rsc/rc_dark/window_undock_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea92aee04c517a899c7eb269d8885a705972705d
Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_disabled.png differ
diff --git a/utils/rsc/rc_dark/window_undock_disabled@2x.png b/utils/rsc/rc_dark/window_undock_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb8d5483c867e9c8bcc88d20678270ff4cb7a267
Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_disabled@2x.png differ
diff --git a/utils/rsc/rc_dark/window_undock_focus.png b/utils/rsc/rc_dark/window_undock_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b0338d9b61c8e6dfe1b6c8c91b066b782cbd7f5
Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_focus.png differ
diff --git a/utils/rsc/rc_dark/window_undock_focus@2x.png b/utils/rsc/rc_dark/window_undock_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9fea75b09fcf4153c3704064e5734dccda20ee82
Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_focus@2x.png differ
diff --git a/utils/rsc/rc_dark/window_undock_pressed.png b/utils/rsc/rc_dark/window_undock_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..4bc657b213bc91a2f86c2ae739be755d6065dc63
Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_pressed.png differ
diff --git a/utils/rsc/rc_dark/window_undock_pressed@2x.png b/utils/rsc/rc_dark/window_undock_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ea0c2c7143090345d288a5e720b084cd04b8f20
Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/.keep b/utils/rsc/rc_light/.keep
new file mode 100644
index 0000000000000000000000000000000000000000..8d1c8b69c3fce7bea45c73efd06983e3c419a92f
--- /dev/null
+++ b/utils/rsc/rc_light/.keep
@@ -0,0 +1 @@
+ 
diff --git a/utils/rsc/rc_light/arrow_down.png b/utils/rsc/rc_light/arrow_down.png
new file mode 100644
index 0000000000000000000000000000000000000000..f07aa76f0a27557e384736cec7005e890f436760
Binary files /dev/null and b/utils/rsc/rc_light/arrow_down.png differ
diff --git a/utils/rsc/rc_light/arrow_down@2x.png b/utils/rsc/rc_light/arrow_down@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b16b9df1793bf7c0cd5cc4146197af81975c5eb5
Binary files /dev/null and b/utils/rsc/rc_light/arrow_down@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_down_disabled.png b/utils/rsc/rc_light/arrow_down_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..d94e55b9556496f376b459855de1293abd065be0
Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_disabled.png differ
diff --git a/utils/rsc/rc_light/arrow_down_disabled@2x.png b/utils/rsc/rc_light/arrow_down_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1bc8741611e72ceadee1df350153ca181398a12
Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_down_focus.png b/utils/rsc/rc_light/arrow_down_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..fcd6812051f67ff751901af6245fda5b48ec3274
Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_focus.png differ
diff --git a/utils/rsc/rc_light/arrow_down_focus@2x.png b/utils/rsc/rc_light/arrow_down_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0463e5e961ab24b62a8145c6ed316177d32a135
Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_focus@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_down_pressed.png b/utils/rsc/rc_light/arrow_down_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..bbe79a97ec90c3bb27599cbe636e84ad5aac0c52
Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_pressed.png differ
diff --git a/utils/rsc/rc_light/arrow_down_pressed@2x.png b/utils/rsc/rc_light/arrow_down_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..28ae890aef4d1d3f70218ef09901fc0ccc1b8955
Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_left.png b/utils/rsc/rc_light/arrow_left.png
new file mode 100644
index 0000000000000000000000000000000000000000..0708701071be553bc2364bf39c90cd82e870cd47
Binary files /dev/null and b/utils/rsc/rc_light/arrow_left.png differ
diff --git a/utils/rsc/rc_light/arrow_left@2x.png b/utils/rsc/rc_light/arrow_left@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c067c7ac179e04688a0e78ceb912dc163d5114ec
Binary files /dev/null and b/utils/rsc/rc_light/arrow_left@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_left_disabled.png b/utils/rsc/rc_light/arrow_left_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..76ae59b1006800ff01cf26373e3983121e606936
Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_disabled.png differ
diff --git a/utils/rsc/rc_light/arrow_left_disabled@2x.png b/utils/rsc/rc_light/arrow_left_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..815f33c0754aac322dc02c007b7ebfed4d1bc4c4
Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_left_focus.png b/utils/rsc/rc_light/arrow_left_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0856669a6b55f5a387f53dfa9f6807f9cbdeac0
Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_focus.png differ
diff --git a/utils/rsc/rc_light/arrow_left_focus@2x.png b/utils/rsc/rc_light/arrow_left_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..48af7238cd41b93df566ba7d942c120728b47bf6
Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_focus@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_left_pressed.png b/utils/rsc/rc_light/arrow_left_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..f47340e3cbc8adb953941da0b1ec2e1d9af52bf1
Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_pressed.png differ
diff --git a/utils/rsc/rc_light/arrow_left_pressed@2x.png b/utils/rsc/rc_light/arrow_left_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..51b5b7a07e443fb026c50cc2e5a605465fd90a77
Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_right.png b/utils/rsc/rc_light/arrow_right.png
new file mode 100644
index 0000000000000000000000000000000000000000..45f7857e5ae0556dd1dbf0425971d9b878c1fdc1
Binary files /dev/null and b/utils/rsc/rc_light/arrow_right.png differ
diff --git a/utils/rsc/rc_light/arrow_right@2x.png b/utils/rsc/rc_light/arrow_right@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..bafdf16c9b87c4accdf08fc1954fa5300ad7d7cb
Binary files /dev/null and b/utils/rsc/rc_light/arrow_right@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_right_disabled.png b/utils/rsc/rc_light/arrow_right_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..82d1dd28482df443c2ec0e373d602b7eb0a654e6
Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_disabled.png differ
diff --git a/utils/rsc/rc_light/arrow_right_disabled@2x.png b/utils/rsc/rc_light/arrow_right_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d95d832318f60408a60e930ed14163b862ded9b
Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_right_focus.png b/utils/rsc/rc_light/arrow_right_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b3c1b6f8bae4c6663cd2dca3051603fe44c27db
Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_focus.png differ
diff --git a/utils/rsc/rc_light/arrow_right_focus@2x.png b/utils/rsc/rc_light/arrow_right_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a3870bddeaf7bf7715d2c3d0c8caca772a6e8dd
Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_focus@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_right_pressed.png b/utils/rsc/rc_light/arrow_right_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4176d59deb802e60a66ab8f6239a8ad52af9e40
Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_pressed.png differ
diff --git a/utils/rsc/rc_light/arrow_right_pressed@2x.png b/utils/rsc/rc_light/arrow_right_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..24dfe4e19dd58d8c7d9876b6a3242060502c8d24
Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_up.png b/utils/rsc/rc_light/arrow_up.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e185babf67d98b152259abf3d178d3bb1521df8
Binary files /dev/null and b/utils/rsc/rc_light/arrow_up.png differ
diff --git a/utils/rsc/rc_light/arrow_up@2x.png b/utils/rsc/rc_light/arrow_up@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6925245e377c9ac01513f183f0e442ace5c9f5fa
Binary files /dev/null and b/utils/rsc/rc_light/arrow_up@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_up_disabled.png b/utils/rsc/rc_light/arrow_up_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..54394e210a3bf3d69fbea3f3859ec44a0ff327f0
Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_disabled.png differ
diff --git a/utils/rsc/rc_light/arrow_up_disabled@2x.png b/utils/rsc/rc_light/arrow_up_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f582d3236c5cf8c9aa40503268f0d282273c4cf
Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_up_focus.png b/utils/rsc/rc_light/arrow_up_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..4bc54733f4419fb970547edb55e90f05151a9e1c
Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_focus.png differ
diff --git a/utils/rsc/rc_light/arrow_up_focus@2x.png b/utils/rsc/rc_light/arrow_up_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..bdf7f6b2d09fbc613c65a9a471876df08cc3fbc6
Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_focus@2x.png differ
diff --git a/utils/rsc/rc_light/arrow_up_pressed.png b/utils/rsc/rc_light/arrow_up_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..04bc9e4ecf0f1c0c79792d9b5ea275aad38c9de5
Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_pressed.png differ
diff --git a/utils/rsc/rc_light/arrow_up_pressed@2x.png b/utils/rsc/rc_light/arrow_up_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd6231f26b1dfaf0b7b93a7ee8affc4407d0c954
Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/base_icon.png b/utils/rsc/rc_light/base_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164
Binary files /dev/null and b/utils/rsc/rc_light/base_icon.png differ
diff --git a/utils/rsc/rc_light/base_icon@2x.png b/utils/rsc/rc_light/base_icon@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb
Binary files /dev/null and b/utils/rsc/rc_light/base_icon@2x.png differ
diff --git a/utils/rsc/rc_light/base_icon_disabled.png b/utils/rsc/rc_light/base_icon_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164
Binary files /dev/null and b/utils/rsc/rc_light/base_icon_disabled.png differ
diff --git a/utils/rsc/rc_light/base_icon_disabled@2x.png b/utils/rsc/rc_light/base_icon_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb
Binary files /dev/null and b/utils/rsc/rc_light/base_icon_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/base_icon_focus.png b/utils/rsc/rc_light/base_icon_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164
Binary files /dev/null and b/utils/rsc/rc_light/base_icon_focus.png differ
diff --git a/utils/rsc/rc_light/base_icon_focus@2x.png b/utils/rsc/rc_light/base_icon_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb
Binary files /dev/null and b/utils/rsc/rc_light/base_icon_focus@2x.png differ
diff --git a/utils/rsc/rc_light/base_icon_pressed.png b/utils/rsc/rc_light/base_icon_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164
Binary files /dev/null and b/utils/rsc/rc_light/base_icon_pressed.png differ
diff --git a/utils/rsc/rc_light/base_icon_pressed@2x.png b/utils/rsc/rc_light/base_icon_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb
Binary files /dev/null and b/utils/rsc/rc_light/base_icon_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/branch_closed.png b/utils/rsc/rc_light/branch_closed.png
new file mode 100644
index 0000000000000000000000000000000000000000..f41c767e640a9208ad56ccd25f8f28239f029f3b
Binary files /dev/null and b/utils/rsc/rc_light/branch_closed.png differ
diff --git a/utils/rsc/rc_light/branch_closed@2x.png b/utils/rsc/rc_light/branch_closed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..24bb5fba2f3ed61b06a3409e20efa1e9714864ad
Binary files /dev/null and b/utils/rsc/rc_light/branch_closed@2x.png differ
diff --git a/utils/rsc/rc_light/branch_closed_disabled.png b/utils/rsc/rc_light/branch_closed_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a6b24dea5583998cc4b790a7baad3c4a7ec13ed
Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_disabled.png differ
diff --git a/utils/rsc/rc_light/branch_closed_disabled@2x.png b/utils/rsc/rc_light/branch_closed_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..91d7d651873177a9187a195b2fbc83e498bed70c
Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/branch_closed_focus.png b/utils/rsc/rc_light/branch_closed_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..2058d895ff170f8c03157fdfe1457776b4a872f4
Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_focus.png differ
diff --git a/utils/rsc/rc_light/branch_closed_focus@2x.png b/utils/rsc/rc_light/branch_closed_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..18d665af9a414ebba9917ecf0b68bf5825105b01
Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_focus@2x.png differ
diff --git a/utils/rsc/rc_light/branch_closed_pressed.png b/utils/rsc/rc_light/branch_closed_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..35f982fab8890adb6c2b616218ada89da703f95f
Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_pressed.png differ
diff --git a/utils/rsc/rc_light/branch_closed_pressed@2x.png b/utils/rsc/rc_light/branch_closed_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2008d625698cfd29b6df82eb2479b380aa9771c5
Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/branch_end.png b/utils/rsc/rc_light/branch_end.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b0bfe03d1f36bf48ebf861252b57a432dba88ca
Binary files /dev/null and b/utils/rsc/rc_light/branch_end.png differ
diff --git a/utils/rsc/rc_light/branch_end@2x.png b/utils/rsc/rc_light/branch_end@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ce5439cb9eabc847cf0c99924faf1419e6f7c42
Binary files /dev/null and b/utils/rsc/rc_light/branch_end@2x.png differ
diff --git a/utils/rsc/rc_light/branch_end_disabled.png b/utils/rsc/rc_light/branch_end_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..dfa9baa8dc2fc214e97910ec08d223d107a2f814
Binary files /dev/null and b/utils/rsc/rc_light/branch_end_disabled.png differ
diff --git a/utils/rsc/rc_light/branch_end_disabled@2x.png b/utils/rsc/rc_light/branch_end_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ef19e30d82e58554ae4fd66df28b43991c18bf3
Binary files /dev/null and b/utils/rsc/rc_light/branch_end_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/branch_end_focus.png b/utils/rsc/rc_light/branch_end_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..85f17bad7b09a480301f8cab9bae604b0ab977c8
Binary files /dev/null and b/utils/rsc/rc_light/branch_end_focus.png differ
diff --git a/utils/rsc/rc_light/branch_end_focus@2x.png b/utils/rsc/rc_light/branch_end_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d756b29193b1958e595b58ba2c3532fe9c504a1b
Binary files /dev/null and b/utils/rsc/rc_light/branch_end_focus@2x.png differ
diff --git a/utils/rsc/rc_light/branch_end_pressed.png b/utils/rsc/rc_light/branch_end_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a868658ef543ffdc9c25145f5721b529ced1ec0
Binary files /dev/null and b/utils/rsc/rc_light/branch_end_pressed.png differ
diff --git a/utils/rsc/rc_light/branch_end_pressed@2x.png b/utils/rsc/rc_light/branch_end_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..561e6ebf665cc1e188e77081c8fe8cdd982dce98
Binary files /dev/null and b/utils/rsc/rc_light/branch_end_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/branch_line.png b/utils/rsc/rc_light/branch_line.png
new file mode 100644
index 0000000000000000000000000000000000000000..e55608ddc44041e6875d044582bb58e87a3a877e
Binary files /dev/null and b/utils/rsc/rc_light/branch_line.png differ
diff --git a/utils/rsc/rc_light/branch_line@2x.png b/utils/rsc/rc_light/branch_line@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..59967fd6045bf54d8f927ad7545b2a6d5188525d
Binary files /dev/null and b/utils/rsc/rc_light/branch_line@2x.png differ
diff --git a/utils/rsc/rc_light/branch_line_disabled.png b/utils/rsc/rc_light/branch_line_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..d758b7b6c78864f524ced3802cd3f8efff41e140
Binary files /dev/null and b/utils/rsc/rc_light/branch_line_disabled.png differ
diff --git a/utils/rsc/rc_light/branch_line_disabled@2x.png b/utils/rsc/rc_light/branch_line_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a35c3a66db3defd6cb02579a9cb358888cdf1e4c
Binary files /dev/null and b/utils/rsc/rc_light/branch_line_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/branch_line_focus.png b/utils/rsc/rc_light/branch_line_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..800cc587c483dbee955da409427b59288831b1fb
Binary files /dev/null and b/utils/rsc/rc_light/branch_line_focus.png differ
diff --git a/utils/rsc/rc_light/branch_line_focus@2x.png b/utils/rsc/rc_light/branch_line_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d21d64a9024ddf142156b8570b66784e154bc49
Binary files /dev/null and b/utils/rsc/rc_light/branch_line_focus@2x.png differ
diff --git a/utils/rsc/rc_light/branch_line_pressed.png b/utils/rsc/rc_light/branch_line_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..63804657946000d765af42a2280b81b69c7a38f2
Binary files /dev/null and b/utils/rsc/rc_light/branch_line_pressed.png differ
diff --git a/utils/rsc/rc_light/branch_line_pressed@2x.png b/utils/rsc/rc_light/branch_line_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ca30cd61e1160f5cc8265684f007deedd8d6fbb
Binary files /dev/null and b/utils/rsc/rc_light/branch_line_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/branch_more.png b/utils/rsc/rc_light/branch_more.png
new file mode 100644
index 0000000000000000000000000000000000000000..14012929504b155d6330f54cb8d25949bb38134d
Binary files /dev/null and b/utils/rsc/rc_light/branch_more.png differ
diff --git a/utils/rsc/rc_light/branch_more@2x.png b/utils/rsc/rc_light/branch_more@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a3b1e98fdbcfbf7fa67a1f11dc08244374a2df1
Binary files /dev/null and b/utils/rsc/rc_light/branch_more@2x.png differ
diff --git a/utils/rsc/rc_light/branch_more_disabled.png b/utils/rsc/rc_light/branch_more_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..d801611bb6675386f58aff4f9138938bc182af72
Binary files /dev/null and b/utils/rsc/rc_light/branch_more_disabled.png differ
diff --git a/utils/rsc/rc_light/branch_more_disabled@2x.png b/utils/rsc/rc_light/branch_more_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2505e2a7c95c93a6c9572e2dfcab3a228b633627
Binary files /dev/null and b/utils/rsc/rc_light/branch_more_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/branch_more_focus.png b/utils/rsc/rc_light/branch_more_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..be5b2cbfaf9abea347dd0404091e459ed3f116f8
Binary files /dev/null and b/utils/rsc/rc_light/branch_more_focus.png differ
diff --git a/utils/rsc/rc_light/branch_more_focus@2x.png b/utils/rsc/rc_light/branch_more_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca0f99e0e84d0a37ac142c34db23514d0d864070
Binary files /dev/null and b/utils/rsc/rc_light/branch_more_focus@2x.png differ
diff --git a/utils/rsc/rc_light/branch_more_pressed.png b/utils/rsc/rc_light/branch_more_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e744b78e6c0a49ab95cc571691e5b0b201653dc
Binary files /dev/null and b/utils/rsc/rc_light/branch_more_pressed.png differ
diff --git a/utils/rsc/rc_light/branch_more_pressed@2x.png b/utils/rsc/rc_light/branch_more_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..fdaf01f03a444512deefd7a11a3349516060683a
Binary files /dev/null and b/utils/rsc/rc_light/branch_more_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/branch_open.png b/utils/rsc/rc_light/branch_open.png
new file mode 100644
index 0000000000000000000000000000000000000000..e43b940cb937f25691aae96e4e3ea0f4e450833d
Binary files /dev/null and b/utils/rsc/rc_light/branch_open.png differ
diff --git a/utils/rsc/rc_light/branch_open@2x.png b/utils/rsc/rc_light/branch_open@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..691e38c1800a8867f92fe00beca6b836bdb01802
Binary files /dev/null and b/utils/rsc/rc_light/branch_open@2x.png differ
diff --git a/utils/rsc/rc_light/branch_open_disabled.png b/utils/rsc/rc_light/branch_open_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e445449edad920d2de14891da1f782ae9897324
Binary files /dev/null and b/utils/rsc/rc_light/branch_open_disabled.png differ
diff --git a/utils/rsc/rc_light/branch_open_disabled@2x.png b/utils/rsc/rc_light/branch_open_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..246bdbbedfcb5fb4aca92cb54f63dbb50d53ff1e
Binary files /dev/null and b/utils/rsc/rc_light/branch_open_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/branch_open_focus.png b/utils/rsc/rc_light/branch_open_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4b332e3ed9c29876248e3b7d2195c6f265b0222
Binary files /dev/null and b/utils/rsc/rc_light/branch_open_focus.png differ
diff --git a/utils/rsc/rc_light/branch_open_focus@2x.png b/utils/rsc/rc_light/branch_open_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..27c8dcacf0af2297ffd30f924efcfc637f942ee5
Binary files /dev/null and b/utils/rsc/rc_light/branch_open_focus@2x.png differ
diff --git a/utils/rsc/rc_light/branch_open_pressed.png b/utils/rsc/rc_light/branch_open_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..205f9414ec35740290c325a86d08cee8c5b251ac
Binary files /dev/null and b/utils/rsc/rc_light/branch_open_pressed.png differ
diff --git a/utils/rsc/rc_light/branch_open_pressed@2x.png b/utils/rsc/rc_light/branch_open_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d09878a613a2811c9e6f4dd9ebbf1e0c10d85b5f
Binary files /dev/null and b/utils/rsc/rc_light/branch_open_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_checked.png b/utils/rsc/rc_light/checkbox_checked.png
new file mode 100644
index 0000000000000000000000000000000000000000..f63f2b38fab618da63bff593247e38ba91e6631a
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked.png differ
diff --git a/utils/rsc/rc_light/checkbox_checked@2x.png b/utils/rsc/rc_light/checkbox_checked@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7617ed7dc3b439986dc765b2787f8454e53ca2fe
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_checked_disabled.png b/utils/rsc/rc_light/checkbox_checked_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..2eab1ba0cf9a1114b47cea7d899929400bd77e34
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_disabled.png differ
diff --git a/utils/rsc/rc_light/checkbox_checked_disabled@2x.png b/utils/rsc/rc_light/checkbox_checked_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..518d55d5ee0c316f5fa56fa198fcf2cb1bc53cd2
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_checked_focus.png b/utils/rsc/rc_light/checkbox_checked_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..fccb71edc125bd08f0b7a5dee25ee03d382aeea3
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_focus.png differ
diff --git a/utils/rsc/rc_light/checkbox_checked_focus@2x.png b/utils/rsc/rc_light/checkbox_checked_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e12217d0a137a68d839ced88dfdc53c73f29ab7d
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_focus@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_checked_pressed.png b/utils/rsc/rc_light/checkbox_checked_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..d93ca9903515453f4198175d205e69062cbf5961
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_pressed.png differ
diff --git a/utils/rsc/rc_light/checkbox_checked_pressed@2x.png b/utils/rsc/rc_light/checkbox_checked_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ee1d3514d76a422d35b447b44665ad4f1b46d37
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_indeterminate.png b/utils/rsc/rc_light/checkbox_indeterminate.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f4d0f161f1babd0002b3e13b91ac4baccbc7c2f
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate.png differ
diff --git a/utils/rsc/rc_light/checkbox_indeterminate@2x.png b/utils/rsc/rc_light/checkbox_indeterminate@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d106399b30f90a690538d6a8d5a92c4c3f6fd6a
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_disabled.png b/utils/rsc/rc_light/checkbox_indeterminate_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a093c819d1ebb22a820f669d224eef2322b4312
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_disabled.png differ
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_disabled@2x.png b/utils/rsc/rc_light/checkbox_indeterminate_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..06db251f9d3f06e4095a9b7cdc590f31fae731d8
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_focus.png b/utils/rsc/rc_light/checkbox_indeterminate_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..33fd572bd5da908201928da694a97dec85dd0ac2
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_focus.png differ
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_focus@2x.png b/utils/rsc/rc_light/checkbox_indeterminate_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..691ddf1da5b8e09a53e38f89919db98e75a3078a
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_focus@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_pressed.png b/utils/rsc/rc_light/checkbox_indeterminate_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..2aff90928b57aa7f1f10bf31e3a0c9cdd218c6ca
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_pressed.png differ
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_pressed@2x.png b/utils/rsc/rc_light/checkbox_indeterminate_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb4e03861146cf258a7f0f8f660141fe8c94151a
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_unchecked.png b/utils/rsc/rc_light/checkbox_unchecked.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c06087845dbb428d0e7dd696bcf0143cdaf825b
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked.png differ
diff --git a/utils/rsc/rc_light/checkbox_unchecked@2x.png b/utils/rsc/rc_light/checkbox_unchecked@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa064878689ce07db2c1b40b21eb3692aa3e0284
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_unchecked_disabled.png b/utils/rsc/rc_light/checkbox_unchecked_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..bba927e5015a81d332a37a016661ebbeb92ab76d
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_disabled.png differ
diff --git a/utils/rsc/rc_light/checkbox_unchecked_disabled@2x.png b/utils/rsc/rc_light/checkbox_unchecked_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..592d5949a3b70b6bc49501887c42fc1fe1187f76
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_unchecked_focus.png b/utils/rsc/rc_light/checkbox_unchecked_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e460184aacde17678523721508b2335fb0c52a0
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_focus.png differ
diff --git a/utils/rsc/rc_light/checkbox_unchecked_focus@2x.png b/utils/rsc/rc_light/checkbox_unchecked_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f96917b5bcdf880d14bb0ebaf35280ca1367328
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_focus@2x.png differ
diff --git a/utils/rsc/rc_light/checkbox_unchecked_pressed.png b/utils/rsc/rc_light/checkbox_unchecked_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..5fd771d1affd8e97f7e8e6c9111319c7b8422c41
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_pressed.png differ
diff --git a/utils/rsc/rc_light/checkbox_unchecked_pressed@2x.png b/utils/rsc/rc_light/checkbox_unchecked_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..57f25fbae4e4ccb5c09fbeb01d3e083501622b92
Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/line_horizontal.png b/utils/rsc/rc_light/line_horizontal.png
new file mode 100644
index 0000000000000000000000000000000000000000..22a0b1e2bda682c4908f1e653657f55c80154c6f
Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal.png differ
diff --git a/utils/rsc/rc_light/line_horizontal@2x.png b/utils/rsc/rc_light/line_horizontal@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8bd474944f6665d072ee68e7513c8365d91de263
Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal@2x.png differ
diff --git a/utils/rsc/rc_light/line_horizontal_disabled.png b/utils/rsc/rc_light/line_horizontal_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..3dc9c69e0a22825f6b4fd9affcd423ed81bf5de3
Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_disabled.png differ
diff --git a/utils/rsc/rc_light/line_horizontal_disabled@2x.png b/utils/rsc/rc_light/line_horizontal_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2d3664af470d4f350338ae84156dadd7fb7028d
Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/line_horizontal_focus.png b/utils/rsc/rc_light/line_horizontal_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..136faa84c730952d0755ceebc09f2ebe16cab30f
Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_focus.png differ
diff --git a/utils/rsc/rc_light/line_horizontal_focus@2x.png b/utils/rsc/rc_light/line_horizontal_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..398d224326c262d712e86d3d93ae72e29878754a
Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_focus@2x.png differ
diff --git a/utils/rsc/rc_light/line_horizontal_pressed.png b/utils/rsc/rc_light/line_horizontal_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2027b14ed008c7a73d50a243b549db2588324de
Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_pressed.png differ
diff --git a/utils/rsc/rc_light/line_horizontal_pressed@2x.png b/utils/rsc/rc_light/line_horizontal_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..24b83299bcf314b563ef5b240284bdf5c5a65bee
Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/line_vertical.png b/utils/rsc/rc_light/line_vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a4c5f36451087f0c95b8aa804e534d1fa2399d7
Binary files /dev/null and b/utils/rsc/rc_light/line_vertical.png differ
diff --git a/utils/rsc/rc_light/line_vertical@2x.png b/utils/rsc/rc_light/line_vertical@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e67ccf52bbe14ac3ec41c453f54df7c655fedcbe
Binary files /dev/null and b/utils/rsc/rc_light/line_vertical@2x.png differ
diff --git a/utils/rsc/rc_light/line_vertical_disabled.png b/utils/rsc/rc_light/line_vertical_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..9700752d912bc97de4c64ed249098375ad042299
Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_disabled.png differ
diff --git a/utils/rsc/rc_light/line_vertical_disabled@2x.png b/utils/rsc/rc_light/line_vertical_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f57c568f6d28edfc8e9118042ef1c739db0d717
Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/line_vertical_focus.png b/utils/rsc/rc_light/line_vertical_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..15ef20825437205a95311d20eb0544567c0e16d8
Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_focus.png differ
diff --git a/utils/rsc/rc_light/line_vertical_focus@2x.png b/utils/rsc/rc_light/line_vertical_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a35e97ed0afaccc739bc41aa9684a1bf8764c394
Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_focus@2x.png differ
diff --git a/utils/rsc/rc_light/line_vertical_pressed.png b/utils/rsc/rc_light/line_vertical_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..7399cd38ed378d8451df98bdac539cfd8cd15cbf
Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_pressed.png differ
diff --git a/utils/rsc/rc_light/line_vertical_pressed@2x.png b/utils/rsc/rc_light/line_vertical_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e018b9af84508e103e77ab01f4130b0c49d747ab
Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/radio_checked.png b/utils/rsc/rc_light/radio_checked.png
new file mode 100644
index 0000000000000000000000000000000000000000..878b6c53ca712fa52fe63de8e328c6f6a754e06d
Binary files /dev/null and b/utils/rsc/rc_light/radio_checked.png differ
diff --git a/utils/rsc/rc_light/radio_checked@2x.png b/utils/rsc/rc_light/radio_checked@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed20cd4cf59145ed9129ff13370dc5738c28717a
Binary files /dev/null and b/utils/rsc/rc_light/radio_checked@2x.png differ
diff --git a/utils/rsc/rc_light/radio_checked_disabled.png b/utils/rsc/rc_light/radio_checked_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aa26ee00bd5a9ce1f18ff546a07bf38c34f55e5
Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_disabled.png differ
diff --git a/utils/rsc/rc_light/radio_checked_disabled@2x.png b/utils/rsc/rc_light/radio_checked_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..72b69d59b455c82c9fd6d836518563e43cf0852d
Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/radio_checked_focus.png b/utils/rsc/rc_light/radio_checked_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..90a54c6e147dc3cbe74ebb03a68ab711493681b7
Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_focus.png differ
diff --git a/utils/rsc/rc_light/radio_checked_focus@2x.png b/utils/rsc/rc_light/radio_checked_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..81771885f454f93aa6c5ef5797243ca8963ba746
Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_focus@2x.png differ
diff --git a/utils/rsc/rc_light/radio_checked_pressed.png b/utils/rsc/rc_light/radio_checked_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..10170e374bc19ac4bad90e3aa406284f0c6fd3cc
Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_pressed.png differ
diff --git a/utils/rsc/rc_light/radio_checked_pressed@2x.png b/utils/rsc/rc_light/radio_checked_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..378608298a764e18d79d60c16827dd132ecbf48b
Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/radio_unchecked.png b/utils/rsc/rc_light/radio_unchecked.png
new file mode 100644
index 0000000000000000000000000000000000000000..639a55480c306760aea335c3ae6d76dd3599bc87
Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked.png differ
diff --git a/utils/rsc/rc_light/radio_unchecked@2x.png b/utils/rsc/rc_light/radio_unchecked@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2f23fd6fadcf3d8df123c5ab57a458be159b538
Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked@2x.png differ
diff --git a/utils/rsc/rc_light/radio_unchecked_disabled.png b/utils/rsc/rc_light/radio_unchecked_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f7424ca789b69fe823be10d1bb87b886aa8cf70
Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_disabled.png differ
diff --git a/utils/rsc/rc_light/radio_unchecked_disabled@2x.png b/utils/rsc/rc_light/radio_unchecked_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..bf9330f240526f2862fab7a2966b99e21d99ce9a
Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/radio_unchecked_focus.png b/utils/rsc/rc_light/radio_unchecked_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..2316d7872ce225c1f38a5c4c19d624b9319a2c5c
Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_focus.png differ
diff --git a/utils/rsc/rc_light/radio_unchecked_focus@2x.png b/utils/rsc/rc_light/radio_unchecked_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9695890babd83acd13888368e24fc2afb90848a1
Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_focus@2x.png differ
diff --git a/utils/rsc/rc_light/radio_unchecked_pressed.png b/utils/rsc/rc_light/radio_unchecked_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f2a7ba214bc6213a649038fbe829020d7728efc
Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_pressed.png differ
diff --git a/utils/rsc/rc_light/radio_unchecked_pressed@2x.png b/utils/rsc/rc_light/radio_unchecked_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..22a7e713937697b98d66f3b8e9bf51d1955525cd
Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal.png b/utils/rsc/rc_light/toolbar_move_horizontal.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1109caf89ce96ab689fe7483f1f08a7beb155c3
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal@2x.png b/utils/rsc/rc_light/toolbar_move_horizontal@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..69bb6347d8eec0037ae0431e22275375d79e0ef3
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_disabled.png b/utils/rsc/rc_light/toolbar_move_horizontal_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..e11055a6a7f8caf75f65b2ae09a47b818aab63bb
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_disabled.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_disabled@2x.png b/utils/rsc/rc_light/toolbar_move_horizontal_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9085b627eb3f46dd926633ae7c2eb7449830d80d
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_focus.png b/utils/rsc/rc_light/toolbar_move_horizontal_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c0be5a0e51cf5a2f4561dfc10cd52775dc30534
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_focus.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_focus@2x.png b/utils/rsc/rc_light/toolbar_move_horizontal_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f01973d05d8135f5128266c820fbcfd24a042c24
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_focus@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_pressed.png b/utils/rsc/rc_light/toolbar_move_horizontal_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..94c0f5b6db2cf006b194cbb1945c3f68f9e6495c
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_pressed.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_pressed@2x.png b/utils/rsc/rc_light/toolbar_move_horizontal_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..612ea774fdb0a5ceee7da4a621ad3ef87286d94f
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_vertical.png b/utils/rsc/rc_light/toolbar_move_vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..b16c48c40bedc7e07e3a86c1847d349a65623150
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_vertical@2x.png b/utils/rsc/rc_light/toolbar_move_vertical@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..853962cd646000c6f27d82947c32f47794d743ec
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_disabled.png b/utils/rsc/rc_light/toolbar_move_vertical_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b3caec07d9ddd5e17f7c97ac54c8aca50e84202
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_disabled.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_disabled@2x.png b/utils/rsc/rc_light/toolbar_move_vertical_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..bdda6796a2d6503002c68763c0aaf3216a54c356
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_focus.png b/utils/rsc/rc_light/toolbar_move_vertical_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a432a4ba065dcba6a1789bdb901bbcde0b6e397
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_focus.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_focus@2x.png b/utils/rsc/rc_light/toolbar_move_vertical_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..817a8da55b6c5874eaf5126619524107fd8f22cf
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_focus@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_pressed.png b/utils/rsc/rc_light/toolbar_move_vertical_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..50228af7b83ab26c5c3f6c5e0a47225f02dea6e6
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_pressed.png differ
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_pressed@2x.png b/utils/rsc/rc_light/toolbar_move_vertical_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..1946791add3e39c17b445ad34d9b93d6c9c095b6
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal.png b/utils/rsc/rc_light/toolbar_separator_horizontal.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6661b4b1d2d0393855851c9349553ecd0088f53
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal@2x.png b/utils/rsc/rc_light/toolbar_separator_horizontal@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..77cadc21754545e3e5b58d95da8736f94016b33b
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_disabled.png b/utils/rsc/rc_light/toolbar_separator_horizontal_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..a65e13e466a3fc0cffecb1f6c854ab976d84072b
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_disabled.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png b/utils/rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..77b9abcaf168ff16949dafb8c9944e759b4d7c8d
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_focus.png b/utils/rsc/rc_light/toolbar_separator_horizontal_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..843633ffa0a215ed0f903365ac869ccbd7ed9501
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_focus.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_focus@2x.png b/utils/rsc/rc_light/toolbar_separator_horizontal_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..21d4011fc09f17dc21621b086561ca1d9ff19757
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_focus@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_pressed.png b/utils/rsc/rc_light/toolbar_separator_horizontal_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..edf05752f7cc915adbcb42b1f061b5b401aa03d2
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_pressed.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png b/utils/rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..977ec62a96f00d5c8095f2e765955ea17fc87976
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical.png b/utils/rsc/rc_light/toolbar_separator_vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..2776d87b55f13a288b0c8c3ea7657139ee1109a7
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical@2x.png b/utils/rsc/rc_light/toolbar_separator_vertical@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab9e773a881358ada1977e20ef1bd98d4481bc1e
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_disabled.png b/utils/rsc/rc_light/toolbar_separator_vertical_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb443940bcabf340aa6ff32107f4aac9a7fba175
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_disabled.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_disabled@2x.png b/utils/rsc/rc_light/toolbar_separator_vertical_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f4e241ab2dcfca237a1aab138bdeb3b8432c8886
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_focus.png b/utils/rsc/rc_light/toolbar_separator_vertical_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a45d55c0a7f75b7497e69079b8654cfbb82ebe9
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_focus.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_focus@2x.png b/utils/rsc/rc_light/toolbar_separator_vertical_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c58d8d120c94cb98be3fa68f6d18628c343ad82e
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_focus@2x.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_pressed.png b/utils/rsc/rc_light/toolbar_separator_vertical_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..408fa169a2d10ec8710fb7efcc6e164e9feb4ce9
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_pressed.png differ
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_pressed@2x.png b/utils/rsc/rc_light/toolbar_separator_vertical_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..92feb3652c483a8a3aec5490db82d55f95487769
Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/transparent.png b/utils/rsc/rc_light/transparent.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15
Binary files /dev/null and b/utils/rsc/rc_light/transparent.png differ
diff --git a/utils/rsc/rc_light/transparent@2x.png b/utils/rsc/rc_light/transparent@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70
Binary files /dev/null and b/utils/rsc/rc_light/transparent@2x.png differ
diff --git a/utils/rsc/rc_light/transparent_disabled.png b/utils/rsc/rc_light/transparent_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15
Binary files /dev/null and b/utils/rsc/rc_light/transparent_disabled.png differ
diff --git a/utils/rsc/rc_light/transparent_disabled@2x.png b/utils/rsc/rc_light/transparent_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70
Binary files /dev/null and b/utils/rsc/rc_light/transparent_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/transparent_focus.png b/utils/rsc/rc_light/transparent_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15
Binary files /dev/null and b/utils/rsc/rc_light/transparent_focus.png differ
diff --git a/utils/rsc/rc_light/transparent_focus@2x.png b/utils/rsc/rc_light/transparent_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70
Binary files /dev/null and b/utils/rsc/rc_light/transparent_focus@2x.png differ
diff --git a/utils/rsc/rc_light/transparent_pressed.png b/utils/rsc/rc_light/transparent_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15
Binary files /dev/null and b/utils/rsc/rc_light/transparent_pressed.png differ
diff --git a/utils/rsc/rc_light/transparent_pressed@2x.png b/utils/rsc/rc_light/transparent_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70
Binary files /dev/null and b/utils/rsc/rc_light/transparent_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/window_close.png b/utils/rsc/rc_light/window_close.png
new file mode 100644
index 0000000000000000000000000000000000000000..607170baec87d280727e478769257c4c61bca81f
Binary files /dev/null and b/utils/rsc/rc_light/window_close.png differ
diff --git a/utils/rsc/rc_light/window_close@2x.png b/utils/rsc/rc_light/window_close@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..607f894a6f2a01effb76118d255c4d9da4187860
Binary files /dev/null and b/utils/rsc/rc_light/window_close@2x.png differ
diff --git a/utils/rsc/rc_light/window_close_disabled.png b/utils/rsc/rc_light/window_close_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..449deec63f6c161640505d134478e191798b10a9
Binary files /dev/null and b/utils/rsc/rc_light/window_close_disabled.png differ
diff --git a/utils/rsc/rc_light/window_close_disabled@2x.png b/utils/rsc/rc_light/window_close_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..eda9fb4ce0fd67efa74720fe0b590652e47cd5a1
Binary files /dev/null and b/utils/rsc/rc_light/window_close_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/window_close_focus.png b/utils/rsc/rc_light/window_close_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..1cd49c73e473d219431b165266a99df7c83e7565
Binary files /dev/null and b/utils/rsc/rc_light/window_close_focus.png differ
diff --git a/utils/rsc/rc_light/window_close_focus@2x.png b/utils/rsc/rc_light/window_close_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a13da212905e9cbebf52e836d5997e34ed12f7bc
Binary files /dev/null and b/utils/rsc/rc_light/window_close_focus@2x.png differ
diff --git a/utils/rsc/rc_light/window_close_pressed.png b/utils/rsc/rc_light/window_close_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5e2a9143238f169fc48b890299b92969f22d9d5
Binary files /dev/null and b/utils/rsc/rc_light/window_close_pressed.png differ
diff --git a/utils/rsc/rc_light/window_close_pressed@2x.png b/utils/rsc/rc_light/window_close_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..278288ed1b8570e7c118cb23199e9754d15458c5
Binary files /dev/null and b/utils/rsc/rc_light/window_close_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/window_grip.png b/utils/rsc/rc_light/window_grip.png
new file mode 100644
index 0000000000000000000000000000000000000000..c03b1dce3c3dcda2aba76e41c8852d397f424594
Binary files /dev/null and b/utils/rsc/rc_light/window_grip.png differ
diff --git a/utils/rsc/rc_light/window_grip@2x.png b/utils/rsc/rc_light/window_grip@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7074bd6d2ff3d4aaade701d07b1b51e462f76992
Binary files /dev/null and b/utils/rsc/rc_light/window_grip@2x.png differ
diff --git a/utils/rsc/rc_light/window_grip_disabled.png b/utils/rsc/rc_light/window_grip_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c479884b2686a5f1e9d9bd7e5bfed36a8d3f977
Binary files /dev/null and b/utils/rsc/rc_light/window_grip_disabled.png differ
diff --git a/utils/rsc/rc_light/window_grip_disabled@2x.png b/utils/rsc/rc_light/window_grip_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb4a063a73c36e62ea0714caa18a8737defd17c2
Binary files /dev/null and b/utils/rsc/rc_light/window_grip_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/window_grip_focus.png b/utils/rsc/rc_light/window_grip_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..46c77d37a65e05aff81c02b063a7213c7fb73955
Binary files /dev/null and b/utils/rsc/rc_light/window_grip_focus.png differ
diff --git a/utils/rsc/rc_light/window_grip_focus@2x.png b/utils/rsc/rc_light/window_grip_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f487c6adb72221fd94057f3fec1b68e13cdd9498
Binary files /dev/null and b/utils/rsc/rc_light/window_grip_focus@2x.png differ
diff --git a/utils/rsc/rc_light/window_grip_pressed.png b/utils/rsc/rc_light/window_grip_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4d07590502e8170c2bda4b338e60c57f4d2ff2e
Binary files /dev/null and b/utils/rsc/rc_light/window_grip_pressed.png differ
diff --git a/utils/rsc/rc_light/window_grip_pressed@2x.png b/utils/rsc/rc_light/window_grip_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..54dc3d8a8d55e66f8cd951bc040b9b580491de70
Binary files /dev/null and b/utils/rsc/rc_light/window_grip_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/window_minimize.png b/utils/rsc/rc_light/window_minimize.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e1a7f12ceab6f6f5c0ab6690a6f32f9bc7cdfe7
Binary files /dev/null and b/utils/rsc/rc_light/window_minimize.png differ
diff --git a/utils/rsc/rc_light/window_minimize@2x.png b/utils/rsc/rc_light/window_minimize@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dcd2570cc1018ef90d0f23e17925aa3604597fa2
Binary files /dev/null and b/utils/rsc/rc_light/window_minimize@2x.png differ
diff --git a/utils/rsc/rc_light/window_minimize_disabled.png b/utils/rsc/rc_light/window_minimize_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..9fd0ef16937bb4608fd90af1deab88adab58d9df
Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_disabled.png differ
diff --git a/utils/rsc/rc_light/window_minimize_disabled@2x.png b/utils/rsc/rc_light/window_minimize_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..251cefcced3cdb3d041bd85e5831502db38d0010
Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/window_minimize_focus.png b/utils/rsc/rc_light/window_minimize_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d748783b02fe7f165277a48dc34b12c64b0a0ef
Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_focus.png differ
diff --git a/utils/rsc/rc_light/window_minimize_focus@2x.png b/utils/rsc/rc_light/window_minimize_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..97901fed5951f2a24b9ee204dc78b1611a70d96c
Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_focus@2x.png differ
diff --git a/utils/rsc/rc_light/window_minimize_pressed.png b/utils/rsc/rc_light/window_minimize_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..78de6557bb99d6f307c345e2cbd974e3af5ba19a
Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_pressed.png differ
diff --git a/utils/rsc/rc_light/window_minimize_pressed@2x.png b/utils/rsc/rc_light/window_minimize_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b961459b9eb7039bf4c3359225c7a6411c3522a
Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_pressed@2x.png differ
diff --git a/utils/rsc/rc_light/window_undock.png b/utils/rsc/rc_light/window_undock.png
new file mode 100644
index 0000000000000000000000000000000000000000..4da192f33059a391cb573c35ebe42308f3e3735f
Binary files /dev/null and b/utils/rsc/rc_light/window_undock.png differ
diff --git a/utils/rsc/rc_light/window_undock@2x.png b/utils/rsc/rc_light/window_undock@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cfe75ccc9eac3399b449749c8010d3c219a7e31
Binary files /dev/null and b/utils/rsc/rc_light/window_undock@2x.png differ
diff --git a/utils/rsc/rc_light/window_undock_disabled.png b/utils/rsc/rc_light/window_undock_disabled.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0db9c7a76f63ab00d40c261dccad4153eabba03
Binary files /dev/null and b/utils/rsc/rc_light/window_undock_disabled.png differ
diff --git a/utils/rsc/rc_light/window_undock_disabled@2x.png b/utils/rsc/rc_light/window_undock_disabled@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9468c9f32c2c8dec3c56cbf781b0c99d44acc4db
Binary files /dev/null and b/utils/rsc/rc_light/window_undock_disabled@2x.png differ
diff --git a/utils/rsc/rc_light/window_undock_focus.png b/utils/rsc/rc_light/window_undock_focus.png
new file mode 100644
index 0000000000000000000000000000000000000000..85fb0468ee2ab2b6099fca3741be4d3ec58d4cac
Binary files /dev/null and b/utils/rsc/rc_light/window_undock_focus.png differ
diff --git a/utils/rsc/rc_light/window_undock_focus@2x.png b/utils/rsc/rc_light/window_undock_focus@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e13b2f0757dcc3627fd10ea713f238be2650cea4
Binary files /dev/null and b/utils/rsc/rc_light/window_undock_focus@2x.png differ
diff --git a/utils/rsc/rc_light/window_undock_pressed.png b/utils/rsc/rc_light/window_undock_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..d368cc9ad20d58001ea94a50754e2127733c3423
Binary files /dev/null and b/utils/rsc/rc_light/window_undock_pressed.png differ
diff --git a/utils/rsc/rc_light/window_undock_pressed@2x.png b/utils/rsc/rc_light/window_undock_pressed@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b30f0dbb6e1e4e567d12072edc8e95f69c9bb9dc
Binary files /dev/null and b/utils/rsc/rc_light/window_undock_pressed@2x.png differ
diff --git a/utils/scripts/icons.bash b/utils/scripts/icons.bash
new file mode 100755
index 0000000000000000000000000000000000000000..91f277df4a4c2ae5ce3da2f131b21afe01200ae3
--- /dev/null
+++ b/utils/scripts/icons.bash
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+COUNTER=0
+FILE=utils/rsc/VivyPartialIcons.tmp
+
+echo -ne "" > $FILE
+
+find -L utils/rsc/icons/vivy/ -type l -exec rm -- {} +
+
+shopt -s globstar
+for ICON in utils/rsc/icons/vivy/**/*.svg
+do
+    COUNTER=$(( $COUNTER + 1 ))
+    ICON=$(echo "$ICON" | sed -e 's+utils/rsc/++g')
+    echo "    <file>$ICON</file>" >> $FILE
+done
+
+cat << EOF
+Generated partial qrc file for $COUNTER icons from the Vivy icon theme.
+Add the content of $FILE to the utils/rsc/VivyRessources.qrc file.
+EOF
diff --git a/vendor/lua-5.4.3/CMakeLists.txt b/vendor/lua-5.4.3/CMakeLists.txt
index 8e5865107302aa06e3b5b3a554c516c413272d2a..e4cfda6f5ff442807c3c787958b44d340025d750 100644
--- a/vendor/lua-5.4.3/CMakeLists.txt
+++ b/vendor/lua-5.4.3/CMakeLists.txt
@@ -5,6 +5,9 @@ if(WIN32)
     add_definitions(-D_CRT_SECURE_NO_WARNINGS)
 endif()
 
+# Pass -fPIC
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
 file(GLOB Lua_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/*.c")
 file(GLOB Lua_INC "${CMAKE_CURRENT_SOURCE_DIR}/src/*.h")
 list(REMOVE_ITEM Lua_SRC "src/lua.c" "src/luac.c")
@@ -12,5 +15,9 @@ list(REMOVE_ITEM Lua_SRC "src/lua.c" "src/luac.c")
 add_library(lua STATIC ${Lua_SRC} ${Lua_INC})
 target_include_directories(lua PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/src/")
 
+if(UNIX)
+    target_link_libraries(lua m)
+endif()
+
 add_executable(lua-cli src/lua.c)
 target_link_libraries(lua-cli PRIVATE lua)