From eea4949d84d628abf242edbf9dfcf48fd9a3f472 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Thu, 9 Oct 2025 17:37:07 +0900 Subject: [PATCH] [UI] Replace emojis with proper icons and clean up UI more --- assets/qt/icons8-opened-folder-96.png | Bin 0 -> 1722 bytes assets/qt/icons8-pause-96.png | Bin 0 -> 763 bytes assets/qt/icons8-play-96.png | Bin 0 -> 1594 bytes assets/qt/icons8-settings-96.png | Bin 0 -> 2655 bytes assets/qt/icons8-user-96.png | Bin 0 -> 1832 bytes src/xenia/app/emulator_window.cc | 4 +- src/xenia/app/game_list_dialog_qt.cc | 145 ++++-- src/xenia/app/game_list_dialog_qt.h | 4 +- src/xenia/ui/ui_resources.qrc | 5 + src/xenia/ui/ui_resources_qrc.cpp | 619 +++++++++++++++++++++++++- src/xenia/ui/windowed_app_main_qt.cc | 43 ++ 11 files changed, 772 insertions(+), 48 deletions(-) create mode 100644 assets/qt/icons8-opened-folder-96.png create mode 100644 assets/qt/icons8-pause-96.png create mode 100644 assets/qt/icons8-play-96.png create mode 100644 assets/qt/icons8-settings-96.png create mode 100644 assets/qt/icons8-user-96.png diff --git a/assets/qt/icons8-opened-folder-96.png b/assets/qt/icons8-opened-folder-96.png new file mode 100644 index 0000000000000000000000000000000000000000..5ddb87c27612915ec02b8cb5ebee3675f2d958f7 GIT binary patch literal 1722 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_rhqPZ!6KiaBrR-s~3%6*WpC>M-zkZnnv zU&!X_*z=q3UGyWN-bH-OhZwYuv9gL!(+DhZ4!l_ZAl>g%Y>}+Qu2rkkq}~=!(!cs8 z2@-CgMB8LQ2nO^X(VJKs$XQ*CcuUh@SJk$Kc>@V6IxPQ3*lKjE>L+}UV z54j&w72FcRFKzgDG4wIqYS_PYKUd5C;9H8y`AJ6&Yz4z>pdy$@7T}@7` z68ZCe%lfIt_A9q_xb2wQwBPT2q^0(xtnQ4eg+U*#XDLYVUpn;h;ST<9o9kz9iQ2TX zx4d!ctkY2o^|od1yrQ&McyC_kzqH$_2RSljiZSv>o#lns6 z82n!NFqef({Cmacz}CPRqq+C)L9^9OmTM<247=t!H_>6n)si128E)Aj>p!|m3oM%= zYsVgv9df+8+w8!z&$4zaeIk}#KQ5N)5aCn!W6342tJRKyY%NoD+Wob*x_q_Y$H9Ea zXwhNyt&G}J-Tz4!ZE1V`!IO2r>(^~_U@<<>P_4fbC3+y5+EVwkXT z9nWSf_khB4KJ>tgshIgZrz`I_K*$k29`cDgElhN#6P;uTpo;n|rLm zxH0_ekGY4{&Ho6l`hO?H|2$)Rw$>xnc7MSS?i%r@|6Z8HcA`bq=)f^XzWJLT@?W=` zRvoML!zf{&+mY`UHJ=X1uiMmfc!dsI#L+m0cjZ5xG}`;jx7EM=xNF9(>T0 z{%3IY>W(>+k2csHC_WI>?l1SldFpIKOT%u)Yr<7g$&Bs(H$Sv@wtjp$^%ld-g7rKb z;wBtcH~zEmSGDspxqy@g$Lbj4MSSzmd}v?sr)^W+e-HURA*Uxn1muproK(cKgQ3C) zWKPP~3J*4m8l!{qI)1$~s~skCa&NWB z|IX0vpY>zwt@983b-DNPthj7`DA(i-DB35SGG{*a)G(pr7_*sJ!H*?v_8z61mi@kD z!!~FA(aLDaVvtaPYpC4>@thX~7C9dJxTHSDX zx$}?k73+>}`9G0S{k58nxzT}#oB97l-PNAW{eM4yNW}|Q%bIVE@rx&4e$cNcQfFdo zYq^U_#;*Dyzd(1|M$Kh!@Aq@Mb6(r>f@?+DkHuF_%vZNp_$)ur?_*(9^=SLw(138( z580vDR2cdD-$d}amuvkw(USLV&F+TQ)eEP*vcAxhAsyGg@z|NNS)#d*uWwdv{kh7Z zT-0BwP4e!BZGvJmrIbwFZXe6AwXu=BbjQ!wB>T=@?+4qB7qJ)2`kRpXW$lOm)_-R1 r+LdkUVY}q?!RiXEK;{3^AMD4@E{T15yds@}fq}u()z4*}Q$iB}(%LwV literal 0 HcmV?d00001 diff --git a/assets/qt/icons8-pause-96.png b/assets/qt/icons8-pause-96.png new file mode 100644 index 0000000000000000000000000000000000000000..faaecd139c18e3033ec47b18e0baa21485927d57 GIT binary patch literal 763 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_q|Jo-U3d6?5L+-J2DXDB=2$(RD9#F=LW$T#K00TNj-k4JAP#A&)=3D}FS039z_! zY%9x3RW`e|GNRJio9&)glY!5-9Tt`H5<+bv)vd+1-b?pJWv|_O4MN;jJdpT+>jOhY zn0-D&_SZ;8J;vjW&AW5`c{a%J;H+V}#~6L!nc2bD2e$so`(w%ZM)KD@jRy=L#D2sa zT;J$^U~ZR``#L7?1EC3m5$ozN=ssZDP`;x2(W|Tf*lJcSf1_Byf8&N)h2RdJm^I=5 ztNz}7x$s>lQy-Ik!}4^FZieEvG~_KM}jc^TD@8lE5Ue^C3^F7w0AU;p$B?6=q! z9+=K`Zb{ReS$P(VB^X7x7+A3S)z>AM}@C(Py zDpo4#?9V!XhN1n{RJnG$zsI)*9#1Rjotov3NK4XhrRo`YmKe=84)!!;U|?YIboFyt I=akR{0JGL$EC2ui literal 0 HcmV?d00001 diff --git a/assets/qt/icons8-play-96.png b/assets/qt/icons8-play-96.png new file mode 100644 index 0000000000000000000000000000000000000000..28b62bc8c2fb1636ccaaf020e488efffce261faa GIT binary patch literal 1594 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 literal 0 HcmV?d00001 diff --git a/assets/qt/icons8-user-96.png b/assets/qt/icons8-user-96.png new file mode 100644 index 0000000000000000000000000000000000000000..7a7d57ca0fef943e44d915c45db88951cb3175f7 GIT binary patch literal 1832 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RWI14-?iy0WWg+Z8+Vb&Z8 z1_riUo-U3d6?5LseVHHXDshZI`i_#8P;w7<8-JU`;`v8(g%-=3tO#tm6f`YJBPcrR zg`4KIdrm92TnGvi?K-8T(7hv!G4M4LhltDn1@mWq>X|ubLFvNhbE?nToP2WcUiG_~ zGoR0VyXU?2WrYt&z(b)S@PJB!)CQIljIsyV76?ahn=mas@cF>s106d~&;8Euj^$K? z>;bz6%nQVC@a3@WQgNCdWWFJArD%nygm}5_C%yv}36=#S7ECe>Wz6rHqFpv9*6po2 zV5NR@USg}k`|ifskJp9AF;qkzsb`d7{>G5cJliGXd+3RJ?hN)@4W0nv?LngX_Vr9k1sunYN$#MfmIYvTUEEO_!Uzv|FYg!nnA3O|$lre=KvD%J`Ij zes!38@3v=E*@RSv%?-u}_zzSIPKf8$VV2sGV_In=mLhmS_P}?c2M#Sy^jTMx_QuMl z=67l}ozJ|~JFDiiN$g7XjLGqZ6I2<5UH<7yeSfU5->Lrg@|PbS!xV(r8}><@)Mpoa z9p~1P=_tm~b7j)!CbfGOC+lNRU(~x>oid?}!Jm2hmM?cijDH@xusxtsQc#U8vz=o% zN6kEePvRE*8Tu@l?Q3RGbgky$Lke#v>`Zic*3QeRu%9JjiIE9gX1m-T zy^KHc^BF!pf3UQ(?cyeaYPcxf9A5cBe4E^5yv18pS$u(;4nd zd^aEUGPDah)iu6LXQ|Nhux?Oq*nHq*%LIGppR+dka2O@^{EphT;2p~Zd;ioGr&|oq zIi&pOs1Y&#dAaobG@l!dIt{xU-#_Wd@1OWb$^B1sla8bC2h9fwK2Q8F@9kyKXNzPm zu>LUfS@S%J6Xw^~Gi3QBL`-;Sal!6^uQU}C(6d_k|>`D2@kH5klaIKFVUd{und;h)UJ__h0wABlbM z!YHA8>HhTXYl2h$#((1evfJzHs`T2^@>W@k+^+>CZ^{#^{6FoFQ|$JLy(j*BYuxdA zx;VqJt~-7|d7`$a#3-F!Dtcg2KC8y1^v|j@-kQ2ydHr}@_&r96bh$}eY;rH1TI#iS zSIE3INypb(gg-hnU1D__X|?=ed#em?s6KnSmK*$K@n6Fv(W99{ETwDRrtl~omJ zV2SvFS|joIQ@TI4IQjc!x!26+OER*1&|liidG6MF+vMF(1#hpsym6c5?~dKFpG#)@ zTv@$tQk0YC@++^FTwS>3m}jnE*7fgSS6!dtBG<@vXECpM+V6{*t+L;=f4q|BOgQAf z@5(z5?E{JK4STJG^QPM*y=RD4b?BdCEbHe{?RRcg!7pvYqW=y(8w9ea#_w*~zEZ`| z`t{Rz+qEg+TbDH6&YS*%PtAF3T_rXJE`P@0v8IBuy{FC`PZ}r@V zFScp08nC~Ky~d@!`iZ!|b@)Da$j19y_nfi% z>B_|wvChi3(}`j8&UfZ(@7w+~2>xzZs@3h(P{*0jChu?8tZ1}3bp0+37KsZo4`y+0 z^7+TJcUINYMPdggpP$coAa|ln>4ML5^-o`UaI*dSm$@s0eMOjNoctaxdBNr<&#gmZ zE8><0as;R{_LN?peEvcG%ZO!FwxUxdA1&f3NRvBZ_0w3^`1{(!dJQf&bQpgb`Tf(@ z^4Gi69N$*wH}y<4J(#wruDDrv;5J9c z2IhYYzA?SOT6QJ2YQb&2)2n*xHmGauy2!7s8nTvUrO3~xLW`VM8cmsIvGUYS?L8rx zGh5bO+?#!s;gw5K^QTz7PtsR~kFj|&7fg@3?&fMCbJ0@3-I?jlM25Xw_BSEMJyhSu zZo2xaX~%-BiF++nnzUVx3OKd6?wBR;_17LB+s7Br$Ywu&hz0~>wEr-kj(?cYyRB7^ Qfq{X+)78&qol`;+0GLj2{r~^~ literal 0 HcmV?d00001 diff --git a/src/xenia/app/emulator_window.cc b/src/xenia/app/emulator_window.cc index f1beacdb5..9638dd0e2 100644 --- a/src/xenia/app/emulator_window.cc +++ b/src/xenia/app/emulator_window.cc @@ -1595,7 +1595,9 @@ void EmulatorWindow::ShowAbout() { "Build Date: %3

" "

For more information, visit github.com/has207/xenia-edge

") + "xenia-edge\">github.com/has207/xenia-edge

" + "

Icons by Icons8

") .arg(XE_BUILD_BRANCH) .arg(XE_BUILD_COMMIT_SHORT) .arg(XE_BUILD_DATE); diff --git a/src/xenia/app/game_list_dialog_qt.cc b/src/xenia/app/game_list_dialog_qt.cc index 0b8396157..fdb68bf3b 100644 --- a/src/xenia/app/game_list_dialog_qt.cc +++ b/src/xenia/app/game_list_dialog_qt.cc @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -86,12 +87,10 @@ void GameListDialogQt::SetupUI() { open_layout->setSpacing(5); auto* open_button = new QToolButton(this); - open_button->setText("📂"); + open_button->setIcon(QIcon(":/xenia/folder-icon.png")); + open_button->setIconSize(QSize(64, 64)); open_button->setMinimumSize(100, 80); open_button->setMaximumSize(100, 80); - QFont open_icon_font = open_button->font(); - open_icon_font.setPointSize(48); - open_button->setFont(open_icon_font); connect(open_button, &QToolButton::clicked, [this]() { if (emulator_window_) { emulator_window_->FileOpen(); @@ -112,22 +111,22 @@ void GameListDialogQt::SetupUI() { play_layout->setContentsMargins(0, 0, 0, 0); play_layout->setSpacing(5); - // Use a button with an icon label overlay for better centering + // Use a button with an icon play_button_ = new QToolButton(this); + play_button_->setIcon(QIcon(":/xenia/play-icon.png")); + play_button_->setIconSize(QSize(64, 64)); play_button_->setMinimumSize(100, 80); play_button_->setMaximumSize(100, 80); play_button_->setEnabled(false); + + // Create opacity effect for greying out + play_opacity_ = new QGraphicsOpacityEffect(play_button_); + play_opacity_->setOpacity(0.4); + play_button_->setGraphicsEffect(play_opacity_); + connect(play_button_, &QToolButton::clicked, this, &GameListDialogQt::OnPlayClicked); - play_icon_label_ = new QLabel("▶", play_button_); - play_icon_label_->setAlignment(Qt::AlignCenter); - QFont icon_font = play_icon_label_->font(); - icon_font.setPointSize(48); - play_icon_label_->setFont(icon_font); - play_icon_label_->setGeometry(0, -8, 100, 80); // Shift up by 8px - play_icon_label_->setAttribute(Qt::WA_TransparentForMouseEvents); - play_label_ = new QLabel("Play", this); play_label_->setAlignment(Qt::AlignCenter); QFont text_font = play_label_->font(); @@ -136,6 +135,11 @@ void GameListDialogQt::SetupUI() { open_label->setFont(text_font); // Apply to open label too play_label_->setFixedHeight(20); + // Create opacity effect for label + play_label_opacity_ = new QGraphicsOpacityEffect(play_label_); + play_label_opacity_->setOpacity(0.4); + play_label_->setGraphicsEffect(play_label_opacity_); + play_layout->addWidget(play_button_); play_layout->addWidget(play_label_); toolbar_layout->addWidget(play_container); @@ -147,10 +151,10 @@ void GameListDialogQt::SetupUI() { settings_layout->setSpacing(5); settings_button_ = new QToolButton(this); - settings_button_->setText("⚙"); + settings_button_->setIcon(QIcon(":/xenia/settings-icon.png")); + settings_button_->setIconSize(QSize(64, 64)); settings_button_->setMinimumSize(100, 80); settings_button_->setMaximumSize(100, 80); - settings_button_->setFont(icon_font); connect(settings_button_, &QToolButton::clicked, this, &GameListDialogQt::OnSettingsClicked); @@ -173,10 +177,10 @@ void GameListDialogQt::SetupUI() { profile_layout->setSpacing(5); profile_button_ = new QToolButton(this); - profile_button_->setText("👤"); + profile_button_->setIcon(QIcon(":/xenia/user-icon.png")); + profile_button_->setIconSize(QSize(64, 64)); profile_button_->setMinimumSize(100, 80); profile_button_->setMaximumSize(100, 80); - profile_button_->setFont(icon_font); profile_button_->setContextMenuPolicy(Qt::CustomContextMenu); connect(profile_button_, &QToolButton::clicked, this, &GameListDialogQt::OnProfileClicked); @@ -211,6 +215,9 @@ void GameListDialogQt::SetupUI() { // Search box search_box_ = new QLineEdit(this); search_box_->setPlaceholderText("Search games..."); + QFont search_font = search_box_->font(); + search_font.setPointSize(16); + search_box_->setFont(search_font); connect(search_box_, &QLineEdit::textChanged, this, &GameListDialogQt::OnFilterTextChanged); @@ -219,19 +226,48 @@ void GameListDialogQt::SetupUI() { main_layout->addWidget(search_box_); + // Custom header widget to match row layout + auto* header_widget = new QWidget(this); + auto* header_layout = new QHBoxLayout(header_widget); + header_layout->setContentsMargins(10, 5, 10, 5); + header_layout->setSpacing(15); + + auto* icon_header = new QLabel("Icon", this); + icon_header->setMinimumWidth(80); + icon_header->setMaximumWidth(80); + QFont header_font = icon_header->font(); + header_font.setBold(true); + icon_header->setFont(header_font); + header_layout->addWidget(icon_header); + + auto* title_header = new QLabel("Title", this); + title_header->setFont(header_font); + header_layout->addWidget(title_header, 1); + + auto* last_played_header = new QLabel("Last Played", this); + last_played_header->setFont(header_font); + last_played_header->setMinimumWidth(200); + last_played_header->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + header_layout->addWidget(last_played_header); + + main_layout->addWidget(header_widget); + // Table widget table_widget_ = new QTableWidget(this); - table_widget_->setColumnCount(3); - table_widget_->setHorizontalHeaderLabels({"Icon", "Title", "Last Played"}); - table_widget_->horizontalHeader()->setStretchLastSection(false); - table_widget_->horizontalHeader()->setSectionResizeMode(1, - QHeaderView::Stretch); + table_widget_->setColumnCount(1); + table_widget_->horizontalHeader()->setVisible(false); + table_widget_->horizontalHeader()->setStretchLastSection(true); table_widget_->verticalHeader()->setVisible(false); table_widget_->setShowGrid(false); table_widget_->setSelectionBehavior(QAbstractItemView::SelectRows); table_widget_->setSelectionMode(QAbstractItemView::SingleSelection); table_widget_->setEditTriggers(QAbstractItemView::NoEditTriggers); table_widget_->setContextMenuPolicy(Qt::CustomContextMenu); + table_widget_->setMouseTracking(true); + + // Disable default table item hover highlighting (we handle it in row widget) + table_widget_->setStyleSheet( + "QTableWidget::item:hover { background-color: transparent; }"); // Auto-hide scrollbar - only show when hovering or scrolling table_widget_->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); @@ -420,10 +456,25 @@ void GameListDialogQt::PopulateTable() { int row = table_widget_->rowCount(); table_widget_->insertRow(row); - // Icon column + // Create a single container widget for the entire row + auto* row_widget = new QWidget(); + row_widget->setAttribute(Qt::WA_Hover); + row_widget->setStyleSheet( + "QWidget { border-bottom: 1px solid rgba(128, 128, 128, 50); }" + "QWidget:hover { background-color: rgba(128, 128, 128, 50); }"); + auto* row_layout = new QHBoxLayout(row_widget); + row_layout->setContentsMargins(10, 10, 10, 10); + row_layout->setSpacing(15); + + // Icon auto* icon_label = new QLabel(); icon_label->setAlignment(Qt::AlignCenter); icon_label->setMinimumSize(80, 80); + icon_label->setMaximumSize(80, 80); + icon_label->setAttribute(Qt::WA_TransparentForMouseEvents); + icon_label->setStyleSheet( + "QLabel { border: 2px solid rgba(255, 255, 255, 100); border-radius: " + "4px; }"); auto icon_it = title_icons_.find(entry.title_id); if (icon_it != title_icons_.end() && !icon_it->second.isNull()) { @@ -432,32 +483,35 @@ void GameListDialogQt::PopulateTable() { } else { if (!has_logged_in_profile_) { icon_label->setText("Not\nlogged\nin"); - icon_label->setStyleSheet("color: gray;"); + icon_label->setStyleSheet( + "QLabel { color: gray; border: 2px solid rgba(255, 255, 255, 100); " + "border-radius: 4px; }"); } else { // Empty space if logged in but no icon icon_label->setText(""); } } + row_layout->addWidget(icon_label); - table_widget_->setCellWidget(row, 0, icon_label); - - // Title column - just the title, large font + // Title - large font auto* title_label = new QLabel(QString::fromStdString(entry.title_name)); title_label->setAlignment(Qt::AlignVCenter | Qt::AlignLeft); + title_label->setAttribute(Qt::WA_TransparentForMouseEvents); QFont title_font = title_label->font(); title_font.setBold(true); title_font.setPointSize(title_font.pointSize() * 1.5); // 1.5x larger title_label->setFont(title_font); - title_label->setContentsMargins(10, 0, 10, 0); - table_widget_->setCellWidget(row, 1, title_label); + row_layout->addWidget(title_label, 1); // Stretch factor - // Last played column + // Last played auto* last_played_label = new QLabel( QString::fromStdString(FormatLastPlayed(entry.last_run_time))); - last_played_label->setAlignment(Qt::AlignVCenter | Qt::AlignLeft); - last_played_label->setContentsMargins(10, 0, 10, 0); - table_widget_->setCellWidget(row, 2, last_played_label); + last_played_label->setAlignment(Qt::AlignVCenter | Qt::AlignRight); + last_played_label->setMinimumWidth(200); + last_played_label->setAttribute(Qt::WA_TransparentForMouseEvents); + row_layout->addWidget(last_played_label); + table_widget_->setCellWidget(row, 0, row_widget); table_widget_->setRowHeight(row, 100); // Store the path in the row for later retrieval @@ -465,10 +519,6 @@ void GameListDialogQt::PopulateTable() { table_widget_->item(row, 0)->setData( Qt::UserRole, QString::fromStdString(entry.path_to_file.string())); } - - // Adjust column widths - table_widget_->setColumnWidth(0, 100); - table_widget_->setColumnWidth(2, 200); // Fixed width for last played } std::string GameListDialogQt::FormatLastPlayed(time_t timestamp) { @@ -592,7 +642,7 @@ void GameListDialogQt::OnSelectionChanged() { // No selection selected_game_path_.clear(); - play_button_->setEnabled(false); + UpdatePlayButtonState(); } void GameListDialogQt::UpdatePlayButtonState() { @@ -601,15 +651,28 @@ void GameListDialogQt::UpdatePlayButtonState() { // Update button appearance based on game state if (game_is_running) { - play_icon_label_->setText("⏸"); + play_button_->setIcon(QIcon(":/xenia/pause-icon.png")); play_label_->setText("Pause"); play_button_->setToolTip("Game is running"); play_button_->setEnabled(false); + // Greyed out when game is running + play_opacity_->setOpacity(0.4); + play_label_opacity_->setOpacity(0.4); } else { - play_icon_label_->setText("▶"); + play_button_->setIcon(QIcon(":/xenia/play-icon.png")); play_label_->setText("Play"); play_button_->setToolTip("Launch selected game"); - play_button_->setEnabled(!selected_game_path_.empty()); + bool is_enabled = !selected_game_path_.empty(); + play_button_->setEnabled(is_enabled); + + // Greyed out when disabled, normal when enabled + if (is_enabled) { + play_opacity_->setOpacity(1.0); // Normal appearance + play_label_opacity_->setOpacity(1.0); + } else { + play_opacity_->setOpacity(0.4); // Greyed out + play_label_opacity_->setOpacity(0.4); + } } last_game_running_state_ = game_is_running; diff --git a/src/xenia/app/game_list_dialog_qt.h b/src/xenia/app/game_list_dialog_qt.h index 392d7c091..bc50e8615 100644 --- a/src/xenia/app/game_list_dialog_qt.h +++ b/src/xenia/app/game_list_dialog_qt.h @@ -10,6 +10,7 @@ #ifndef XENIA_APP_GAME_LIST_DIALOG_QT_H_ #define XENIA_APP_GAME_LIST_DIALOG_QT_H_ +#include #include #include #include @@ -86,11 +87,12 @@ class GameListDialogQt : public QWidget { QToolButton* play_button_; QToolButton* settings_button_; QToolButton* profile_button_; - QLabel* play_icon_label_; QLabel* play_label_; QLabel* profile_label_; QLabel* profile_question_label_; QTimer* game_state_timer_; + QGraphicsOpacityEffect* play_opacity_; + QGraphicsOpacityEffect* play_label_opacity_; int last_logged_in_count_ = 0; bool has_logged_in_profile_ = false; diff --git a/src/xenia/ui/ui_resources.qrc b/src/xenia/ui/ui_resources.qrc index 1a2a67fd7..84db29ec8 100644 --- a/src/xenia/ui/ui_resources.qrc +++ b/src/xenia/ui/ui_resources.qrc @@ -11,5 +11,10 @@ ../../../assets/icon/128.png + ../../../assets/qt/icons8-opened-folder-96.png + ../../../assets/qt/icons8-pause-96.png + ../../../assets/qt/icons8-play-96.png + ../../../assets/qt/icons8-settings-96.png + ../../../assets/qt/icons8-user-96.png diff --git a/src/xenia/ui/ui_resources_qrc.cpp b/src/xenia/ui/ui_resources_qrc.cpp index 59af6c35c..bb337a471 100644 --- a/src/xenia/ui/ui_resources_qrc.cpp +++ b/src/xenia/ui/ui_resources_qrc.cpp @@ -1,13 +1,570 @@ /**************************************************************************** ** Resource object code ** -** Created by: The Resource Compiler for Qt version 5.15.17 +** Created by: The Resource Compiler for Qt version 6.9.2 ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ +#ifdef _MSC_VER +// disable informational message "function ... selected for automatic inline expansion" +#pragma warning (disable: 4711) +#endif + static const unsigned char qt_resource_data[] = { - // /home/heel/code/xenia-edge/assets/icon/128.png + // icons8-settings-96.png + 0x0,0x0,0xa,0x5f, + 0x89, + 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0, + 0x0,0x0,0x60,0x0,0x0,0x0,0x60,0x8,0x6,0x0,0x0,0x0,0xe2,0x98,0x77,0x38, + 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13, + 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0xa,0x11,0x49,0x44,0x41,0x54,0x78,0x9c,0xed, + 0x9d,0x8b,0x73,0x55,0xc5,0x1d,0xc7,0xa3,0x20,0xbe,0xa,0x75,0xac,0x53,0x3b,0xa5, + 0xb5,0xd4,0x47,0xa7,0xe3,0xf4,0x85,0x9d,0x62,0x25,0xf5,0x6d,0x6d,0xad,0x54,0x20, + 0xa,0x9a,0x10,0x20,0x84,0x3c,0x8,0x17,0x73,0x43,0xde,0x9,0x89,0x24,0xa,0x8, + 0xa6,0x84,0x42,0x20,0x8,0xd4,0x10,0x79,0x8e,0xd2,0x56,0x8a,0xd6,0xda,0xda,0x87, + 0x94,0xe,0x8e,0x7d,0xe9,0xd8,0xfe,0x3f,0xdf,0xce,0xce,0xfd,0xec,0xb8,0xbd,0x66, + 0x32,0xdc,0x7b,0xcf,0x9e,0x3d,0xe1,0x9e,0xdf,0xcc,0x4e,0x72,0x73,0xcf,0x63,0x7f, + 0x9f,0xdf,0x39,0xbb,0xbf,0xfd,0xed,0x6f,0x37,0x15,0x15,0xa9,0xa4,0x92,0x4a,0x2a, + 0xa9,0xa4,0x92,0x4a,0x2a,0xa9,0xa4,0x92,0x4a,0x2a,0x9,0x13,0x49,0x5f,0x93,0xd4, + 0x22,0x69,0x9b,0xa4,0xc3,0x92,0x7e,0x29,0xe9,0x4d,0x49,0xbf,0x93,0xf4,0x47,0x49, + 0x7f,0x90,0x74,0x4e,0xd2,0xeb,0x92,0x5e,0x95,0xf4,0x33,0x49,0xdd,0x92,0x6a,0x24, + 0xdd,0x12,0xba,0xfe,0x33,0x56,0x24,0x7d,0xe,0xe0,0xef,0x4b,0xba,0x28,0xe9,0x6f, + 0x92,0xfe,0x2a,0xe9,0xbc,0xa4,0xf7,0x24,0xfd,0x19,0x3,0xbc,0x2b,0xe9,0xf7,0x18, + 0xe4,0x6d,0x49,0x6f,0x61,0x90,0xb3,0x92,0xde,0x90,0x34,0x24,0xe9,0xb3,0xa1,0xf5, + 0x99,0x51,0x22,0xe9,0x33,0x40,0x34,0xf0,0x2f,0x48,0xfa,0x8d,0xa4,0x53,0x92,0x26, + 0x24,0xbd,0x2c,0x69,0x4c,0xd2,0xcf,0x25,0xed,0xe6,0x89,0x1f,0xe5,0xf3,0x5e,0x49, + 0x7,0x24,0x1d,0x92,0x34,0x29,0xe9,0xc,0xc5,0x1c,0x7f,0x4d,0x68,0xbd,0x66,0x8c, + 0x28,0xd7,0xdc,0xbc,0xcf,0x13,0x7e,0x10,0xb8,0x7b,0x28,0xa3,0x80,0xb7,0xf0,0x47, + 0x28,0x2f,0x49,0xda,0x25,0x69,0x27,0xe5,0x45,0xfe,0x76,0x5c,0xd2,0x69,0x49,0x4d, + 0xa1,0xf5,0x9a,0x11,0x22,0x69,0x36,0xcd,0xcb,0x45,0x9a,0xa0,0x62,0xe1,0xef,0xa0, + 0x8c,0xf0,0xf6,0x98,0x6b,0xcd,0xa,0xad,0x5f,0xe2,0x45,0xd2,0xbd,0xc0,0x7f,0x37, + 0x2,0xf8,0xdb,0x79,0x9b,0x8e,0x4a,0x3a,0x26,0xe9,0x9b,0xa1,0xf5,0x4b,0xbc,0x48, + 0xea,0xa1,0xc3,0x3d,0x13,0x11,0x7c,0x53,0xc6,0xe9,0x13,0x9e,0x9,0xad,0x5f,0xa2, + 0x45,0xd2,0x95,0x92,0x7e,0x8d,0xb7,0xf3,0x4a,0x44,0xf0,0x5f,0xe0,0xf8,0x9,0xbe, + 0xbb,0x22,0xb4,0x9e,0x89,0x15,0x49,0x2b,0x80,0x6f,0x9b,0x9f,0x28,0xe0,0x3f,0xcf, + 0xcf,0xc3,0x94,0xc5,0xa1,0xf5,0x4c,0xa4,0x48,0xba,0x99,0x1,0xd6,0x79,0x6,0x54, + 0x51,0xc1,0x37,0x65,0x98,0x73,0xf,0x71,0x7c,0x3a,0x2e,0x70,0x45,0xd2,0xb5,0xb8, + 0x8b,0x6,0xfe,0x6f,0x3d,0xc0,0x1f,0xa2,0xd8,0x71,0x42,0x97,0xa4,0xab,0x42,0xeb, + 0x9d,0x8,0x91,0x74,0xab,0xa4,0x93,0xc0,0x37,0x4d,0xcf,0x7e,0x4f,0xf0,0xb7,0xf2, + 0xd3,0xe,0xd8,0x4c,0xb8,0xe2,0xe6,0x8a,0xcb,0x49,0x24,0xdd,0x28,0xa9,0x4a,0xd2, + 0x6,0x49,0x4b,0x24,0xdd,0x30,0xcd,0xb1,0x37,0x49,0x6a,0x3,0xfa,0x79,0x62,0x3a, + 0xe3,0x1e,0xe1,0x3f,0x47,0x19,0xe2,0xda,0xbb,0x39,0xe7,0x51,0x33,0xf2,0x9e,0xa6, + 0x9e,0x57,0x4b,0x5a,0x60,0x5c,0x58,0x1e,0x96,0xab,0x2b,0x92,0x26,0x92,0xe6,0x0, + 0xe6,0x43,0x49,0xff,0x91,0xf4,0xb1,0xa4,0x8f,0x24,0xfd,0x4b,0xd2,0xaf,0x50,0x3a, + 0x2b,0xa9,0x51,0xd2,0x0,0x1e,0xce,0x7b,0x4e,0x6c,0xc7,0x84,0x1a,0xf6,0xc5,0x0, + 0x7f,0x90,0xfb,0xf,0x72,0xee,0x2e,0xae,0x67,0xce,0x59,0x27,0xe9,0x31,0x49,0x77, + 0x4b,0xaa,0x94,0xf4,0xb0,0xa4,0xb5,0x34,0x57,0x9d,0x94,0xe,0x49,0xcf,0x32,0x56, + 0x49,0x86,0x37,0x65,0xda,0x52,0x49,0xaf,0x49,0xfa,0x2f,0xf0,0x2f,0x10,0x1c,0x33, + 0x60,0xff,0x49,0xf9,0xbb,0xa4,0xf,0xa6,0x8,0xac,0xbd,0x29,0xe9,0x17,0x1e,0xdb, + 0xfc,0xa9,0xe0,0x9b,0xb2,0x45,0x52,0x3f,0x7f,0xb7,0x5e,0xd2,0x30,0x9f,0x7,0xf8, + 0xae,0x97,0x66,0xca,0x85,0xdf,0xe1,0xfc,0xbe,0xcc,0xb8,0xcd,0x49,0x30,0xc0,0x4b, + 0xc0,0xff,0x37,0x1d,0xe9,0x38,0x1d,0xdd,0x1,0xe2,0x38,0x27,0x8,0x21,0x9f,0xa5, + 0x9c,0xc1,0xcb,0x19,0x8b,0xd0,0xcf,0x2f,0x6,0xbe,0x29,0x7d,0x80,0xee,0xcb,0xfb, + 0xdc,0xc3,0x93,0x6f,0xa1,0xb7,0x4b,0xda,0xec,0x14,0x6b,0x88,0xfb,0x43,0xc3,0xaf, + 0x72,0x9a,0x9c,0x93,0x79,0xf0,0xf7,0x3,0x79,0x8c,0xe6,0x65,0x2f,0x25,0xaa,0xf0, + 0xc2,0xb6,0x88,0xe0,0x5b,0xe0,0xdd,0x40,0xb7,0x4d,0xce,0x54,0xf0,0xdb,0x68,0x4a, + 0xdb,0x9c,0x37,0xe3,0x8e,0x50,0xf0,0xe7,0x4b,0xfa,0x7,0x6,0x38,0x57,0x46,0xf0, + 0xb3,0x92,0x5a,0x1d,0x23,0x98,0x3e,0xe1,0xba,0x10,0x6,0x98,0x4,0xfe,0xf9,0x32, + 0x84,0xff,0x2c,0xa5,0x9d,0x73,0x9e,0x88,0x1b,0xfe,0x32,0xe0,0x7f,0x88,0x47,0x53, + 0x8e,0xf0,0x37,0x51,0x3a,0x39,0xff,0x8e,0x38,0xe3,0xf5,0x7f,0xa2,0xdd,0x3f,0x5b, + 0xc6,0xf0,0x33,0x94,0x2c,0xd7,0x68,0x8a,0xc5,0x2b,0x62,0x90,0xf5,0x31,0x2e,0xe5, + 0x78,0x99,0xc3,0xdf,0x48,0xc2,0x40,0x27,0xd7,0xfc,0x8e,0x6f,0xf8,0xd7,0xe1,0xe7, + 0x7f,0x84,0xef,0x1f,0x27,0xfc,0x1d,0x5c,0x67,0xcc,0x71,0x71,0xc7,0xb9,0xbf,0x1d, + 0xc4,0xed,0xe4,0xd8,0xc1,0x18,0xe1,0xb7,0xf0,0x5d,0x17,0xbf,0xcf,0xf6,0x69,0x80, + 0x6,0xe0,0x5f,0x88,0x11,0xfe,0x28,0x51,0xcc,0x9,0xfa,0x9b,0xc3,0x7c,0x3e,0x48, + 0x1d,0xc6,0xb8,0xa7,0xbd,0xcf,0x8,0xd7,0xdd,0x86,0x21,0x7c,0xc3,0x37,0x2d,0x42, + 0x33,0xd7,0x31,0xd7,0xff,0xb6,0x4f,0x3,0xbc,0xc5,0x80,0xeb,0xf5,0x18,0xe0,0xef, + 0x6,0xf8,0x24,0xf0,0xc7,0x51,0xfe,0x21,0x49,0xb7,0x49,0x9a,0x67,0xe6,0x78,0x29, + 0x73,0x89,0xd7,0x98,0x10,0x42,0x2d,0x4d,0xd4,0x76,0xde,0x86,0xad,0xbc,0x5,0x3e, + 0xe1,0x37,0x73,0x8c,0xb9,0x47,0x9d,0x2f,0xf8,0xf7,0x1,0xff,0x3,0x60,0xf8,0x82, + 0xbf,0x9d,0xa7,0xfb,0x18,0xf0,0xcd,0x39,0x8f,0x14,0x12,0x4,0x23,0x36,0xb5,0x8, + 0xa0,0x36,0xbc,0xd0,0xeb,0x11,0x7e,0x13,0xa5,0x93,0x37,0xed,0xcb,0x3e,0xc,0xb0, + 0x13,0x3,0x9c,0xf3,0x8,0xff,0x45,0x9e,0x76,0x3,0xff,0x88,0xa4,0xa5,0xa5,0x64, + 0x32,0x30,0xc5,0x59,0xc9,0x93,0x69,0xd,0xe0,0x3,0x7e,0x23,0xcd,0x73,0x2b,0x6, + 0xf8,0x61,0xb4,0xf4,0x73,0xca,0x1c,0x27,0xb0,0x76,0xc2,0x23,0xfc,0xa3,0xc0,0x37, + 0xe7,0x7d,0x25,0xe2,0x51,0x7b,0xc6,0x9,0x1f,0xf8,0x80,0xdf,0xc0,0xf7,0xc6,0xd8, + 0x4f,0x47,0x55,0x77,0x57,0x89,0x31,0xa2,0x9a,0xa7,0x3c,0x35,0x3b,0x13,0xc0,0xdf, + 0x31,0xdd,0x3c,0x42,0x9,0xf5,0x9f,0x4b,0x78,0xd9,0xbe,0x1,0x51,0xc3,0x5f,0xcf, + 0x31,0xbd,0x5e,0x46,0xc6,0x54,0xcc,0xb4,0xff,0xef,0x78,0xe8,0x70,0xf,0x3a,0x4f, + 0x7e,0xe4,0xf0,0xf3,0x8c,0xb0,0xc1,0x79,0xb,0xa2,0x84,0x5f,0x8f,0x51,0x4d,0x13, + 0x74,0xb7,0x8f,0xca,0xdf,0xc0,0x24,0xca,0x45,0xde,0x82,0x28,0xbd,0x9d,0x63,0xcc, + 0xb,0x7c,0x35,0xf2,0x8a,0x7f,0x5a,0x8f,0x2f,0x0,0xbd,0x93,0x37,0x20,0x2a,0xf8, + 0x19,0xe0,0xb7,0x7b,0xcb,0x43,0x25,0x6d,0xc4,0x4e,0xa6,0xbc,0x1a,0x91,0x9f,0xff, + 0xa,0xde,0xce,0x52,0x2f,0x95,0x9e,0x5a,0x8f,0xc5,0x79,0x33,0x5c,0xa5,0xc2,0x6f, + 0x1,0xbe,0x29,0xdf,0xf0,0x5d,0xf9,0x66,0x22,0xa0,0x7f,0x1,0x5e,0xa9,0x83,0xac, + 0x49,0xce,0x99,0x15,0xf3,0x2c,0x9e,0xd,0x21,0x64,0x23,0x84,0x7f,0x4f,0x5c,0xa, + 0x64,0x49,0xa0,0x7d,0x87,0xa6,0xa8,0xd8,0xf0,0xc2,0x21,0x3a,0xdf,0x47,0x62,0xa9, + 0xf8,0xff,0xeb,0xb0,0xd0,0xe9,0xb,0x8a,0x85,0xdf,0x80,0x6b,0x6b,0xe0,0xdf,0x17, + 0xb7,0x2,0xfb,0xc8,0x68,0x38,0x5d,0x42,0x6c,0x67,0x82,0x41,0x5d,0xec,0x99,0x6, + 0xc,0xd6,0x5a,0x31,0xc2,0xa6,0x22,0xe0,0xd7,0xf3,0x20,0x1a,0xf8,0x35,0xa1,0xf2, + 0x79,0xde,0xa6,0xec,0x29,0x22,0xaa,0x39,0x4a,0x13,0x96,0x89,0xbd,0xf2,0x9f,0xe8, + 0xf0,0x4,0x4f,0x70,0xb6,0x8,0xf8,0xeb,0x9d,0xf8,0xd2,0x8d,0xa1,0x14,0x18,0xc1, + 0x0,0x47,0x8a,0x8,0x29,0x8f,0x11,0x58,0x7b,0x28,0x48,0xe5,0x3f,0x69,0x86,0xba, + 0x70,0x1f,0xb,0x81,0xbf,0xce,0xf1,0xf9,0xa3,0x1f,0x74,0x15,0xa0,0xc0,0x12,0x2, + 0x74,0xa7,0x8a,0x88,0xe7,0x1f,0xa0,0xf,0xb8,0x2d,0x60,0xfd,0xe7,0x3b,0xe1,0x89, + 0x42,0xe0,0xd7,0x61,0xb4,0x5e,0xef,0x5e,0xcf,0x25,0xac,0x60,0xb4,0x2b,0x14,0xb, + 0x9d,0x4c,0x39,0x48,0x99,0x17,0xb0,0xfe,0xd7,0x3b,0x1,0xba,0x42,0xe0,0xd7,0x71, + 0x8e,0x89,0xb2,0x7e,0x3e,0xf4,0x62,0xba,0xb3,0x64,0xbf,0x15,0x3a,0x93,0x35,0xce, + 0x5b,0x30,0x3b,0x60,0xfd,0x67,0x3b,0x61,0xea,0x42,0xe0,0xaf,0xa5,0xfd,0xef,0xb, + 0x9a,0xaa,0xc8,0xd0,0xfe,0xd,0x92,0xad,0xa,0x9d,0x46,0xdc,0x4f,0x3f,0x10,0xda, + 0x0,0x76,0x8e,0xa0,0x10,0xf8,0x6b,0x9c,0x84,0xae,0x70,0xab,0x2f,0x25,0xdd,0xce, + 0xd3,0x7f,0xb2,0x88,0x39,0xdc,0x7d,0xc4,0x93,0xe6,0x6,0x6e,0x82,0xec,0x1b,0x50, + 0x8,0xfc,0x35,0x9c,0xd3,0x17,0x34,0xc3,0x5a,0xd2,0x8f,0x79,0xfa,0x8f,0x16,0x31, + 0x81,0xbe,0x1b,0x57,0x74,0x41,0xc0,0xfa,0x7f,0x9,0x3,0xb4,0x17,0x8,0x7f,0x35, + 0x9d,0x70,0xbf,0xd7,0x29,0xc8,0x4b,0x50,0x60,0x98,0xe,0x78,0xac,0x88,0xec,0x85, + 0x9d,0x18,0xa1,0x32,0x60,0xfd,0xef,0xc2,0x0,0x6d,0x5,0xc2,0xaf,0xc5,0x6b,0xea, + 0xf,0xb6,0xf0,0xcf,0x4c,0x98,0x30,0xa,0x3e,0x4d,0xf3,0x53,0x68,0xea,0xc8,0xb, + 0x8c,0x23,0x6a,0x83,0x28,0x90,0xd3,0x61,0x39,0x6,0xc8,0x14,0x8,0xbf,0x96,0xcf, + 0x36,0xeb,0xe2,0xa6,0x10,0x95,0x7f,0x1e,0xf8,0x2f,0x17,0x99,0xb7,0x33,0xc8,0xe0, + 0xcd,0x1c,0x3b,0x27,0x40,0xfd,0xaf,0x72,0xe2,0xf7,0x8d,0x5,0xc2,0x5f,0xc5,0x66, + 0x20,0xad,0xe4,0x1f,0xad,0x8e,0xbb,0xf2,0x6b,0x81,0x7f,0x9c,0xa7,0xbf,0xd8,0xa4, + 0xa9,0x6d,0xf4,0x1d,0x8b,0x2,0x8d,0x82,0x6d,0xfc,0xbe,0x18,0xf8,0x35,0x7c,0xee, + 0x43,0xa7,0x87,0xe3,0xaa,0xf8,0x4a,0xe0,0x9f,0xa4,0x13,0x2d,0x25,0x63,0x6d,0x90, + 0xf3,0xdb,0xe2,0x5c,0xec,0x40,0x2a,0x8b,0xd,0x23,0xb7,0x14,0x9,0xbf,0xda,0xb4, + 0xff,0x34,0x5d,0x5b,0xd0,0xed,0x5e,0xdf,0x15,0x7f,0xd4,0x81,0xbf,0x27,0xa2,0x74, + 0xc1,0xad,0x1c,0x17,0x5b,0x67,0x4c,0xa6,0x44,0xf,0x21,0x88,0x52,0xe0,0x9b,0xf2, + 0x34,0x46,0x18,0xa4,0x2c,0xf4,0x39,0xe8,0x9a,0x24,0xee,0xb3,0x37,0xc2,0x5c,0xcd, + 0x3e,0xbe,0x37,0x9d,0xe1,0x7c,0x2f,0x95,0xff,0xb4,0xeb,0x69,0xb3,0xd8,0x36,0x44, + 0x0,0x7f,0x25,0xa5,0x9,0x9d,0x8d,0x61,0xaf,0xf5,0x51,0xf1,0xa7,0x80,0x7f,0xc4, + 0x43,0xa2,0x6c,0x2f,0x25,0xe3,0x73,0x60,0x66,0x16,0x68,0x33,0xfd,0xd8,0x4d,0x7, + 0x1a,0x15,0xfc,0x15,0xf0,0xd9,0x8c,0xee,0xd1,0x37,0x45,0x74,0x56,0x27,0x68,0xf7, + 0x7d,0x64,0x29,0x77,0x11,0xe0,0x5a,0xeb,0xc3,0x8,0xc0,0x6f,0xe0,0x9e,0xb6,0xe9, + 0x89,0x12,0xfe,0x93,0x34,0x45,0x86,0xc3,0x8a,0xa,0xf,0xa,0xc,0x90,0xbd,0x30, + 0xe2,0x31,0x45,0xbc,0xd3,0x9,0xd,0x7f,0x31,0xe2,0x66,0xc7,0x3e,0xf9,0x9d,0x80, + 0x8a,0x1a,0xfe,0x93,0x5c,0xcf,0xb0,0x58,0x13,0x55,0xdd,0x5d,0x25,0xd6,0xd3,0x7, + 0xec,0xf5,0x9c,0x9f,0xdf,0xe1,0xa4,0x8c,0x2c,0x2e,0x65,0x4b,0x1,0xbc,0x9d,0x4a, + 0xa7,0xcd,0xef,0xf0,0x8,0xbf,0x8a,0x69,0x4d,0xc3,0xe3,0xa7,0xd1,0xd2,0xcf,0x29, + 0x73,0x27,0x73,0xb8,0x87,0x63,0x58,0x1c,0xd1,0xee,0xa4,0x11,0xb6,0xe0,0xb3,0xcf, + 0x29,0x70,0x90,0x75,0x97,0xe3,0x6a,0xda,0x36,0xbf,0xde,0x23,0xfc,0x2a,0xf4,0x1e, + 0xf2,0x96,0xdf,0xe4,0x6c,0xfb,0xb2,0x2b,0xa6,0xa5,0xa0,0x1d,0x8e,0x21,0xb2,0xcc, + 0xe1,0x2e,0x64,0x26,0xeb,0x7a,0x92,0x6f,0x67,0xf1,0xbb,0xf9,0xdb,0x77,0x9,0x2f, + 0xd8,0x11,0xae,0x75,0x35,0xa3,0xf4,0x76,0xa6,0x82,0xbf,0x1c,0xe3,0x1a,0xf8,0x1b, + 0xbd,0xc0,0xc7,0x0,0xf,0x32,0x8d,0xb8,0x2f,0xc6,0x65,0x41,0x59,0xe7,0x8d,0xe8, + 0xca,0x2b,0xdd,0xce,0x4f,0xb7,0xd8,0x11,0x6e,0xa9,0x83,0xac,0x4b,0x85,0x5f,0xc5, + 0x3d,0x8d,0x1,0xbe,0x17,0xc7,0x9e,0x10,0x7,0x8,0x21,0xc4,0xb9,0x26,0x6b,0x13, + 0xdf,0xb9,0x2b,0xd5,0x5d,0x63,0xb4,0x73,0x8d,0x4c,0x9,0xb1,0x9d,0x62,0xe0,0x2f, + 0xe7,0xda,0x43,0xd4,0xc9,0xef,0x4,0x93,0xa4,0x7,0x8,0x3f,0x8f,0x3a,0x6,0x88, + 0x73,0x41,0x5c,0x4b,0x11,0x13,0xe8,0x3e,0xe1,0x2f,0x47,0xd7,0x61,0x2f,0x49,0xb9, + 0x53,0x18,0xe0,0xa,0xa0,0x8f,0x12,0x4c,0x2b,0x67,0xf8,0xcb,0xb8,0xff,0x30,0xba, + 0xc4,0x13,0xcf,0x32,0xa9,0x18,0xce,0x82,0xb8,0x81,0x32,0x86,0xbf,0x2,0x67,0x64, + 0x38,0xf6,0xf4,0x14,0x14,0xdb,0x85,0x67,0x54,0x8e,0xf0,0x97,0xa2,0x9b,0x81,0x5f, + 0x1d,0x2b,0x7c,0xc,0x30,0xf,0x2f,0xc8,0x76,0xc6,0xe5,0x6,0xbf,0x9,0xf8,0x7d, + 0xc1,0x72,0x9b,0x18,0x9c,0xd9,0xcd,0x8e,0xfa,0xca,0x8,0x7e,0xd,0x5e,0x8f,0xd1, + 0xfb,0x5b,0x41,0xe0,0xe7,0x65,0x46,0xd8,0xa5,0xa0,0xdd,0x53,0xc0,0x77,0x43,0xc, + 0xae,0x21,0xb2,0x9,0x82,0x5f,0xcd,0xf5,0x36,0x52,0x9f,0xc,0xf7,0xae,0xc3,0x8, + 0x2e,0xfc,0x6a,0xde,0x78,0x3,0xff,0xf1,0xa0,0xf0,0x31,0xc0,0x95,0x28,0x61,0xb7, + 0xf9,0xca,0xdf,0x63,0xcd,0xd,0xb2,0xd9,0xbf,0xbb,0xdf,0xb7,0x6,0x84,0xbf,0x8e, + 0x87,0xc2,0xce,0x51,0x3f,0xe7,0xfc,0xdc,0xea,0x8c,0xf6,0xbb,0x9c,0xed,0x8,0x86, + 0x29,0x75,0x89,0xd8,0xb2,0xcc,0x71,0x4d,0xef,0xcf,0xdb,0x49,0xca,0x3e,0xf1,0xab, + 0xd8,0xe4,0x6e,0x11,0x61,0x84,0x7,0x78,0xd5,0xdb,0x1d,0x63,0xd9,0x45,0x12,0x71, + 0xc1,0x5f,0xc5,0x5b,0x68,0xc1,0xf7,0x73,0xde,0x8f,0xcc,0x2a,0x17,0x74,0x79,0x8c, + 0x7b,0xdb,0xed,0x2e,0x2d,0xf8,0x1,0xbe,0x4b,0xde,0x4e,0xec,0x8c,0x94,0x17,0xe0, + 0xa6,0xde,0x32,0x5d,0x0,0x8d,0x8d,0x3f,0x2a,0x9d,0xed,0x5e,0x3a,0x9d,0x57,0xdf, + 0x27,0x7c,0x9b,0x56,0x38,0x80,0xd3,0xf0,0xe0,0x74,0x3b,0x5e,0x99,0xd4,0x43,0x49, + 0x5f,0x97,0xf4,0x7d,0xfa,0xbc,0xcb,0xeb,0x1f,0x41,0x28,0x37,0x51,0xb2,0xda,0x31, + 0xc2,0x6,0xcf,0x4f,0x7e,0xf,0xf0,0x9b,0x83,0xe4,0xf3,0x24,0x51,0x94,0x4b,0x92, + 0xad,0x75,0x72,0xf5,0x7d,0xc0,0xaf,0xc6,0xc0,0x3,0x5c,0x2f,0xdd,0xba,0xd8,0x15, + 0x42,0xca,0x76,0xa9,0xff,0x26,0xf,0x1d,0x6e,0x33,0xf0,0x37,0x4f,0xb7,0x53,0x6e, + 0x59,0x8b,0x72,0xdb,0x3,0xdb,0x69,0xc3,0xc6,0x8,0xe1,0x3f,0x43,0xbb,0x3f,0xe8, + 0x7d,0x57,0xab,0x99,0x2c,0xca,0x79,0x53,0xd,0x79,0x9,0x53,0x51,0xf8,0xf9,0xf5, + 0xc0,0xcf,0x24,0x66,0xcb,0xe1,0xa4,0x8a,0x72,0x6e,0x6a,0xf,0x7e,0x77,0x54,0x23, + 0xdc,0x56,0xc,0x10,0xfd,0x36,0x32,0x97,0x9b,0x28,0x97,0x75,0x6d,0x9b,0xa1,0xa8, + 0xc2,0xb,0xdd,0xc,0xa8,0x6e,0xd,0xad,0x5f,0xe2,0x45,0xb9,0x91,0xb5,0x5d,0x0, + 0xdd,0x10,0x1,0xfc,0x5a,0x67,0x34,0x9b,0x8c,0x91,0x6b,0xd2,0x45,0xb9,0x1c,0xd4, + 0x1e,0xde,0x82,0xfa,0x12,0xe0,0xd7,0xf0,0xf4,0x9b,0xe6,0x67,0x49,0x68,0xbd,0x66, + 0x8c,0x28,0x37,0xa2,0x6e,0x76,0x42,0xdc,0x76,0x25,0x7b,0x23,0xcd,0xd2,0x9a,0x3c, + 0x23,0xac,0x72,0x16,0x4d,0xd4,0x73,0xae,0xcd,0xdd,0x1f,0xc4,0xad,0x8d,0x7d,0xd, + 0xc2,0x8c,0x16,0xe5,0x42,0x15,0x2b,0x9,0x73,0xdb,0xd2,0xef,0x94,0x2d,0x4e,0xb1, + 0x89,0x1,0x36,0xb6,0xe3,0x6,0xd6,0x6a,0xbc,0x24,0xcb,0x96,0xd9,0x7f,0x55,0xbd, + 0x47,0xd2,0x4f,0x68,0x6a,0x5a,0x9c,0xd,0x97,0xac,0x21,0x6c,0x26,0x5d,0x86,0x37, + 0xc1,0xe4,0xf,0xfd,0x20,0xd,0x35,0xa4,0x92,0x4a,0x2a,0xa9,0xa4,0x92,0x4a,0x2a, + 0xa9,0xa4,0x92,0x4a,0x2a,0x15,0x9,0x94,0xff,0x1,0x3e,0xc8,0x46,0x60,0x80,0x51, + 0xab,0xe6,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82, + // icons8-opened-folder-96.png + 0x0,0x0,0x6,0xba, + 0x89, + 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0, + 0x0,0x0,0x60,0x0,0x0,0x0,0x60,0x8,0x6,0x0,0x0,0x0,0xe2,0x98,0x77,0x38, + 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13, + 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x6,0x6c,0x49,0x44,0x41,0x54,0x78,0x9c,0xed, + 0x9d,0xd9,0x8f,0x14,0x55,0x14,0xc6,0xb,0x90,0x44,0x14,0x7d,0x30,0xc6,0x7,0x35, + 0x9a,0x68,0x5c,0x42,0xa2,0x21,0x2e,0xf1,0xc9,0x27,0x13,0x45,0x45,0x1d,0x60,0xd8, + 0x77,0x11,0x5c,0x40,0x1d,0x84,0x61,0x9f,0x71,0x6,0x45,0x41,0x8c,0xfb,0xe,0xee, + 0x5b,0xe2,0x12,0x8d,0xa2,0xe,0x3,0xc2,0x0,0x2a,0xc6,0x5,0x5,0x17,0x96,0x28, + 0x51,0x70,0x43,0x51,0xd1,0x7f,0xe0,0x67,0x4e,0xf2,0x5d,0x72,0x1d,0x18,0xba,0xaa, + 0xab,0x66,0x1a,0xed,0x73,0x92,0x2f,0xd5,0xf4,0x54,0xdd,0xbe,0xe7,0xf7,0x55,0xdd, + 0xba,0x4b,0x75,0x93,0x24,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, + 0x1e,0x25,0x2,0xe8,0xf,0xac,0x0,0x76,0x0,0x7f,0x0,0x7b,0xa4,0x3f,0x25,0x7b, + 0xef,0x77,0x69,0x37,0xf0,0x9b,0xf4,0x2b,0xb0,0xb,0xf8,0x45,0xfa,0x19,0xf8,0x9, + 0xf8,0x11,0xf8,0x1,0xf8,0x1e,0xf8,0x1a,0x78,0xb,0x18,0x53,0xe9,0x3c,0xf,0xba, + 0x0,0x8e,0x0,0xda,0x80,0xbf,0xa5,0xbf,0xa,0x84,0xbf,0x53,0xda,0x21,0x23,0xbe, + 0x3,0x56,0x1,0xa7,0x54,0x3a,0xef,0x83,0x9,0xfe,0xd6,0x8,0xfc,0x2e,0xc1,0xfa, + 0x16,0xf8,0x46,0xda,0x26,0x6d,0x95,0xb6,0x0,0x9b,0x75,0x56,0x9b,0xbe,0x92,0xbe, + 0x4,0xbe,0x0,0x36,0x1,0x1b,0xa5,0xcf,0xa5,0x8d,0x3a,0x66,0xbb,0x64,0xef,0x9d, + 0x9e,0x54,0x7b,0x0,0x6b,0x4,0x7f,0x8f,0xce,0xd0,0xed,0x5,0xc3,0xff,0xc,0xd8, + 0x20,0x7d,0x2a,0x6d,0x53,0xd9,0xeb,0x80,0x9e,0x49,0x95,0xb7,0xf9,0xe1,0xcc,0xef, + 0xa,0xf8,0x9f,0x0,0x1f,0x6b,0xbb,0x55,0x65,0xd7,0x27,0xd5,0x1a,0x40,0xab,0xc, + 0xd8,0xd5,0x85,0xf0,0x3f,0x92,0x36,0xa8,0xdc,0xb5,0x49,0xb5,0x86,0x6e,0x8e,0xe1, + 0xec,0xef,0x4a,0xf8,0x1f,0x4a,0x9b,0xa5,0x73,0x93,0x6a,0x8c,0xa8,0xab,0xb9,0xbd, + 0x2,0xf0,0xd7,0xeb,0x18,0x2b,0x6b,0x61,0x52,0x8d,0x11,0x75,0x35,0x2b,0x1,0x7f, + 0xbd,0xde,0xb3,0xb2,0xda,0x92,0x6a,0x8c,0xa8,0x9f,0x5f,0x9,0xf8,0xef,0x4b,0x9b, + 0x54,0xde,0x59,0x49,0xb5,0x45,0x34,0xc8,0xaa,0x14,0xfc,0xf7,0xb4,0xaf,0x95,0x33, + 0x3f,0xa9,0xb6,0x88,0x46,0xb8,0x95,0x82,0xbf,0x4e,0xef,0x59,0x39,0x2b,0x92,0x6a, + 0x8b,0x68,0x7a,0xa1,0x52,0xf0,0xd7,0x6a,0x20,0x18,0xf,0xd2,0xc2,0xf1,0xe1,0xb8, + 0xf,0xf6,0xb3,0x7f,0x9b,0xb4,0x5a,0xb2,0xa9,0x8d,0x77,0x81,0x95,0x9a,0xcb,0x5a, + 0xa1,0x2e,0xb6,0x69,0xb9,0xd4,0x22,0xbd,0x13,0xbd,0x6e,0x89,0xfe,0x66,0xdb,0x65, + 0xc0,0xf3,0xc0,0x7d,0xc0,0x58,0xe0,0xb8,0xce,0x36,0x20,0xcc,0xed,0x54,0x12,0x7e, + 0x9b,0xf6,0xab,0x34,0xfc,0xe5,0xd1,0x71,0xb1,0xee,0x0,0x4e,0xe8,0x4c,0x3,0x76, + 0x57,0x18,0xfe,0xea,0xe,0x40,0x6,0x80,0x1,0x5c,0x29,0xbd,0xdd,0xc1,0x36,0xab, + 0x82,0x39,0xad,0x91,0xa1,0x56,0xd6,0x45,0x9d,0x61,0x40,0x98,0xd5,0x74,0xf8,0x74, + 0x68,0x46,0x6b,0x54,0xaf,0xf1,0x45,0x1b,0x10,0xa6,0x94,0x1d,0x3e,0x7,0x54,0x6b, + 0x54,0xc7,0x8b,0x8b,0x36,0xc0,0xe6,0xf3,0x1d,0x3e,0xa9,0x4c,0x58,0xa5,0xd7,0xc7, + 0x16,0x65,0x40,0x58,0x4c,0x71,0xf8,0xa4,0xd2,0x4a,0xd5,0x7b,0x41,0x51,0x6,0x84, + 0x95,0x2c,0x87,0x4f,0x2a,0xb5,0x44,0xf5,0x3f,0xbe,0x8,0x3,0xc2,0x32,0xa2,0xc3, + 0x27,0xb5,0x1,0x2b,0x95,0x47,0xfe,0x1b,0x72,0xb4,0x86,0xeb,0xf0,0x49,0x5,0xbf, + 0x45,0xf5,0xb6,0x9c,0x1e,0x2e,0xc2,0x80,0xb0,0x80,0xee,0xf0,0x49,0x5,0x3f,0xc, + 0xda,0x2c,0xaf,0x57,0x8a,0x30,0x20,0x3c,0xbd,0xe0,0xf0,0x49,0x5,0x3f,0x68,0x4d, + 0x21,0x73,0x57,0x82,0xbf,0x53,0x30,0x9e,0x5,0x1e,0x4,0xee,0x2,0x16,0x6b,0x8, + 0x6e,0x5a,0x64,0xb,0x26,0xd2,0xed,0xd2,0x6d,0xd2,0x2,0xe9,0x56,0xe9,0x16,0x9b, + 0xd5,0x94,0x9a,0xa5,0x26,0xe9,0x66,0xa9,0x11,0x68,0x90,0xe6,0x49,0x73,0xa5,0x39, + 0xd2,0x6c,0x69,0x16,0x30,0x53,0x9a,0x21,0xd5,0x4b,0xd3,0xa5,0x69,0xd2,0x4d,0xc0, + 0x54,0xa9,0x4e,0xba,0x51,0xba,0x41,0xba,0x5e,0x9a,0x2,0x4c,0x96,0xae,0x93,0xae, + 0x95,0xae,0x91,0xae,0x96,0x26,0xe9,0xdf,0x75,0xca,0x6b,0x89,0x4e,0xae,0x35,0x45, + 0x18,0xb0,0x45,0x85,0xdd,0x29,0x19,0x78,0x87,0xcf,0xbf,0xe0,0x4f,0x94,0xae,0x92, + 0x26,0x28,0xa7,0x97,0xf3,0x80,0xef,0xae,0x4,0x43,0x73,0xe0,0xf0,0x49,0xd,0x7f, + 0x82,0xea,0x65,0x75,0xbc,0x10,0xe8,0x56,0x8e,0x1,0x1,0xbe,0xb5,0x67,0x4f,0x38, + 0x7c,0xb2,0xc0,0xbf,0x52,0x65,0xec,0x35,0x21,0x2b,0xfc,0x7e,0x11,0xfc,0x47,0x1c, + 0x3e,0x59,0xe1,0x9b,0xc6,0x6b,0xdf,0x50,0xd7,0x3e,0x69,0xe1,0xf7,0xb4,0xb6,0x4b, + 0xcd,0xce,0x53,0xe,0x9f,0x72,0xe1,0x9b,0xc6,0xa9,0xac,0x59,0xfa,0x8c,0x1e,0x69, + 0xc,0xb8,0x5c,0xf0,0xdf,0x88,0xda,0x7d,0x87,0x4f,0x59,0xf0,0xc7,0x6a,0x5b,0xaf, + 0x1c,0xce,0x48,0x63,0xc0,0x22,0x75,0x39,0x9f,0x74,0xf8,0xe4,0x85,0x6f,0x1a,0xa3, + 0xf2,0x2d,0x8f,0xda,0x34,0x6,0xbc,0xa8,0xc1,0xc5,0x3,0xe,0x9f,0x22,0xe0,0x8f, + 0xd1,0x7e,0x96,0xd3,0xe4,0x34,0x6,0xbc,0xa9,0x51,0x64,0x38,0xfb,0x1d,0x3e,0xb9, + 0xe0,0x8f,0xd6,0x76,0x76,0xaa,0x87,0x8c,0xd5,0xf6,0x2f,0x93,0x1,0xe,0x9f,0xdc, + 0xf0,0x83,0xe6,0xa4,0x35,0xe0,0x19,0x5d,0x5,0x77,0x3b,0x7c,0x8a,0x80,0x3f,0x4a, + 0x7f,0xb7,0xfc,0xa6,0xa4,0x31,0x60,0xb1,0xae,0x2,0x9b,0xf3,0x71,0xf8,0xe4,0x86, + 0x3f,0x4a,0xe5,0x58,0xae,0x23,0xd3,0x18,0x60,0x95,0x7e,0x5d,0x13,0x4a,0xe,0x9f, + 0xdc,0xf0,0x47,0xea,0xf3,0x2c,0xcf,0x7e,0x69,0xc7,0x1,0xaf,0xa9,0x1b,0xea,0xf0, + 0xc9,0xd,0x7f,0xa4,0xea,0x65,0xb9,0x9e,0x9d,0xc6,0x80,0x33,0x81,0x57,0xf5,0xf8, + 0x9d,0xc3,0x27,0x37,0xfc,0x11,0xaa,0xff,0xdc,0x54,0x4f,0xcf,0x1,0x87,0x6b,0x2a, + 0xe2,0x25,0x87,0x4f,0x11,0xf0,0x47,0x28,0x5f,0xcb,0xfd,0xd0,0x92,0x6,0xc8,0x84, + 0x25,0x32,0xc0,0xc6,0x1,0xe,0x9f,0xb2,0xe1,0xf,0xd7,0x3e,0x96,0x7b,0x5d,0x2a, + 0xf8,0x32,0x60,0xbe,0x46,0xc4,0xf7,0x38,0x7c,0xf2,0xc0,0x1f,0xae,0xb2,0x8c,0xc3, + 0xa8,0x2c,0x6,0x58,0xc5,0x5e,0x0,0xee,0x77,0xf8,0xe4,0x81,0x3f,0x4c,0x9f,0x3d, + 0x2f,0xd3,0xe3,0x8a,0xb6,0xb3,0x6e,0xc2,0xb6,0x16,0xe0,0xf0,0x29,0x1b,0xfe,0x30, + 0xd5,0xd5,0xb8,0x9c,0x93,0xc5,0x80,0x3e,0xc0,0x73,0xc0,0x52,0x87,0x4f,0x1e,0xf8, + 0x43,0x95,0x9b,0x31,0x39,0x31,0x8b,0x1,0xd6,0x13,0x7a,0x5a,0x63,0x1,0x87,0x4f, + 0xd9,0xf0,0x87,0x89,0x85,0xf1,0xe9,0x95,0xda,0x0,0x99,0x70,0xaf,0xc,0xb0,0x5e, + 0x90,0xc3,0x27,0x33,0xfc,0xa1,0xfa,0x7b,0x43,0xa6,0x1e,0x50,0x64,0x80,0x41,0x7b, + 0x5c,0x33,0xa2,0xe,0x9f,0xcc,0xf0,0x87,0xa8,0xfc,0x86,0xb2,0x7e,0xff,0x48,0x1f, + 0xbc,0x54,0xcb,0x92,0xe,0x9f,0xcc,0xf0,0x87,0xa8,0x1e,0xc6,0xe9,0x92,0x72,0xc, + 0xb8,0x0,0x78,0x4c,0x63,0x1,0x87,0x4f,0x66,0xf8,0x83,0x55,0xef,0xc6,0xb2,0x7e, + 0xe7,0x2,0x38,0x15,0x78,0x54,0x63,0x1,0x87,0x4f,0x66,0xf8,0xb5,0xca,0xbb,0x21, + 0x53,0xf,0x28,0x32,0xe0,0x30,0x7b,0xbc,0x1a,0x78,0x48,0x6,0x38,0x7c,0x32,0xc1, + 0x1f,0x2c,0x4e,0x8d,0x99,0x7b,0x40,0x91,0x9,0xb,0xb5,0x38,0x6f,0xf7,0x0,0x87, + 0x4f,0x6a,0xf8,0xb5,0xda,0xcf,0xe0,0x4f,0x2d,0xb,0xbe,0xc,0xa8,0xd3,0x37,0xc2, + 0x6d,0x34,0xec,0xf0,0x49,0xd,0x7f,0x90,0xca,0x37,0x3,0xc6,0xe5,0x31,0x60,0x88, + 0xc6,0x3,0x36,0x16,0x70,0xf8,0xa4,0x86,0x3f,0x48,0x75,0xb2,0xa6,0xfb,0xd2,0x3c, + 0x6,0x9c,0xaf,0xc5,0x79,0x5b,0x19,0x73,0xf8,0xa4,0x86,0x3f,0x50,0x39,0x99,0x1, + 0xe7,0xe5,0x31,0xe0,0x24,0x7d,0x19,0xc3,0x6,0x63,0xe,0x9f,0xd4,0xf0,0x7,0x8a, + 0x49,0x53,0x59,0x3d,0xa0,0xc8,0x80,0x5e,0x1a,0x88,0xd9,0xc2,0x8c,0xc3,0x27,0x35, + 0xfc,0x81,0x3a,0xfb,0x9b,0xca,0xee,0x1,0x45,0x26,0xcc,0xd3,0x15,0x60,0x5b,0x87, + 0x4f,0x49,0xf8,0x3,0x74,0x8c,0xc1,0x9f,0x9e,0xb,0xbe,0xc,0x98,0xa8,0xee,0xa8, + 0x75,0x43,0x1d,0x3e,0x25,0xe1,0xf,0xd0,0x67,0x35,0x17,0xf5,0x3d,0xe1,0xcb,0xb4, + 0x38,0x6f,0x5d,0x2a,0x87,0x4f,0x49,0xf8,0x35,0xaa,0xa7,0x19,0xd0,0xbf,0x8,0x3, + 0xfa,0x6a,0x59,0xd2,0xda,0x34,0x87,0x4f,0x49,0xf8,0x35,0x62,0x61,0x6,0xf4,0x2d, + 0xc2,0x80,0xde,0x5a,0x94,0x69,0xd2,0x15,0xe0,0xf0,0x39,0x20,0xfc,0xf8,0x6,0xdc, + 0x3b,0xb7,0x1,0x32,0x61,0xac,0xa,0xb5,0x7b,0x80,0xc3,0xa7,0x43,0xf8,0x57,0xa8, + 0xae,0xc5,0xb4,0xff,0x91,0x1,0x27,0xeb,0x26,0x3c,0x37,0x32,0xc0,0xe1,0xb3,0xf, + 0xfc,0x5a,0xdd,0x2b,0x9b,0xb,0xff,0xbf,0xf,0x54,0x78,0xe8,0x5,0x39,0x7c,0xf6, + 0x81,0x5f,0xa3,0x93,0xd3,0xe0,0x8f,0x2e,0x14,0x7e,0x34,0x3d,0x3d,0x39,0xba,0x2, + 0x1c,0x3e,0x7b,0xe1,0xf,0x10,0x8b,0x66,0xb1,0x29,0xa6,0xed,0xdf,0x8f,0x9,0x47, + 0x9,0xd6,0xb4,0xe8,0xa,0xa8,0x76,0xf8,0xa3,0xd5,0x34,0x37,0xab,0x87,0x78,0x4c, + 0xa7,0xc0,0x8f,0x4c,0x38,0x32,0x7a,0xe2,0xb7,0xfd,0x55,0x50,0x57,0x5,0xf0,0x6b, + 0x55,0xd6,0x24,0x1,0xf,0x8f,0xec,0x58,0xe,0x47,0x77,0x2a,0xfc,0xc8,0x84,0x6e, + 0xf6,0xac,0xbb,0x80,0x85,0xab,0xa1,0x94,0xea,0x3b,0xd0,0x8c,0x68,0x1b,0x5e,0x87, + 0xb1,0xc6,0xcc,0x76,0x9a,0x15,0x6d,0xe3,0xd7,0xb3,0x23,0x85,0xf9,0xaa,0x30,0x77, + 0x15,0x4f,0x22,0x86,0x19,0xdd,0xb0,0xb6,0x11,0x16,0x99,0x1a,0x22,0x35,0x46,0xdb, + 0xc6,0x68,0x3d,0x3c,0x3c,0x19,0xd2,0xdc,0x4e,0x33,0x34,0x6b,0xdc,0xbd,0x4b,0xe0, + 0xb7,0x33,0xa2,0x7,0x70,0x9a,0xfd,0x60,0x69,0xf4,0xad,0xf0,0xff,0x3b,0xfc,0x99, + 0xba,0xba,0x6b,0x35,0x48,0x3d,0xa4,0xcb,0xc1,0x7b,0x78,0x78,0x78,0x78,0x78,0x78, + 0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78, + 0x24,0xff,0xa5,0xf8,0x7,0xc6,0xcd,0xa4,0x5d,0xe5,0xc7,0x78,0x67,0x0,0x0,0x0, + 0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82, + // icons8-user-96.png + 0x0,0x0,0x7,0x28, + 0x89, + 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0, + 0x0,0x0,0x60,0x0,0x0,0x0,0x60,0x8,0x6,0x0,0x0,0x0,0xe2,0x98,0x77,0x38, + 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13, + 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x6,0xda,0x49,0x44,0x41,0x54,0x78,0x9c,0xed, + 0x9d,0xe9,0x6f,0x55,0x45,0x18,0xc6,0xf,0x5b,0xdc,0x22,0x2a,0x12,0x63,0x8c,0xb, + 0x86,0xf,0x86,0x18,0xa3,0x9f,0xc4,0x2d,0x12,0xa3,0x1f,0x34,0xa8,0x51,0x84,0xd2, + 0x52,0x96,0x52,0x28,0x52,0x5b,0x5a,0xe8,0x46,0x29,0x96,0xde,0x42,0xa9,0xb4,0xd0, + 0x52,0x56,0x15,0x8a,0xca,0x22,0x20,0x8b,0xb8,0x56,0x1,0x51,0xeb,0x2,0x8,0x14, + 0x44,0xff,0xa0,0x9f,0x99,0xf2,0x8c,0x99,0x9c,0xa0,0x75,0xa1,0xe7,0x9c,0x7b,0xce, + 0x3c,0xc9,0xe4,0xde,0xde,0x7b,0xee,0x99,0x99,0xe7,0x99,0xed,0xbc,0xef,0x3b,0xd3, + 0x20,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x48,0x20,0x80, + 0x51,0xc0,0x24,0x60,0x1a,0xb0,0x4,0xc8,0x1,0x1d,0xc0,0x6,0xa0,0x13,0x58,0xb, + 0x34,0x2,0xa5,0xc0,0xf3,0xc0,0xfd,0xc0,0x88,0xb8,0xcb,0x9d,0xf7,0x0,0xee,0x4, + 0xca,0x80,0x1d,0xc0,0x3e,0xe0,0x3,0xa0,0x17,0xd8,0xe,0x6c,0x6,0xba,0x24,0x42, + 0x97,0x52,0x37,0xb0,0x51,0xa9,0x15,0x78,0x15,0x18,0x17,0x77,0x3d,0xf2,0xe,0xc0, + 0x78,0x60,0x39,0x70,0x14,0x38,0x2,0x1c,0x0,0x76,0x3,0xef,0x2,0x5b,0x44,0xb0, + 0x21,0x7e,0xbd,0x7a,0xc0,0x3a,0x27,0xd9,0x9e,0x61,0x85,0x30,0xef,0x8b,0x81,0x9b, + 0xe3,0xae,0x57,0x5e,0x0,0x78,0x59,0xc4,0x7f,0x1,0x1c,0x3,0xf6,0x0,0x6f,0x3, + 0x9b,0x44,0x68,0xf7,0x55,0xc8,0x7f,0xb,0x68,0x7,0xda,0x80,0x35,0xc0,0x6a,0xbd, + 0x76,0x38,0x42,0x98,0x6b,0x26,0xc7,0x5d,0xbf,0xc4,0x2,0x18,0x23,0xe2,0x4e,0x0, + 0x5f,0x1,0x87,0x45,0xfc,0xe6,0xff,0x40,0xbe,0x99,0x23,0x5a,0x80,0x55,0x7a,0xb5, + 0x42,0xf4,0xa8,0x37,0x8c,0x8a,0xbb,0xbe,0x89,0x2,0x70,0xa3,0xc8,0xfe,0x16,0x38, + 0xae,0x56,0xbf,0xe5,0x1a,0x90,0xff,0x26,0xb0,0x12,0x68,0xd2,0x9c,0x60,0xe7,0x88, + 0xa,0xe0,0xba,0xb8,0xeb,0x9d,0xa4,0x96,0xbf,0x3,0xe8,0x57,0xeb,0xef,0x1d,0x6, + 0xf2,0x1b,0x35,0xa7,0x34,0xe9,0x3e,0xa6,0x27,0x54,0x1,0xa3,0x83,0xac,0x83,0x2b, + 0xa4,0xfe,0x4,0x9c,0x2,0x76,0xe,0x23,0xf9,0xf5,0x40,0x9d,0xde,0xdb,0x49,0x7a, + 0x76,0x90,0x65,0x0,0xb3,0x80,0x33,0xc0,0xf,0xc0,0x7b,0x11,0x90,0x5f,0xb,0x2c, + 0x3,0x1a,0xb4,0x6c,0x35,0x79,0x3c,0x16,0x64,0x11,0xc0,0x1d,0xc0,0xf7,0x12,0xe0, + 0x40,0x84,0xe4,0x2f,0x5,0xaa,0x75,0x8d,0x5d,0x1d,0x65,0x6f,0x89,0x2a,0x82,0xcf, + 0x69,0xd2,0x8d,0x9a,0x7c,0xf3,0x34,0x5d,0xa9,0x27,0x68,0x93,0x5f,0x71,0x90,0x25, + 0x0,0x13,0x44,0xfe,0x2f,0x1a,0xf7,0xe3,0x20,0xbf,0x42,0x7f,0xdb,0xa7,0xe9,0xf1, + 0x41,0x56,0x20,0x12,0x7,0x80,0xbe,0x18,0xc9,0x2f,0x7,0x16,0xeb,0x5e,0x46,0x84, + 0x69,0x41,0x16,0x0,0x8c,0xd4,0x92,0xf3,0x82,0x26,0xde,0x38,0xc9,0x7f,0x5d,0xcb, + 0xd1,0x2e,0xdd,0x7b,0x64,0x90,0x76,0x0,0x4f,0x3,0x97,0xb4,0xf4,0xdc,0x14,0x33, + 0xf9,0xc6,0xd0,0xb7,0x50,0x79,0x19,0x11,0x26,0x6,0x69,0x87,0x8,0xbb,0x8,0x7c, + 0x9e,0x10,0xf2,0x17,0x38,0xf,0x68,0x2f,0x4,0x69,0x87,0xac,0x9a,0x17,0x65,0x5e, + 0xee,0x4e,0x0,0xf9,0xf3,0x75,0xad,0x29,0xc3,0xc2,0x20,0xed,0x90,0xb9,0x61,0x40, + 0xe6,0x87,0xd,0x9,0x20,0xbf,0x4,0x58,0xa4,0x32,0x34,0x6,0x69,0x87,0x1e,0xbc, + 0x2e,0x68,0xfc,0x5f,0x9f,0x0,0xf2,0xe7,0xea,0xbd,0xb1,0x98,0xae,0xe,0xd2,0xe, + 0xb5,0xfe,0xb,0x8e,0x3b,0x71,0x5d,0xcc,0xe4,0xcf,0x51,0x1a,0x2c,0x47,0x90,0x76, + 0x88,0xfc,0xf3,0x6a,0xfd,0xeb,0x12,0x40,0xfe,0x6c,0xf9,0x8,0x6,0xcb,0x11,0xa4, + 0x1d,0xc0,0xcf,0x12,0xa0,0x2b,0x21,0xe4,0xcf,0xd2,0x7b,0x53,0x8e,0x96,0x20,0xed, + 0x90,0xb7,0xeb,0x9c,0xec,0x3f,0xed,0x9,0x20,0xbf,0x48,0xdf,0x19,0xbb,0x50,0x6d, + 0x90,0x76,0x0,0xbb,0x64,0x3,0xea,0x4d,0x8,0xf9,0x85,0x5a,0x5,0x99,0xb2,0xcc, + 0xb,0xd2,0xe,0xd9,0xe2,0x8d,0x0,0x87,0x12,0x42,0x7e,0x81,0xee,0x67,0x4,0x78, + 0x2e,0x48,0x3b,0x80,0x27,0x80,0xb3,0xc0,0xc9,0x84,0x90,0x3f,0x43,0xf9,0x9a,0xb2, + 0x4c,0x8,0x32,0x62,0x8c,0xfb,0x5a,0xb6,0xa0,0xee,0x4,0x90,0x3f,0x4f,0x65,0xa8, + 0xcb,0x84,0x31,0xce,0x40,0x64,0xff,0x8,0x7c,0x14,0x33,0xf9,0xd3,0x75,0xcf,0x96, + 0x4c,0xd8,0x81,0x2c,0x80,0xbb,0x81,0xef,0xe4,0x88,0x6f,0x8f,0x91,0xfc,0x22,0x47, + 0xfc,0x5b,0x82,0x2c,0x41,0x13,0xf0,0x29,0xe0,0x60,0x4c,0xe4,0x4f,0xd3,0xbd,0x8d, + 0x0,0x2f,0x6,0x59,0x3,0x70,0x3b,0xf0,0x99,0xe6,0x83,0x9e,0x18,0xc8,0x37,0xd7, + 0xaf,0x0,0x6a,0x4c,0x60,0x58,0x90,0xe1,0x38,0xd0,0x3e,0xe0,0x13,0x45,0xae,0x45, + 0x45,0x7e,0x91,0xc4,0x36,0xbd,0xee,0xa1,0x20,0xcb,0xe0,0xca,0xf0,0xf3,0xa9,0x86, + 0xa2,0x95,0x11,0x90,0x5f,0xa0,0x3c,0xea,0x33,0x35,0xf1,0xe,0xb1,0xf9,0xa2,0x5d, + 0x61,0xe8,0x7b,0x24,0xc2,0x70,0x91,0x5f,0x28,0x1f,0x70,0x8d,0x3e,0xcf,0xc6,0xb2, + 0x73,0x28,0x0,0x37,0xe8,0x41,0xe8,0x43,0x39,0xea,0x73,0xc3,0x40,0xfe,0x1c,0x91, + 0x5f,0xad,0xbf,0xc7,0xc4,0x5d,0xef,0x44,0x1,0x18,0x2d,0xd2,0xdf,0x97,0xb7,0xac, + 0x53,0x64,0xfd,0x5f,0xf2,0xb,0xf4,0xbb,0x4a,0xf5,0xaa,0x67,0x7d,0xcb,0x1f,0x3a, + 0x6a,0xa2,0x47,0xd6,0x52,0x63,0xb2,0x6e,0x16,0x79,0xff,0x96,0xfc,0x42,0x5d,0xb7, + 0x58,0xbd,0xc8,0xfc,0xf6,0x81,0xb8,0xeb,0x97,0x17,0x0,0xc6,0x8a,0xdc,0x4e,0xf9, + 0xc,0x5a,0xb5,0x64,0x5c,0x22,0xcb,0xa5,0x15,0xc0,0x92,0x6f,0x5,0x28,0xd2,0x67, + 0xf3,0x25,0x98,0xed,0x35,0x46,0xd4,0xeb,0xe3,0xae,0x57,0xde,0x1,0x18,0x67,0x1e, + 0x92,0xb4,0x3c,0x6d,0xd2,0xca,0xa5,0x4a,0xad,0xba,0x54,0x9e,0xac,0x62,0xc7,0xad, + 0x38,0x57,0xe2,0xcc,0x97,0x18,0x93,0x81,0x9b,0xe2,0xae,0x47,0xde,0x3,0x18,0x21, + 0xf3,0xc5,0xe3,0xc0,0x54,0xd,0x33,0x76,0xc8,0x29,0xd4,0x90,0xf3,0x12,0x30,0xc5, + 0xac,0xeb,0x15,0x79,0xed,0xb7,0xa9,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78, + 0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0xa4,0x17,0xc0,0x7d,0x32,0x17,0xef,0x94, + 0x8b,0xf1,0x84,0x42,0x4f,0x4e,0x6a,0x47,0x7c,0x9f,0xe,0x62,0x32,0x3e,0xe0,0x8f, + 0x75,0x8d,0x9,0xce,0xda,0xaf,0x3d,0x63,0xbb,0xe5,0x11,0xdb,0xa9,0xd3,0xb1,0xb6, + 0x39,0xfb,0x88,0xbb,0x1d,0xf3,0x74,0x9b,0x4c,0xd4,0xab,0xae,0x92,0x5a,0x42,0x29, + 0xa7,0xd4,0xea,0xa4,0xd5,0xa1,0xb4,0xc6,0x49,0x6d,0x4e,0x6a,0xd7,0xf7,0xf5,0xaa, + 0xd7,0x94,0x44,0x1e,0x81,0x6,0xdc,0xa3,0xd,0x17,0x66,0xfb,0xd1,0x69,0x85,0x1d, + 0xf6,0x2b,0xf8,0xea,0x1b,0x9,0x60,0xc2,0x4f,0xbe,0xd4,0xee,0x48,0x2b,0xc0,0x61, + 0x47,0x80,0xbd,0x3a,0x13,0x6e,0x97,0x3c,0x62,0xef,0x0,0x5b,0x25,0x40,0x8f,0x9c, + 0x33,0x1d,0x4e,0x48,0x7b,0x4e,0xce,0x9a,0x70,0xfa,0x2b,0x31,0x72,0xff,0x40,0x8c, + 0xb0,0x10,0x6b,0x95,0x5f,0xbb,0x84,0xb7,0xa9,0x24,0x31,0x3b,0xeb,0xe5,0x5f,0x3d, + 0xad,0x98,0xff,0x33,0x22,0x79,0x9f,0x48,0xdc,0xea,0xb4,0xe0,0x1e,0x67,0x5b,0xaa, + 0x3d,0x1e,0x60,0xbd,0x5a,0x75,0x47,0x68,0xb7,0xcc,0x5a,0xa7,0x15,0xda,0x8,0xea, + 0xd6,0x50,0x20,0x6f,0x73,0x28,0xa4,0x71,0x85,0x13,0xdc,0xd5,0xa0,0xe4,0xc6,0x19, + 0xd5,0x84,0x22,0x2e,0xaa,0x42,0x8e,0xff,0x37,0x1c,0xff,0xb3,0x75,0x83,0x2e,0x52, + 0x2a,0x77,0xe,0xf8,0xb0,0x62,0x98,0x32,0x3d,0x1c,0x37,0xf9,0xd5,0xce,0x9e,0xaf, + 0xe3,0x8a,0xf9,0xdf,0xea,0x1c,0xbe,0x91,0xef,0xe4,0x97,0x39,0xae,0xd0,0x52,0x39, + 0x7a,0xca,0x94,0xa7,0x2d,0xef,0x33,0x71,0x91,0x3f,0x43,0x3b,0xde,0x7,0x34,0x9c, + 0x6c,0xcb,0x0,0xf9,0x25,0x8a,0xa6,0x9e,0xab,0xfb,0xd9,0xde,0xf0,0x48,0x1c,0xa7, + 0x9d,0x9c,0x97,0x0,0xc7,0x32,0x48,0xfe,0x1c,0xf9,0x9e,0xab,0x9d,0xe1,0xe8,0xb6, + 0x28,0x5,0x30,0x7,0xec,0x5d,0xd6,0xa,0x27,0xab,0xe4,0x17,0x2b,0x18,0x60,0x85, + 0xea,0x52,0x14,0x15,0xf9,0x13,0x45,0xfe,0xa5,0x8c,0x8c,0xf9,0x25,0x7f,0x43,0xfe, + 0x2c,0x7d,0x6f,0x57,0x4a,0xc3,0xdf,0xb,0x54,0xb1,0xdf,0xb5,0xbc,0xcc,0x3a,0xf9, + 0x45,0xa,0xa,0x58,0xae,0x3a,0x4d,0x89,0x42,0x0,0xb3,0xb9,0xee,0x37,0xad,0xdf, + 0x3d,0xf9,0x30,0x53,0xf7,0x31,0x75,0x2a,0x8b,0x42,0x80,0x7e,0x9,0x60,0x86,0x1f, + 0x4f,0x3e,0x83,0x21,0x32,0xb3,0x55,0xaf,0xba,0x28,0x4,0x18,0xd0,0x1c,0xe0,0x9a, + 0x9,0xb2,0x4c,0xfe,0xc,0xbd,0x9a,0x7a,0xe5,0xa2,0x16,0xc0,0x93,0xcf,0x9f,0x1, + 0xc0,0x6d,0x91,0x1c,0x75,0xa0,0xf3,0x9d,0x2f,0xcb,0xd4,0xe0,0xc9,0x87,0xd7,0xf4, + 0x9d,0xa9,0x53,0x4d,0x14,0x2,0x98,0xc9,0xf7,0x57,0x19,0xd0,0x3c,0xf9,0xc,0xda, + 0xc2,0x16,0xa8,0x5e,0xa5,0x51,0x8,0x50,0x25,0x1,0x8c,0x75,0xd3,0x93,0xcf,0xe0, + 0x7f,0xe9,0x58,0xa6,0x7a,0x3d,0x15,0x95,0x19,0xe2,0xa2,0xc,0x70,0x66,0x1e,0xc8, + 0x3a,0xf9,0x33,0x1d,0x33,0xf7,0xad,0xc3,0x2e,0x80,0x44,0xd8,0x2c,0x1,0xfa,0x32, + 0x4e,0xfe,0x2b,0x2a,0x4f,0x2e,0xd2,0x83,0x5f,0x81,0x7b,0x1d,0x1f,0xc0,0xfe,0xc, + 0x93,0x5f,0xa6,0xfa,0x34,0x45,0xbe,0xd3,0x5e,0x1b,0x27,0xce,0xca,0x9,0xb3,0x2f, + 0x83,0xe4,0x2f,0x54,0x1d,0x4c,0x7a,0x30,0x52,0xf2,0x1d,0x11,0xca,0x1d,0x17,0xe4, + 0x31,0x4d,0xc8,0x69,0x27,0xbf,0x40,0xf9,0xdb,0xf2,0x3f,0x19,0xb,0xf9,0x8e,0x8, + 0x53,0x65,0x98,0xeb,0x97,0x79,0xfa,0x90,0xfe,0xcf,0x57,0xa7,0x44,0xc8,0x77,0xf2, + 0xa7,0xeb,0xf3,0x79,0xca,0xb3,0xd1,0xd9,0x2e,0x35,0x29,0x48,0x2,0xb4,0x25,0xa8, + 0xd9,0x71,0xc0,0xdb,0x8,0x88,0xb0,0x3,0xfe,0xa0,0xf6,0x2,0xef,0xd5,0x76,0xd4, + 0x5d,0x7a,0xa0,0xdb,0x2e,0xcb,0xaa,0x8d,0x7e,0xb0,0x27,0x2a,0xba,0xd1,0xf,0x2b, + 0x25,0x54,0xad,0x4,0xa9,0x14,0xf9,0xe5,0x12,0xa2,0x42,0xa9,0x32,0x94,0x96,0x38, + 0xa9,0xca,0xd9,0x2b,0xbc,0x54,0x69,0x99,0x84,0xae,0xd1,0xbd,0x6b,0xd5,0x0,0xea, + 0x44,0x72,0x83,0xf2,0x5d,0x2e,0xf2,0x1b,0xd5,0x13,0xc6,0x6,0x49,0x3,0x70,0x97, + 0x5a,0xd7,0x46,0x45,0x38,0x1c,0xd1,0x39,0x10,0x47,0x43,0x2,0xec,0x91,0x0,0xbd, + 0xa,0x3f,0xd9,0x2e,0xcb,0xaa,0x8d,0x7e,0xb0,0xe1,0x27,0xb6,0x7,0x35,0xab,0xd5, + 0x35,0x88,0xa0,0x6a,0x91,0xbd,0x38,0x24,0x82,0x2b,0x44,0xc5,0x10,0x42,0x84,0x45, + 0xb8,0x9a,0x10,0xf5,0xfa,0xbc,0x4c,0x3d,0xe3,0xd1,0xcc,0x1d,0x6b,0xe3,0xe1,0xe1, + 0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0x11,0x5c, + 0x2b,0xfc,0x1,0xcb,0x5f,0xe1,0x60,0x8d,0xb6,0x85,0x2e,0x0,0x0,0x0,0x0,0x49, + 0x45,0x4e,0x44,0xae,0x42,0x60,0x82, + // icons8-play-96.png + 0x0,0x0,0x6,0x3a, + 0x89, + 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0, + 0x0,0x0,0x60,0x0,0x0,0x0,0x60,0x8,0x6,0x0,0x0,0x0,0xe2,0x98,0x77,0x38, + 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13, + 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x5,0xec,0x49,0x44,0x41,0x54,0x78,0x9c,0xed, + 0x9d,0xd9,0x6f,0x55,0x45,0x1c,0xc7,0x8f,0xfa,0xe0,0x6e,0x7c,0x30,0xd1,0x98,0xf8, + 0xa6,0xe8,0x83,0x4b,0x22,0xf,0x3e,0x68,0x8c,0x31,0xc6,0x37,0xb5,0x7b,0x7b,0xbb, + 0x63,0x65,0x69,0x45,0x5a,0x5a,0xbb,0xd8,0x95,0xca,0x26,0x88,0x5a,0x29,0x2e,0x54, + 0x85,0x4,0x52,0x49,0x24,0x80,0x1b,0x31,0x8,0x21,0x4,0xd4,0xba,0x82,0xdb,0xff, + 0xf3,0x31,0x63,0xbe,0x27,0x99,0xdc,0xb4,0x17,0xa,0xf7,0xf6,0xcc,0xcc,0x99,0x6f, + 0xf2,0x4b,0x7b,0xcf,0x3d,0xf7,0xcc,0xcc,0xe7,0xf7,0x9b,0xdf,0x9c,0x33,0x77,0xce, + 0xb9,0x49,0x12,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x55,0x41, + 0x1,0xf7,0x0,0x4f,0x3,0x5,0xd9,0x93,0xc0,0x2d,0x59,0xd7,0x2b,0x68,0x1,0xd7, + 0x3,0x6b,0x80,0x93,0xc0,0x5f,0xc0,0x9f,0xc0,0x25,0xe0,0x22,0xf0,0x3b,0xf0,0x13, + 0xb0,0xf,0x78,0x3c,0xeb,0xba,0x6,0x27,0x60,0x95,0xc0,0xff,0xb,0xfc,0x2d,0xe8, + 0xe7,0x81,0xef,0x81,0x53,0xc0,0x39,0xe0,0x67,0x60,0x1,0xf8,0x1,0xd8,0x6,0xdc, + 0x91,0x75,0xbd,0x83,0x10,0xb0,0x1a,0xf8,0x4d,0xf0,0xff,0x0,0x8e,0x3,0xfb,0x81, + 0xf,0x14,0xf1,0xb3,0xb2,0x8f,0x81,0x63,0x72,0x8c,0xb1,0x2f,0x81,0x67,0xb2,0xae, + 0xbf,0xd7,0x2,0xee,0x56,0x54,0x1b,0xf8,0x17,0x80,0x4f,0x80,0xf,0x17,0x81,0xbf, + 0x17,0x78,0x1f,0x98,0x91,0x23,0x4c,0x6f,0x39,0xb,0x9c,0x6,0x26,0x81,0xdb,0xb3, + 0x6e,0x8b,0x97,0x2,0xe,0x8,0xfe,0x82,0xc0,0x5e,0xe,0xfe,0xc,0xf0,0x9e,0xec, + 0xb0,0xd2,0x93,0xb1,0x23,0xc0,0x53,0x59,0xb7,0xc7,0x2b,0x1,0x8f,0x1,0xff,0x68, + 0xc0,0x3d,0xb0,0xc,0xf8,0xef,0x2,0xef,0xc8,0x66,0x95,0xb2,0x4c,0x8f,0xf8,0x1a, + 0x18,0x6,0x6e,0xcb,0xba,0x6d,0x5e,0x8,0xd8,0xa1,0x1,0xf7,0xcc,0x55,0xc2,0xdf, + 0x3,0xbc,0xd,0xec,0x6,0x3e,0xd5,0x98,0x70,0x2,0xf8,0xc,0x78,0x22,0xeb,0xf6, + 0x39,0x2f,0xe0,0x5b,0x9d,0x6a,0x7e,0x7e,0x8d,0xf0,0x77,0xc9,0xcc,0x3e,0xf3,0xc0, + 0x51,0xe0,0xb,0x60,0x30,0x8e,0xd,0x25,0xa4,0xd3,0xca,0x4b,0x8a,0xde,0x6b,0x85, + 0xff,0x16,0xb0,0x53,0xbd,0xea,0x23,0x39,0x75,0x5e,0xc7,0x5d,0x9d,0x75,0x5b,0x9d, + 0x94,0xce,0xf5,0x2f,0x2a,0xfa,0xcb,0x5,0x7f,0x7,0xb0,0x5d,0xdb,0x8d,0x63,0xf, + 0x1,0x7,0x81,0x75,0xf1,0x4a,0xba,0x48,0xd6,0x15,0x6e,0xb9,0xe1,0x6f,0x3,0xb6, + 0xca,0x66,0xe4,0x88,0x39,0x7d,0x3e,0x5e,0x45,0xa7,0x12,0xfc,0x5f,0x2b,0x8,0xff, + 0x4d,0x60,0x5a,0xdb,0x66,0x95,0x9a,0x4c,0x4a,0x5a,0xb,0xdc,0x9a,0xe4,0x5d,0x82, + 0xff,0x4b,0x85,0xe1,0x6f,0xb1,0x6c,0x97,0x55,0x8e,0x79,0xff,0xd1,0x24,0xcf,0x12, + 0xfc,0x85,0x15,0x80,0x3f,0xa5,0xab,0xe5,0x9,0xbd,0xde,0xad,0xe3,0x9a,0x63,0xb5, + 0xe5,0x76,0x6c,0x10,0xfc,0x1f,0x57,0x10,0xfe,0x4,0x30,0xe,0x8c,0x69,0x9f,0x9d, + 0xfa,0xfc,0x10,0xf0,0x50,0x92,0x37,0x9,0xfe,0x85,0xc,0xe0,0x8f,0xca,0xc6,0xac, + 0x7d,0xcd,0x7e,0x75,0xc0,0xcd,0x49,0x5e,0x24,0xf8,0xe7,0x33,0x82,0xff,0x6,0x30, + 0xa2,0xa9,0x8b,0x31,0xbd,0x6f,0xb6,0x6d,0x4,0xee,0x4f,0xf2,0x20,0xc1,0x3f,0x97, + 0x31,0xfc,0x61,0xa5,0xa0,0xd4,0xcc,0xd5,0xf3,0xeb,0xc0,0xb,0xc0,0x4d,0x49,0xc8, + 0x12,0xfc,0xb3,0xe,0xc0,0x1f,0x14,0x74,0x63,0x3,0x96,0x75,0x7,0xdd,0x1b,0x4, + 0xff,0x8c,0x63,0xf0,0xfb,0x65,0x3,0xd6,0xf6,0x17,0x83,0xec,0xd,0x82,0x7f,0xda, + 0x31,0xf8,0x9b,0x65,0x7d,0xfa,0x9b,0xbe,0x1f,0x5e,0x6f,0x10,0xfc,0x53,0x8e,0xc2, + 0xef,0x5,0x36,0xe9,0xaf,0xdd,0x1b,0x5e,0xa,0xa6,0x37,0x8,0xfe,0x77,0xe,0xc3, + 0xdf,0x4,0xbc,0xa6,0x33,0xa3,0x5e,0xed,0x6f,0x3e,0xdb,0x3,0x3c,0x90,0xf8,0x2e, + 0xc1,0x3f,0xe9,0x1,0xfc,0x57,0x65,0x1b,0xb5,0xff,0xa0,0x8e,0x55,0xed,0xf5,0x75, + 0x83,0xe0,0x7f,0xe3,0x9,0xfc,0x1e,0x8d,0x3,0x1b,0xb4,0x5f,0xea,0x4,0xf3,0xde, + 0xaa,0xc4,0x47,0x9,0xfe,0x57,0x9e,0xc1,0xdf,0x0,0xac,0xd7,0xdf,0x7e,0xab,0x8c, + 0x1a,0xef,0x7a,0x83,0xe0,0x9f,0xf0,0x10,0xfe,0x3a,0x4d,0x69,0xaf,0xd5,0xfe,0x43, + 0x2a,0xcb,0xfc,0xff,0x60,0xe2,0x8b,0x4,0xff,0x98,0xc7,0xf0,0x5f,0x1,0xba,0xb4, + 0x6d,0x40,0x65,0x1b,0xab,0xf5,0xa2,0x37,0x8,0xfe,0x51,0xcf,0xe1,0xbf,0x2c,0x5b, + 0xa3,0xcf,0xd,0xab,0x2e,0xbd,0xce,0xcf,0xb0,0x5a,0xab,0x17,0x42,0x80,0xdf,0x9, + 0x74,0x68,0xfb,0x80,0xea,0x64,0xac,0xde,0xd9,0xde,0x20,0xf8,0x47,0x2,0x82,0xdf, + 0x1,0xb4,0xcb,0xba,0x55,0xb7,0x51,0x95,0xe1,0xde,0x75,0x83,0xe0,0xcf,0x7,0x6, + 0xbf,0xd,0x68,0x95,0x75,0xaa,0xe,0xa3,0xaa,0xfb,0xb3,0x89,0x4b,0x12,0xfc,0xc3, + 0x81,0xc2,0x6f,0x1,0x9a,0x65,0x3d,0xd6,0x77,0xe,0xcf,0x25,0xae,0x48,0xf0,0xf, + 0x5,0xc,0xbf,0x20,0x6b,0xd2,0x31,0x52,0x27,0xb8,0x31,0xa9,0x67,0x2d,0x9a,0xa, + 0x1d,0x7e,0x23,0xd0,0xa0,0x72,0x26,0x54,0x8f,0xeb,0x5c,0x70,0xc0,0x41,0x2d,0xa4, + 0xcd,0x3,0xfc,0x6,0xd9,0x88,0xda,0x96,0xfd,0x5,0x9b,0xe0,0xcf,0xe5,0x4,0x7e, + 0xbd,0xbe,0xf4,0x5f,0xaf,0xb6,0x36,0xba,0xe0,0x80,0x39,0xdd,0x8a,0x94,0x17,0xf8, + 0xb5,0xda,0xd7,0xb4,0x77,0xb3,0xb,0xe,0xd8,0xaf,0xe5,0x82,0x79,0x81,0x5f,0xab, + 0xd7,0xc6,0x1,0xe3,0x2e,0x38,0x20,0x5d,0xab,0x99,0x17,0xf8,0x35,0x7a,0xed,0x8c, + 0x3,0xf6,0x69,0x5d,0x68,0x5e,0xe0,0x57,0x6b,0xdf,0x69,0x57,0x52,0xd0,0x5e,0xad, + 0x8a,0xcb,0xb,0xfc,0x2a,0x95,0x6d,0x1c,0x50,0x70,0xc1,0x1,0x33,0x5a,0x94,0x95, + 0x17,0xf8,0xd5,0x6a,0xdf,0xb4,0x13,0x33,0xa5,0x82,0xbf,0x27,0x27,0xf0,0xab,0x54, + 0x87,0xff,0xd3,0x8f,0x79,0x2c,0x83,0xb,0xe,0x48,0x97,0x88,0xe7,0x1,0x7e,0xa7, + 0x75,0xc5,0xef,0xcc,0x54,0x44,0xfa,0x65,0x7c,0xc8,0xf0,0xab,0xad,0xbc,0x6f,0xec, + 0xf9,0xc4,0x15,0x9,0xfe,0xf6,0x80,0xe1,0x37,0xa9,0x3d,0x69,0xe4,0xbb,0x3,0xdf, + 0x48,0xf0,0xb7,0x6,0x8,0xbf,0xda,0x9a,0x72,0x98,0x56,0x5b,0xb2,0x1f,0x74,0x8b, + 0x25,0xf8,0x5b,0x2,0x83,0xdf,0x64,0x45,0xfd,0xb4,0xde,0x73,0x73,0x29,0xa3,0x75, + 0x67,0x4a,0x8,0xf0,0x6b,0x54,0xa6,0x1d,0xf5,0xd9,0xcf,0x78,0x96,0x92,0xe0,0x8f, + 0x7,0x0,0xbf,0xa0,0x36,0xb8,0x1f,0xf5,0xb6,0xac,0xdb,0x82,0x7c,0x85,0x5f,0xab, + 0x32,0x27,0x5,0x7e,0xc0,0xf9,0xa8,0xb7,0x25,0xf8,0xc3,0x9e,0xc2,0x2f,0x28,0x75, + 0xa6,0x29,0xa7,0xc6,0x8b,0xa8,0xb7,0x25,0xf8,0x83,0x9e,0xc1,0xaf,0xb3,0xa2,0x7e, + 0x4a,0x75,0xf7,0x76,0x71,0x6e,0x9a,0xfb,0x7d,0x81,0xdf,0xac,0x3a,0x4f,0xc9,0xfc, + 0xc8,0xf5,0x4b,0xc9,0x4a,0x3d,0xae,0xc3,0xaf,0x53,0x59,0x13,0x2,0xdf,0xef,0x6d, + 0xd4,0xdb,0xb2,0xee,0x46,0x74,0x19,0x7e,0x73,0x51,0xd4,0x57,0x7b,0x1d,0xf5,0xb6, + 0xac,0x7b,0xaf,0x5c,0x84,0x5f,0x1f,0x64,0xd4,0xdb,0xb2,0x4e,0x3f,0x5d,0x83,0xdf, + 0x52,0x14,0xf5,0xfe,0x9d,0xe1,0x2c,0xd3,0x1,0xae,0xc0,0x6f,0x50,0x19,0xe3,0xc1, + 0x46,0x7d,0x9,0x7,0x64,0xd,0xbf,0x55,0x51,0x3f,0x61,0xe5,0xfa,0x1b,0x93,0x90, + 0x65,0x39,0x20,0x4b,0xf8,0x8d,0x2a,0x63,0x5c,0xf0,0xc3,0x8e,0xfa,0x25,0x1c,0x90, + 0x15,0xfc,0x36,0x95,0x9f,0xae,0x4b,0xa,0x3f,0xea,0x97,0x70,0xc0,0x4a,0xc3,0x6f, + 0x54,0x39,0xe3,0x82,0xdf,0x97,0x9b,0xa8,0x2f,0xe1,0x80,0x95,0x82,0xdf,0x6a,0xe5, + 0xfa,0xc9,0xdc,0x45,0xbd,0xad,0xa2,0x5b,0xff,0x2b,0xd,0xbf,0xa9,0x28,0xd7,0xe7, + 0x33,0xea,0x6d,0x9,0xfe,0xe0,0xa,0xc0,0x6f,0x93,0xb3,0xd3,0x25,0x90,0x55,0xb9, + 0x8d,0xfa,0x25,0x1c,0x50,0x29,0xf8,0x5,0x1d,0xd7,0x2c,0x7b,0x89,0x51,0x5f,0x22, + 0x5,0x55,0x2,0x7e,0xbb,0x8e,0x9f,0xa6,0x9c,0x18,0xf5,0xc5,0xd2,0x5,0xd8,0x90, + 0x52,0x50,0xb9,0xe0,0x37,0xcb,0xa1,0xe9,0xfd,0x58,0x66,0xa2,0x2f,0x46,0xfd,0x62, + 0x12,0xc8,0x21,0xd,0xc2,0xe5,0x80,0xdf,0x61,0x45,0xbd,0xb1,0x18,0xf5,0xa5,0x64, + 0x7e,0x80,0x47,0xe,0xe8,0x2b,0xc3,0xad,0xa0,0xdd,0xd6,0xfd,0xb8,0x66,0x72,0x2f, + 0x46,0xfd,0xe5,0x4,0xdc,0x65,0x3d,0x77,0x67,0xdd,0x55,0xc2,0x6f,0x57,0xd4,0xa7, + 0x29,0xc7,0x3c,0x52,0x2c,0x46,0xfd,0x95,0x4a,0xcf,0xe7,0x1c,0xd6,0x77,0x3,0x5d, + 0xcb,0x80,0xdf,0x62,0x45,0xfd,0x98,0xc6,0x13,0xf7,0x1e,0x7,0xe0,0xba,0xcc,0x83, + 0x2c,0x34,0x6,0xc,0x6b,0x22,0xac,0xeb,0xa,0xe0,0x77,0xc8,0x61,0xe9,0x8d,0x1d, + 0x31,0xea,0xcb,0xf0,0x5b,0x62,0xbd,0x5a,0xa4,0x9b,0x9e,0x15,0x75,0x2e,0x2,0xbf, + 0x5d,0xd3,0x16,0x69,0xae,0x37,0x51,0x1f,0x73,0x7d,0x39,0x4,0xdc,0xa9,0xc8,0x1e, + 0xb1,0x96,0xab,0xf,0xc8,0x31,0x7d,0xca,0xf3,0xf6,0x43,0xb7,0x4d,0xea,0x8a,0x51, + 0x5f,0x4e,0x99,0xdb,0xf7,0x81,0x47,0x34,0x6,0xa4,0x8e,0x18,0xb5,0x6c,0x48,0x4b, + 0x41,0xee,0xcd,0xba,0xae,0xc1,0xcb,0xfc,0xa8,0x2,0x70,0x9f,0x1c,0xf2,0xb0,0xfe, + 0xbf,0x21,0xeb,0x7a,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45, + 0x25,0x2b,0xa8,0xff,0x0,0x65,0xb4,0xac,0x77,0xf,0xc,0xba,0xc5,0x0,0x0,0x0, + 0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82, + // icons8-pause-96.png + 0x0,0x0,0x2,0xfb, + 0x89, + 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0, + 0x0,0x0,0x60,0x0,0x0,0x0,0x60,0x8,0x6,0x0,0x0,0x0,0xe2,0x98,0x77,0x38, + 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13, + 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x2,0xad,0x49,0x44,0x41,0x54,0x78,0x9c,0xed, + 0xdd,0xbd,0x6a,0x54,0x61,0x18,0x45,0xe1,0x1,0x45,0xbd,0x3,0x73,0x1,0x62,0x2d, + 0x5e,0x84,0x16,0x1a,0xed,0x44,0x2c,0x8c,0x28,0x22,0x11,0x12,0x12,0x48,0xfc,0x8d, + 0xa8,0xf8,0x83,0x8a,0x10,0x4,0x45,0x88,0xb6,0x76,0x6a,0x65,0x23,0x36,0xda,0xa9, + 0x58,0x79,0x43,0x4b,0x6,0xde,0x4a,0x82,0x30,0x4c,0xf6,0xb8,0x38,0x79,0x1f,0x18, + 0x12,0x86,0x14,0x7b,0x85,0x73,0xda,0xef,0x1b,0x8d,0x5a,0x6b,0xad,0xb5,0xd6,0x5a, + 0x6b,0xad,0xb5,0xd6,0x5a,0xdb,0x21,0xc0,0x61,0xe0,0xa,0xf0,0x0,0x78,0x56,0x3f, + 0x6f,0x0,0x6b,0xf5,0x59,0x1,0x2e,0x1,0xc7,0x81,0x83,0xbb,0x6d,0x4f,0xc,0xb0, + 0x1f,0xb8,0x9,0x7c,0x4,0xde,0x1,0x5b,0xc0,0xe6,0x36,0xc1,0xeb,0xc0,0xb5,0xfa, + 0x6e,0xfc,0x39,0x9,0xec,0x19,0xfa,0x9e,0x28,0xe0,0x0,0xf0,0x16,0xf8,0x5c,0xc1, + 0xaf,0x81,0x47,0xc0,0x9d,0x8a,0x1a,0x47,0xae,0x2,0x4b,0xc0,0x55,0x60,0x11,0x58, + 0xae,0x7f,0xd0,0x2d,0xe0,0x2,0xb0,0x77,0xa8,0x7b,0xe2,0xea,0xd5,0xfe,0x6,0x7c, + 0xaa,0xa7,0xec,0x21,0x70,0xf,0xd8,0xd8,0x26,0x78,0x11,0xb8,0xc,0x5c,0xac,0x57, + 0xff,0x7a,0xfd,0xdd,0xe9,0xa1,0xee,0x89,0x2,0x8e,0x2,0x3f,0x80,0xaf,0xc0,0x4b, + 0xe0,0xc9,0x4,0xc1,0xe7,0xeb,0x69,0xdb,0xa8,0xa7,0x73,0x6e,0x68,0x7b,0xe2,0x80, + 0xe7,0xc0,0x4f,0xe0,0x7d,0xfd,0x3e,0x69,0xf0,0xb9,0xfa,0xfe,0x2e,0x30,0x3f,0xb4, + 0x3d,0x71,0xc0,0x97,0xa,0xde,0x9a,0x22,0x78,0xa1,0x82,0x97,0x87,0xb6,0x27,0xe, + 0xf8,0x55,0xc1,0x2f,0xa6,0x8,0x3e,0x5b,0xc1,0xb7,0x87,0xb6,0x27,0xe,0xf8,0x5d, + 0xc1,0x9b,0x53,0x4,0x9f,0xa9,0xe0,0xfb,0x43,0xdb,0x13,0x67,0xb,0x46,0xb6,0x27, + 0xce,0x16,0x8c,0x6c,0x4f,0x9c,0x2d,0x18,0xd9,0x9e,0x38,0x5b,0x30,0xb2,0x3d,0x71, + 0xb6,0x60,0x64,0x7b,0xe2,0x6c,0xc1,0xc8,0xf6,0xc4,0xd9,0x82,0x91,0xed,0x89,0xb3, + 0x5,0x23,0xdb,0x13,0x67,0xb,0x46,0xb6,0x27,0xce,0x16,0x8c,0x6c,0x4f,0x9c,0x2d, + 0x18,0xd9,0x9e,0x38,0x5b,0x30,0xb2,0x3d,0x71,0xb6,0x60,0x64,0x7b,0xe2,0x6c,0xc1, + 0xc8,0xf6,0xc4,0xd9,0x82,0x91,0xed,0x89,0xb3,0x5,0x23,0xdb,0x13,0x67,0xb,0x46, + 0xb6,0x27,0xce,0x16,0x8c,0x6c,0x4f,0x9c,0x2d,0x18,0xd9,0x9e,0x38,0x5b,0x30,0xb2, + 0x3d,0x71,0xb6,0x60,0x64,0x7b,0xe2,0x6c,0xc1,0xc8,0xf6,0xc4,0xd9,0x82,0x91,0xed, + 0x89,0xb3,0x5,0x23,0xdb,0x13,0x67,0xb,0x46,0xb6,0x27,0xce,0x16,0x8c,0x6c,0x4f, + 0x9c,0x2d,0x18,0xd9,0x9e,0x38,0x5b,0x30,0xb2,0x3d,0x71,0xb6,0x60,0x64,0x7b,0xe2, + 0x6c,0xc1,0xc8,0xf6,0xc4,0xd9,0x82,0x91,0xed,0x89,0xb3,0x5,0x23,0xdb,0x13,0x67, + 0xb,0x46,0xb6,0x27,0xce,0x16,0x8c,0x6c,0x4f,0x9c,0x2d,0x18,0xd9,0x9e,0x38,0x5b, + 0x30,0xb2,0x3d,0x71,0xb6,0x60,0x64,0x7b,0xe2,0x6c,0xc1,0xc8,0xf6,0xc4,0xd9,0x82, + 0x91,0xed,0x89,0xb3,0x5,0x23,0xdb,0x13,0x67,0xb,0x46,0xb6,0x27,0xce,0x16,0x8c, + 0x6c,0x4f,0x9c,0x2d,0x18,0xd9,0x9e,0x38,0x5b,0x30,0xb2,0x3d,0x71,0xb6,0x60,0x64, + 0x7b,0xe2,0x6c,0xc1,0xc8,0xf6,0xc4,0xd9,0x82,0x91,0xed,0x89,0xb3,0x5,0x23,0xdb, + 0x13,0x67,0xb,0x46,0xb6,0x27,0xce,0x16,0x8c,0x6c,0x4f,0x9c,0x2d,0x18,0xd9,0x9e, + 0x38,0x5b,0x30,0xb2,0x3d,0x71,0xb6,0x60,0x64,0x7b,0xe2,0x6c,0xc1,0xc8,0xf6,0xc4, + 0xd9,0x82,0x91,0xed,0x89,0xb3,0x1d,0x94,0x8a,0x6c,0x4f,0x9c,0xed,0xa8,0x60,0x64, + 0x7b,0xe2,0x6c,0x87,0x65,0x23,0xdb,0x13,0x7,0x1c,0x1,0xbe,0xd7,0x71,0xf1,0xaf, + 0xfe,0xf7,0x71,0xf1,0xc8,0xf6,0xcc,0x44,0x45,0x4e,0x7b,0x61,0xc2,0xa9,0xa1,0xee, + 0x89,0x3,0xf6,0x1,0x6f,0xfe,0xba,0x32,0xe4,0xf1,0x4,0x57,0x86,0x2c,0xec,0xf0, + 0x15,0x26,0xaa,0x3d,0x33,0x51,0xd1,0xe3,0xb8,0xf,0x13,0x5e,0x9a,0x73,0x22,0x74, + 0x89,0x8f,0x6a,0xcf,0xcc,0x0,0x87,0xea,0x95,0x1e,0x87,0x3e,0xfd,0xc7,0xb5,0x51, + 0xc7,0x66,0x74,0x8d,0x95,0x6a,0x4f,0x6b,0xad,0xb5,0xd6,0x5a,0x6b,0xad,0xb5,0xd6, + 0x5a,0x1b,0xed,0x1a,0x7f,0x0,0xc,0xa4,0x32,0x9b,0x33,0x53,0x49,0x31,0x0,0x0, + 0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82, + // 128.png 0x0,0x0,0x20,0x4f, 0x89, 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0, @@ -536,6 +1093,32 @@ static const unsigned char qt_resource_name[] = { 0x0,0x7e,0xc4,0xf1, 0x0,0x78, 0x0,0x65,0x0,0x6e,0x0,0x69,0x0,0x61, + // settings-icon.png + 0x0,0x11, + 0xb,0x5a,0xbe,0x67, + 0x0,0x73, + 0x0,0x65,0x0,0x74,0x0,0x74,0x0,0x69,0x0,0x6e,0x0,0x67,0x0,0x73,0x0,0x2d,0x0,0x69,0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67, + + // folder-icon.png + 0x0,0xf, + 0xf,0x38,0x45,0x27, + 0x0,0x66, + 0x0,0x6f,0x0,0x6c,0x0,0x64,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x69,0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67, + // user-icon.png + 0x0,0xd, + 0x3,0x99,0xf1,0x47, + 0x0,0x75, + 0x0,0x73,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x69,0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67, + // play-icon.png + 0x0,0xd, + 0x8,0x30,0xd1,0x67, + 0x0,0x70, + 0x0,0x6c,0x0,0x61,0x0,0x79,0x0,0x2d,0x0,0x69,0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67, + // pause-icon.png + 0x0,0xe, + 0xb,0xf2,0x4d,0x7, + 0x0,0x70, + 0x0,0x61,0x0,0x75,0x0,0x73,0x0,0x65,0x0,0x2d,0x0,0x69,0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67, // icon.png 0x0,0x8, 0xa,0x61,0x5a,0xa7, @@ -549,11 +1132,26 @@ static const unsigned char qt_resource_struct[] = { 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, // :/xenia - 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2, + 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x2, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + // :/xenia/user-icon.png + 0x0,0x0,0x0,0x5c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x11,0x21, +0x0,0x0,0x1,0x99,0xc7,0xb3,0x80,0xd1, + // :/xenia/play-icon.png + 0x0,0x0,0x0,0x7c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x18,0x4d, +0x0,0x0,0x1,0x99,0xc7,0xb3,0x80,0xc1, // :/xenia/icon.png + 0x0,0x0,0x0,0xbe,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x21,0x8a, +0x0,0x0,0x1,0x99,0x9d,0x45,0x8b,0x62, + // :/xenia/settings-icon.png 0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0, -0x0,0x0,0x1,0x99,0x6a,0xd3,0xe4,0x4f, +0x0,0x0,0x1,0x99,0xc7,0xb3,0x80,0xd1, + // :/xenia/pause-icon.png + 0x0,0x0,0x0,0x9c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1e,0x8b, +0x0,0x0,0x1,0x99,0xc7,0xb3,0x80,0xb1, + // :/xenia/folder-icon.png + 0x0,0x0,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xa,0x63, +0x0,0x0,0x1,0x99,0xc7,0xb3,0x80,0xb1, }; @@ -569,7 +1167,9 @@ static const unsigned char qt_resource_struct[] = { # define QT_RCC_MANGLE_NAMESPACE(name) name #endif -#ifdef QT_NAMESPACE +#if defined(QT_INLINE_NAMESPACE) +inline namespace QT_NAMESPACE { +#elif defined(QT_NAMESPACE) namespace QT_NAMESPACE { #endif @@ -598,9 +1198,18 @@ int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_ui_resources)() return 1; } +#ifdef __clang__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wexit-time-destructors" +#endif + namespace { struct initializer { initializer() { QT_RCC_MANGLE_NAMESPACE(qInitResources_ui_resources)(); } ~initializer() { QT_RCC_MANGLE_NAMESPACE(qCleanupResources_ui_resources)(); } } dummy; } + +#ifdef __clang__ +# pragma clang diagnostic pop +#endif diff --git a/src/xenia/ui/windowed_app_main_qt.cc b/src/xenia/ui/windowed_app_main_qt.cc index ff75a2a66..46cc7d43c 100644 --- a/src/xenia/ui/windowed_app_main_qt.cc +++ b/src/xenia/ui/windowed_app_main_qt.cc @@ -8,6 +8,8 @@ */ #include +#include +#include #include #include @@ -30,6 +32,47 @@ int main(int argc, char** argv) { QApplication qt_app(argc, argv); + // Force dark theme + QPalette dark_palette; + dark_palette.setColor(QPalette::Window, QColor(53, 53, 53)); + dark_palette.setColor(QPalette::WindowText, Qt::white); + dark_palette.setColor(QPalette::Base, QColor(35, 35, 35)); + dark_palette.setColor(QPalette::AlternateBase, QColor(53, 53, 53)); + dark_palette.setColor(QPalette::ToolTipBase, QColor(25, 25, 25)); + dark_palette.setColor(QPalette::ToolTipText, Qt::white); + dark_palette.setColor(QPalette::Text, Qt::white); + dark_palette.setColor(QPalette::Button, QColor(53, 53, 53)); + dark_palette.setColor(QPalette::ButtonText, Qt::white); + dark_palette.setColor(QPalette::BrightText, Qt::red); + dark_palette.setColor(QPalette::Link, QColor(42, 130, 218)); + dark_palette.setColor(QPalette::Highlight, QColor(42, 130, 218)); + dark_palette.setColor(QPalette::HighlightedText, Qt::black); + dark_palette.setColor(QPalette::Disabled, QPalette::Text, + QColor(127, 127, 127)); + dark_palette.setColor(QPalette::Disabled, QPalette::ButtonText, + QColor(127, 127, 127)); + qt_app.setPalette(dark_palette); + + // Fix menu spacing and styling + qt_app.setStyleSheet( + "QMenuBar::item { " + " padding: 5px 10px; " + "} " + "QMenu { " + " background-color: rgb(53, 53, 53); " + " border: 1px solid rgb(80, 80, 80); " + " border-radius: 0px; " + "} " + "QMenu::item { " + " padding: 5px 25px 5px 10px; " + " background-color: transparent; " + "} " + "QMenu::item:selected { " + " background-color: rgb(42, 130, 218); " + " color: black; " + "} " + "QMenu::indicator { width: 0px; margin-left: 0px; }"); + // Set different application name for game processes so they show as separate // dock entries. Check if we have a target file argument (game process) or not // (UI process).