From 4aa4310d7df3e5b8bb28de2b88d985ba779a4089 Mon Sep 17 00:00:00 2001 From: taqin Date: Sun, 12 Apr 2026 21:06:53 +0700 Subject: [PATCH] Use PNG icon assets + Windows 11 WinUI3 native design - Download 27 fluency-style PNG icons (shield, cpu, monitor, wifi, etc.) - Replace Lucide CDN with embedded PNG tags throughout UI - Redesign CSS with Windows 11 Mica/Acrylic dark theme: - WinUI3 color palette (Segoe UI Variable font) - NavigationView-style toolbar tabs with accent indicator bar - Subtle borders matching Win11 material layering - Accent button style (#0078d4) matching Windows 11 controls - Card/surface hierarchy matching WinUI3 specs - Add IMTAQIN credit in footer with link to https://imtaqin.id - Fix embed directive for flat icon layout (no subdirectories) Co-Authored-By: Claude Opus 4.6 (1M context) --- ui/app.js | 111 +++--- ui/icon-battery.png | Bin 0 -> 731 bytes ui/icon-bluetooth.png | Bin 0 -> 1063 bytes ui/icon-camera.png | Bin 0 -> 1564 bytes ui/icon-checkmark.png | Bin 0 -> 776 bytes ui/icon-cloud.png | Bin 0 -> 755 bytes ui/icon-cpu.png | Bin 0 -> 925 bytes ui/icon-download.png | Bin 0 -> 762 bytes ui/icon-error.png | Bin 0 -> 1418 bytes ui/icon-harddrive.png | Bin 0 -> 1443 bytes ui/icon-help.png | Bin 0 -> 1590 bytes ui/icon-info.png | Bin 0 -> 1367 bytes ui/icon-install.png | Bin 0 -> 1832 bytes ui/icon-keyboard.png | Bin 0 -> 861 bytes ui/icon-laptop.png | Bin 0 -> 1580 bytes ui/icon-monitor.png | Bin 0 -> 1455 bytes ui/icon-mouse.png | Bin 0 -> 1466 bytes ui/icon-package.png | Bin 0 -> 934 bytes ui/icon-printer.png | Bin 0 -> 464 bytes ui/icon-ram.png | Bin 0 -> 1356 bytes ui/icon-refresh.png | Bin 0 -> 846 bytes ui/icon-scan.png | Bin 0 -> 891 bytes ui/icon-settings.png | Bin 0 -> 1741 bytes ui/icon-shield.png | Bin 0 -> 1458 bytes ui/icon-speaker.png | Bin 0 -> 1241 bytes ui/icon-usb.png | Bin 0 -> 1123 bytes ui/icon-warning.png | Bin 0 -> 1022 bytes ui/icon-wifi.png | Bin 0 -> 1114 bytes ui/index.html | 116 ++----- ui/style.css | 763 +++++++++++++++--------------------------- 30 files changed, 341 insertions(+), 649 deletions(-) create mode 100644 ui/icon-battery.png create mode 100644 ui/icon-bluetooth.png create mode 100644 ui/icon-camera.png create mode 100644 ui/icon-checkmark.png create mode 100644 ui/icon-cloud.png create mode 100644 ui/icon-cpu.png create mode 100644 ui/icon-download.png create mode 100644 ui/icon-error.png create mode 100644 ui/icon-harddrive.png create mode 100644 ui/icon-help.png create mode 100644 ui/icon-info.png create mode 100644 ui/icon-install.png create mode 100644 ui/icon-keyboard.png create mode 100644 ui/icon-laptop.png create mode 100644 ui/icon-monitor.png create mode 100644 ui/icon-mouse.png create mode 100644 ui/icon-package.png create mode 100644 ui/icon-printer.png create mode 100644 ui/icon-ram.png create mode 100644 ui/icon-refresh.png create mode 100644 ui/icon-scan.png create mode 100644 ui/icon-settings.png create mode 100644 ui/icon-shield.png create mode 100644 ui/icon-speaker.png create mode 100644 ui/icon-usb.png create mode 100644 ui/icon-warning.png create mode 100644 ui/icon-wifi.png diff --git a/ui/app.js b/ui/app.js index 1bbfa38..77be587 100644 --- a/ui/app.js +++ b/ui/app.js @@ -1,6 +1,5 @@ /* ============================================================ - Driver Booster Pro - Application Logic - Driver Navigator Style: tabs, driver rows, action buttons + Driver Booster Pro - PNG Icons Edition ============================================================ */ var App = { @@ -10,16 +9,9 @@ var App = { this.setupTabs(); this.setupFilters(); this.refreshSysInfo(); - this.refreshIcons(); }, - refreshIcons: function() { - if (window.lucide) lucide.createIcons(); - }, - - // ---- Tab Navigation ---- setupTabs: function() { - var self = this; document.querySelectorAll('.toolbar-tab').forEach(function(tab) { tab.addEventListener('click', function() { var id = tab.dataset.tab; @@ -32,7 +24,6 @@ var App = { }); }, - // ---- Filter Pills ---- setupFilters: function() { var self = this; document.querySelectorAll('.pill').forEach(function(btn) { @@ -54,17 +45,15 @@ var App = { }); }, - // ---- Loading ---- showLoading: function(text) { document.getElementById('loading-text').textContent = text; document.getElementById('loading-overlay').style.display = 'flex'; - this.refreshIcons(); }, hideLoading: function() { document.getElementById('loading-overlay').style.display = 'none'; }, - // ---- System Info ---- + // System Info refreshSysInfo: function() { var self = this; this.showLoading('Collecting system information...'); @@ -72,10 +61,7 @@ var App = { self.state.sysInfo = info; self.renderSysInfo(info); self.hideLoading(); - }).catch(function(e) { - console.error(e); - self.hideLoading(); - }); + }).catch(function(e) { console.error(e); self.hideLoading(); }); }, renderSysInfo: function(d) { @@ -100,17 +86,15 @@ var App = { if(db) db.style.width = (d.diskPercent||0)+'%'; }, - // ---- Driver Scan ---- + // Driver Scan scanDrivers: function() { var self = this; - this.showLoading('Scanning drivers... This may take a moment.'); + this.showLoading('Scanning drivers...'); // Switch to drivers tab document.querySelectorAll('.toolbar-tab').forEach(function(t){ t.classList.remove('active'); }); document.querySelector('[data-tab="drivers"]').classList.add('active'); document.querySelectorAll('.tab-page').forEach(function(p){ p.classList.remove('active'); }); document.getElementById('tab-drivers').classList.add('active'); - - // Update steps this.setStep(2); fetch('/api/drivers/scan').then(function(r){ return r.json(); }).then(function(result) { @@ -118,10 +102,7 @@ var App = { self.renderDrivers(result); self.updateScanStats(result); self.hideLoading(); - }).catch(function(e) { - console.error(e); - self.hideLoading(); - }); + }).catch(function(e) { console.error(e); self.hideLoading(); }); }, updateScanStats: function(r) { @@ -139,8 +120,7 @@ var App = { var list = document.getElementById('driver-list'); if (!result.drivers || result.drivers.length === 0) { - list.innerHTML = '

No drivers found

'; - this.refreshIcons(); + list.innerHTML = '

No drivers found

'; return; } @@ -150,32 +130,31 @@ var App = { if (d.needsUpdate) cls.push('outdated'); if (d.status === 'Error' || d.status === 'Degraded') cls.push('error'); - var icon = self.driverIcon(d.deviceClass); + var iconFile = self.driverIconFile(d.deviceClass); var barClass = d.needsUpdate ? 'warn' : (d.status === 'Error' ? 'err' : 'ok'); var signBadge = d.isSigned - ? ' Signed' - : ''; + ? ' Signed' + : 'Unsigned'; var actionBtn = d.needsUpdate - ? '' + - '' - : ''; + ? '' + + '' + : ''; return '
' + - '
' + + '
' + '
' + '
' + self.esc(d.deviceName) + '
' + - '
' + self.esc(d.manufacturer||'Unknown') + ' · v' + self.esc(d.driverVersion||'?') + ' · ' + self.esc(d.driverDate) + ' ' + signBadge + '
' + - '
' + - '
' + - '
' + + '
' + self.esc(d.manufacturer||'Unknown') + + ' · v' + self.esc(d.driverVersion||'?') + + ' · ' + self.esc(d.driverDate) + ' ' + signBadge + '
' + '
' + + '
' + '
' + actionBtn + '
' + '
'; }).join(''); - // Show CTA if there are outdated drivers var cta = document.getElementById('cta-update-all'); if (result.outdatedCount > 0) { cta.style.display = 'flex'; @@ -183,30 +162,27 @@ var App = { } else { cta.style.display = 'none'; } - - this.refreshIcons(); }, - driverIcon: function(cls) { - if (!cls) return 'package'; + driverIconFile: function(cls) { + if (!cls) return 'package.png'; var u = cls.toUpperCase(); var m = { - 'DISPLAY':'monitor','MEDIA':'volume-2','AUDIO':'volume-2','SOUND':'volume-2', - 'NET':'wifi','NETWORK':'wifi','USB':'usb','HID':'mouse','KEYBOARD':'keyboard', - 'DISK':'hard-drive','STORAGE':'hard-drive','PROCESSOR':'cpu','SYSTEM':'settings', - 'BLUETOOTH':'bluetooth','CAMERA':'camera','IMAGE':'camera','PRINT':'printer', - 'BATTERY':'battery-charging','FIRMWARE':'circuit-board','SECURITY':'shield', - 'SENSOR':'thermometer' + 'DISPLAY':'monitor.png','MEDIA':'speaker.png','AUDIO':'speaker.png','SOUND':'speaker.png', + 'NET':'wifi.png','NETWORK':'wifi.png','USB':'usb.png','HID':'mouse.png', + 'KEYBOARD':'keyboard.png','DISK':'harddrive.png','STORAGE':'harddrive.png', + 'PROCESSOR':'cpu.png','SYSTEM':'settings.png','BLUETOOTH':'bluetooth.png', + 'CAMERA':'camera.png','IMAGE':'camera.png','PRINT':'printer.png', + 'BATTERY':'battery.png' }; for (var k in m) { if (u.indexOf(k) !== -1) return m[k]; } - return 'package'; + return 'package.png'; }, - // ---- Windows Update ---- + // Windows Update checkUpdates: function() { var self = this; this.showLoading('Checking for Windows updates...'); - // Switch to updates tab document.querySelectorAll('.toolbar-tab').forEach(function(t){ t.classList.remove('active'); }); document.querySelector('[data-tab="updates"]').classList.add('active'); document.querySelectorAll('.tab-page').forEach(function(p){ p.classList.remove('active'); }); @@ -216,24 +192,18 @@ var App = { self.state.updates = result; self.renderUpdates(result); self.hideLoading(); - }).catch(function(e) { - console.error(e); - self.hideLoading(); - }); + }).catch(function(e) { console.error(e); self.hideLoading(); }); }, renderUpdates: function(result) { var list = document.getElementById('update-list'); if (result.error) { - list.innerHTML = '

' + this.esc(result.error) + '

'; - this.refreshIcons(); + list.innerHTML = '

' + this.esc(result.error) + '

'; return; } - if (!result.updates || result.updates.length === 0) { - list.innerHTML = '

Your system is fully up to date!

'; - this.refreshIcons(); + list.innerHTML = '

Your system is fully up to date!

'; return; } @@ -243,32 +213,28 @@ var App = { var html = ''; if (pending.length > 0) { - html += '
Pending (' + pending.length + ')
'; + html += '
Pending (' + pending.length + ')
'; html += pending.map(function(u) { return '
' + '
' + self.esc(u.title) + '
' + '
' + - (u.kbArticle ? ' '+self.esc(u.kbArticle)+'' : '') + - (u.category ? ' '+self.esc(u.category)+'' : '') + - (u.size ? ' '+self.esc(u.size)+'' : '') + - (u.severity && u.severity !== 'Unspecified' ? ' '+self.esc(u.severity)+'' : '') + - '
' + - '
'; + (u.kbArticle ? ' '+self.esc(u.kbArticle)+'' : '') + + (u.category ? ' '+self.esc(u.category)+'' : '') + + (u.size ? ' '+self.esc(u.size)+'' : '') + + (u.severity && u.severity !== 'Unspecified' ? ' '+self.esc(u.severity)+'' : '') + + ''; }).join(''); } if (installed.length > 0) { - html += '
Recently Installed (' + installed.length + ')
'; + html += '
Recently Installed (' + installed.length + ')
'; html += installed.map(function(u) { return '
' + self.esc(u.title) + '
'; }).join(''); } - list.innerHTML = html; - this.refreshIcons(); }, - // ---- Step bar ---- setStep: function(n) { for (var i = 1; i <= 3; i++) { var el = document.getElementById('step-' + i); @@ -279,7 +245,6 @@ var App = { } }, - // ---- Helpers ---- set: function(id, val) { var el = document.getElementById(id); if (el) el.textContent = (val != null && val !== '') ? val : '--'; diff --git a/ui/icon-battery.png b/ui/icon-battery.png new file mode 100644 index 0000000000000000000000000000000000000000..b1bae70bdb5e9d616d1577ab90c1c4b8d5dd5baf GIT binary patch literal 731 zcmV<10wn#3P)D;1otltF!0M2*5(>ZH&|JfehFYVC;rO~^cyjkPP zCvd7~dUtQ8cZaet2ESgxsb0Hxi}nGW>Qy>Dv=9GO5-q@m{|EH_1$c)q03}##;rABi z6n_p@{v5dYv$+TOFTmYPe1~*`XNvy}9R2~}%jbFRdA2x=0^Yd?99tTOJW<32Fid2d zG<*^nz(E>fW)yJ&c_y+$8qP!p9QxX`Elerm0*)vRry>ImoJg89#5_{O1>}*QWlO_H zkpUc}A?AT1E+CKeG+P=z2n^8Np9rHmamEA%W5*exPDn4JO$feTTNF8fd%#C&bwhfb zTUsUzk!%h{1f)wVDbfjXD@}Yzq%o}k?g2ccTOo!gA|U^+qf6^pyicfi`}_k~c1@+d57L9RbX~)^NYY#p0r_{G zDjkSRfw-i)sHO@CVA*wiB5Be!)ge?BM^He{UB@R9iBsvCLdC0!jec}&{sAnz&XTSM z;uHbD+Oh09DeY`XSK1N$0~mI_DQ(l=N!ye%Mz#pt16X#wOZt0A%j6%xvg`On%55tt z-ZD`sq$wbPW!GuaNpS;R2XGHy*>!v(Y0}pX1AS}g1nvQ3BFxfeB;CZ)##;R92Givq zz_ROXX`P4{F?9g}71>(l-F18-@z*W}(wNJ-hAt&-$vvPfTTb3x$EB}g(nTyy#R&yT zvAG9mns!lY8cwNYuJ+w^^0kxFUnLb4YU;93RqQXC#{WOE^PTTMyT6mrTGC30Z8HD> N002ovPDHLkV1kPrJ@^0s literal 0 HcmV?d00001 diff --git a/ui/icon-bluetooth.png b/ui/icon-bluetooth.png new file mode 100644 index 0000000000000000000000000000000000000000..18e8e4a9adfad4cebdfade2fc82e53409252a85c GIT binary patch literal 1063 zcmV+?1laqDP)GSW9}jx^|N0)v-fM2x3FWNp~v+sXDPDq6)##7RKJx;q;)#Y2ueyVsjlS zU+JSHkMl^M-%n5M$1woQEVIlq!4TV{2gKI!0+ZePP6Ue-cl9 zNFg`BMKKtlT)qPqA*3gK?DKHS(E#i;S3ufB`oeP%8%NKfIv_!sL(YkRGlSajIL&G< z57HXa7o9SmybgklsjZ{8KpGPfMTG9K)W+b%A9E+@&LyP|-Un$*R1}ZpH8)FX?h{JK z;!_+%>iw6bW`CThAfY?&lDhjFsSmEm4Yv#c%7h9CNlpszveR6lG-p8T4hmym(~5I1 zu>vUF9fc${H*|W$ouvYT;n^rdYyGcjt&c*ey+0ExfYhAtr;;;Kt^YJ9j8^e+S`W*G zCYQ^1Xw|OLnvEiyCAx$t&AEt*(yHy99{sV2+-#ySx=U&H@npP*yM9CWnwER_L6V^~ z_f1;s{}B}RQ0;NJvpuf>cDqB+YVX-pnz?~ix>r!?egtkKq|kAYanE($`c-AhXC-R@~LCs?bL(*4QrYBz??S>Qclln!F#&X`iVDY=k+SbmLGJDrI1 zL^PK6X;!PJZ7YE?jNJYzMmCJxO7~`tQd^(RNh@sxNqtcs9y#g0;(u7V*UaMqT!FUoDHxMiAzsw0nvN!ermuQEHPfeB+j1w$8CAV%Mu4r6x zg7E=JTVh1V_%*k_KZ7gokNHA1CHDi71V!h0j5*D(RnoDQh)YD)r}!9gg=z{nbCF*+vnPott`49RYXV}Xp(Sra0002ovPDHLkV1l)y^a}t0 literal 0 HcmV?d00001 diff --git a/ui/icon-camera.png b/ui/icon-camera.png new file mode 100644 index 0000000000000000000000000000000000000000..411bac812d0ad652f1252bfffc497a53a589440c GIT binary patch literal 1564 zcmV+%2IKjOP)FmnFKzM5lm2fwreN zD7}edyE)AOwUkStfNeqK<}F?#nwVvC37ZJ&681p_1O%h>v^_nouxWnF^Y-pwOvCBe z(kFS+lhgM+@9+1#zvp@1b7Zo-2{&ulO=42&hf9D6c#Kh0cN!jS2hJ#w@3M^dF6(u^WZ}XFiN_ z!vO|RZLERE*Nf5d`r$;5T5~NP zO-!P?;7hi#ME3Ck`2?B=BAbLk)S%s~vw6WMUhhzk(V-$1M@OV#WX`W;= zoB)5NK8lMCB8HAf(0ek1uEq#jn*^L_5pcvEhRqX#zB7n2Ul6mwm#H{yUEM79N?mE) z2vk(oph#JX+hg}q6aRX1nPvQPLi+@s^iT5fJ0tM81T-}ZsBabEXbZ#Q2|?2p#C{(S z?`V1zez`NwV$&Rw5h&B!P*9=A!qaD|iLd*jOfKge;^oZo9CL?ps67m0 zM+mB}APW3EbXP*DI8PRyve-0-WCTc~`^t5A@nR`8F||t4I)SENl1;ZW4xWnF)hwW{ zRlwJ6VOSILQFw#c-OXdyAfJjuF)4Pu4x}QWvtVCYHh~_u$U05ZPc=r+(HMcdDGt6N zp?xY|%D%cQh(aHaFM9&mIg}z$Tr#4FM<3lWY#QhZuM*b)Hi}?Dg~5 zc{+ek`vP#?6H{@19vzdu29jOK-RVzFOvi&`ZDF=akyFO0+fdd?^TrJD`}{n<=m}uU znE*Z-T*PEJ-9}qHUg^6~avvzynGlVpTOb_|DAT0#1D+6Tl?0p$mNZYYq0E!+w-WgN zMKs(^XJ3p)q0m-KzYipLVp{4mLl;s2=xoz^RfM544w^Dft&+M;k&kDZC)u#f_b)>8 zLn!MgaeCk^iz)d|oOu>1QX24Zaw-La0G%0$u^qP9%cH=@V^4QH>r}9$`Hu(Vna>3O z;L#+D#m+)T$2pu!*^W(4*CV&@psD>7iq-M4 z^o(MacjBB8c>Svc^>Nxwzbe&WPl+14i&f0&n(onmG-j=@5}I5R_|JbA(rlzJbDQMb zXE)2YV9FWDHoSwxME@c11z$yRQzIb2BEgM7 z4B$sq6dwV+-Nh1g!A%ZENE&LX*rB>SiuP@ICJ8JJ zT)@MeFNB{L1&y@g3jSypMf)WJ0*n&a6+8r%l>y$B#0C-phECHueq^&alf~+LLMp_BHR?xk#&#cio+XWKgHV5!_uI)Wi zs6cC*NrIkEyujPp_`J1u|J!p%3AlIX!{e6%j|qL+dbLpEut-A9!hyhZLLZ-;FVWf| zq2?yv@ODDY!k-fB1aIf|+x&~WU!GzpT+eR!@#DwOf05rEE;1pRt64Sx0000VP=^r1il7!hdvCDsQkz#lduO7tyo+MY-Q41R&52hnzy$sE8KuD?s%Op#Z+=2dNEN!PMjUuP0#mFm?HfA8b?MFoaX8Y$c5>NU@6%S|qA4{vj0|hHy$b0*y?_7Q0sz z`^z8bG$>~V8;0X5SYk_2sOQvf`^)cp4`>(O7iy5bK+e!G@gU(8Jz}}cwX}}+dGCS3 zx%(JBhRRr|!gx?Q9Dwq449c@9D9_)4^5Q)xFF$~CGy~<;JnW~SudgG$2^)Eiy^ftb zng!RwYvQ%>9(b?A!Ea_u**ean*r`?9Gtp(xX;94YAg=)mOb$c8LbiK-blEevjvhmW ztnG0dAkP#$_;dJv@OML4i#qxY9_BTG8p_}w!?UEVMIBv+*8o||fpqgP;aLt&7stE? lI5=G#{}a57j0{P9egac4aUha6B?|xm002ovPDHLkV1m-uPSF4W literal 0 HcmV?d00001 diff --git a/ui/icon-cpu.png b/ui/icon-cpu.png new file mode 100644 index 0000000000000000000000000000000000000000..80628c2ce54e632e8b749db8f9232e6413c70b68 GIT binary patch literal 925 zcmV;O17iG%P)YYL$);e@Jcj`UqvO1^)Nt>dw+DD7%jyZ*nrt|=!s z^GeXF;W0J6cl=}xFVx5XLk?0(MdR^3bKXqr&BBo7k7sKFt6za z-`9t0>)eilydma~3ppr+KDz9RnUBtrO^(k&N9^*SytE=V{!stYG~ z%UKFl@k<+Gdm~7)9L~?rNlCJtaLZX_GvJO)L|EPkG?v5J*;!MZo}M;DV>#iLv&d$^ z9sU?$dBf0{gOigJQZ(iWx12>b1G!QKA!)Y+)y(4f_!vPDkfEAc;g+)$s^a(Q5ayOJ zWM)yX*GW++8@M|I4&Q8UVYwoPQW+c`9+EPY$_TfdMK%NS&dKlB3B$(0!NH^0-{1cw z3B&%e7f4xTGtj7ky}dnB5)B$qs49~mLr5x{M_jkCySqzDT(^W<&LW!u+aHZEGCl_N zGl1#Yetfm)y zuK{-$A^Z_IrZH@6Y>*Pum~hKkWHXS?l_HX97Xzw^_4Rd91~i7GM98ZUmKZx zr_!qW=RU9Bt#$+Rf4_l1zAsZBx2s+4`j6^6Xgap)hv!6C00000NkvXXu0mjf^!Ty{ literal 0 HcmV?d00001 diff --git a/ui/icon-download.png b/ui/icon-download.png new file mode 100644 index 0000000000000000000000000000000000000000..5b90e120dd68cd408b89610d54f22299c3d08df6 GIT binary patch literal 762 zcmV4-=$r55vi)$D(#M?^B&oF z6AT1MAPEqns;Ure7U`;e1^>_j`*t(cogXr|!AjeOJ(7=fBxEu6cMOYr4??L@rAif+ zIbF}|H)~v{5V$d- zMzY8Vfmg4nkt{Mo;KY|dfmfK3EUI2EH_(*}>hgs|0V*Nz@(}!8o&e<#cxgb5 zWKlT;PJAv=fKmutXGXH9BtYwD3u5hTAx{831g`a|ku1^#XmGJdjbxFw1s+g$gJcHK z`ipN5zwvwUeefxD0o?JKy{}0Ka4h~!wxD-{`#9hBvD)^IgJxHmilo^>$XK=W~(u=TvBk*N!vz=CNKCQBHP;b2?=G(M)Y2^ZKN_0y?s zzX8J-nJl|OYytM!SPm>|%X=LBCWPZQU?79TaRn&w#piF~xw4MifO#ga0IK8RZ1W%C sx%N)nqqqX>ow!H;1)nNaDwKHr21F6GhcS~%simc0n~(?Lk>rK|Hz6+| z5D4v5ckEoX4i%`-Qrqs;LB~JAXl)gSoq=?Q4?M~C1|DR31}C#UgKe0Zc}a8F`n!Mh&73!MU-pG!IqxWPo>9o|5ybE4{FlF4^AmV=;a54u0Ma%$(w4q2U@#o3F1&aAc+Nle{ei<<6$40hIv)uJ@9`?G zeC^<+P8XyOC!}`%2Q&p=t=K?K#>ToA-U+FVN6OqgUm^V1l|zI_svE=e$Or5~|$&a=Qvd;qa-Ka$-8%jSeIY zU7wc(|JUG^I+jaH@>5OcYq% z9TQcA$8vMW*XkqW4n8UMoR4#!f}q&iR$!|EztY@+L{t0k>LcV1O66Qqaa&(u6IFs= zZfeK!g*H+B3%G*$a&K6{;zDflma+$4fZyJ(6dubL%>Ve?#7DQVq_vg` zk9dPgeG_N+z{9G*?{3)ZHw*qRa$^=tmn_WiiE}0-8jR}4sM6ao!n0gb5rZA!>(hlz zOw8cV<_=bP2xkowss^ZZVvWR6dDciw8ps<#stnJcNZUMODG%`SZ&>rb@It*VC7d&q*PBvTdART`h}G+Yno2}ngs*QhCGx)c4-wJOSs#EUniYjmFDr+$|sMg9C5_OfL z$stx7K6bh#S@DKtRo2vflIlKD&#hMsU$0-Mb3RhnbV5^WrL>My)R?VkEs>Jp&*&o* z4@$ma4?+~OsC1&l;tVRW=A^Gku=5h Y58L4`DI)AW$N&HU07*qoM6N<$f=98fs{jB1 literal 0 HcmV?d00001 diff --git a/ui/icon-harddrive.png b/ui/icon-harddrive.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b03eedd5084ac8f7e8baa5f3bb37ab051226c5 GIT binary patch literal 1443 zcmV;U1zh@xP)uz9 zJ30fd{#&X+w32z)J^sPm1Gs!Qi9tN%RbWLgxbRh&t}nuL=!S3cxsd3x;17Ukl8Sx4=k#svYk|ymPudBT4TP(RdiE6Z*(3 zG*kb)R`kO&R6Eg66vcP4|MZ=eE6J}%470-x?e6bU@zdXL1l_Jf)Fa;0;&OeEbpTFq zms%Wd#4uXys2H3@+2y}dQhxR^)Cc;Z@isuuJ1OK$dgbRHr`=Ty&QgzfPqV|bCHnw& zm+QrEx!nc5$%@j+Ih0&@mJ+qE5v)}NCrB^$$eHxizNWOhrIT~iBi_?2xTUNEm;|ZK zBuI#%WqE9#c!*8so~A_UZG@3`fVDYa?2$9+Rd^fI?rt7`NIl{`SwU*eIsj`EBg8z0 z)?~%zo*O7WvyhUF<8vt67lzVZ4>f0}RJiL<)*7bI((QiJbAx)sdonh0DC+pRb5)xbln8l1!XCvL&qIfUlD9j{84+K`s53JvV;0R8gH!S43c-KF%&9gg;m$PX}i14}@n;5dLgJ`=t}KmpCUoz|i<5$Q7GrV zD0yb5sOEjNmpCUoK>z4@+h1B6G;ARqiNFox=}cC5Lr z#D}+)s2Mvzdx>+h1N00{AYXKcPvdZRKZTr=&BzXL{ABd*@%|{51IJE|-jN-kD;(K) xq&ISx{0qKi?i}qqRV+I|p$b)~LKWqs{s*q+@k@ogRMG$d002ovPDHLkV1jwUwH^Qf literal 0 HcmV?d00001 diff --git a/ui/icon-help.png b/ui/icon-help.png new file mode 100644 index 0000000000000000000000000000000000000000..c18cf863c1051dc93862b0f62aff2ed14e1b622a GIT binary patch literal 1590 zcmV-62Fdw}P)i3Z;PKP)-&B5kcf2(Zys3k_D~wd~Rv!5g8N8=~>>YTM8!a*RQZG z;Yq&q_V;|>`#$ggeM(Wg+SRTY>zo98d1J1R3P;_SPds$>=8w2u6g+Uc^M;%&x%VC9 zapw-&rP=rFz1aiy%UJ`q52<48q5f^18gU&h9CKggje5+5qi&pd=tjYa3k45c$RBng zZ^((f`%dHzI*@bEf$RYXvhUiF)o;h~KAS1C*H+5ybtdgNc;SmErXAayRn>RyZ6&~xb#O(H6v${(BcsCzZnq^!coULtnZRx|d>In_>9Lowym7Z9 zSorMzS>$%A@x!DM{VF%qo+T`J*RZ<20o&pVrmTx7``Ln1VmZ=U^+CaNnv7sI7+fq- z2od`_=V`q84h77Aco9gRrB!@0s77kDE+9O+kr*(7Rj;q51)o3ZOrm{AiRB1Zf3B?K zW3db=t;WFcA_EeH1}{sbNe318FZ)pR9iodL5i2lYkmea?j>+)XM%&T)gxY@ zLrk^iOyK3?8;R-XJXfp%x5MDe_{}+=(l7(}(yE_mnR8m<#Iwbg)6I%JsL z6tCoKH0pzgzo|t`mG)WSFEH$Mg$2Gvk54;gm|I-&gI`(Oz}LM>u!U;6@QA*l zaRmMX!%i<__%|vs@G>3Dk{jiCYFgNG z0)O5m16!yH4Zc!?!`Ib87#MW87)_O86VA51J`>(*ZDRwU`QX)|!&j(rs9YU*36b`I z(Ma5C#QD1_KLeAxd9bQqFoVCYMpT(9@Fva~u=g>V=Ua^UqQ^fryPn&@637|BA1YVl zV3{g#jFR4l;Y|uzA}Pev_BYQQ_)knoxG7}>A62G8#$T754Mxr-K^ij`z+PL%#;Txk-t%UG&Hz60s=^R- zn@1WmM({!eA^xT+B=|_aVtIdwf_yOe0N8Q*z)JJ;ScbY*k2+)M==rUD(S%g9hCwN;;R&hyCDnd%^%<^5mBNL zP>dzP-ej@4pB8+`QK|gr&0mqpprNHJTOumAu607*qoM6N<$f@oC*U;qFB literal 0 HcmV?d00001 diff --git a/ui/icon-info.png b/ui/icon-info.png new file mode 100644 index 0000000000000000000000000000000000000000..75ffe11e0e80ad0abda0b0c6be6bf4fbec510a10 GIT binary patch literal 1367 zcmV-d1*rOoP)e~1+`))7_;wTGnkk_g98p=tV&f=wH13HFy2=%nPJAMqM#@$Uo}43 zQ3uZ(tRDDFa~=JDZ{GLj`yPf}>eJEtKhxS4$U2OYs6} zEuJS=i*>~PA|26Ms3ShkyGN#D|A$oRyn^y&`kKN(|5mYdd|JLlLHQyDW%rMvRDTR5 z3nY}xlTdt*fFd0Mg>wWH-hB)OKR*Wf?9pEZcaFZ4-z8!r4ql{%*DH zu}ndj@F1T#g8Vy2kT>n4a<#r28Cq9#MBo*MCvPiO=sm>>4Lra@uGR;+w+}(4Ik3qz zzIV?RzS2m4qgbI|@C~0c#RwdNY|{IWRPFr{1Bl|693ZOF=x?bs`r-WG4?sF`0NH9U zNX9+ts=n3Nc;l}!`c;vG_kv{13t1y>4OR`W@B#l_#NkIhkU8RkjA2&;61>7ly~B0S z%e8LEQ=1`g+zfdd7YBGZWDL1Z(}q0nbAr#+!=*|ijdOu7(%3-#hyd#3Mc^6VAs~O; z5+3|5H>3}_A#Kp*lMLH0hb>UK;=jRZ<)=MR^Tz=M=cfl=kf~ka!b94C3sUd82TfugzW`TQv-OgpV&7aHgGEKw+T2=321%S}$B%c7zCg zqPK%|+!Z#wxGx|8qHagcnFT7A=`EDgCP!_9&zBr<7bgSHrwshCg*$wY15&yi&NCgW zWripDyd0Gp56DJsARV!ROzlR3ztYVJ*dejg_7?l<8>lZ(;d92UkUg*qlKx$g^zA@a z?+!?Y%t-LbopwlWw|>w51s0EoQGZeld~hUY#XEVJq%0$tlk z@Ja19NKje#*ah^Y6SX~%^gav`$mrZcf=_H?1T0Tk1xocKh1%O>^@IwfcWfcSC#tNF zptPJ~T6pz81&ZehKWbx^*}WYikk+w@2H$Fh%SsDiY;AVQJn2R4DqkwlzKIMU-(o&t z-9p7WVgt1$W(qbqscoBx@D_+`Hal4bispzZ)P9~R*x-m&8%Xf+%@&AlG%v9V6wDFd zq7EZW!G;L5ZXm(OHJKTKM)of-OI}5tq?m#Yj!3zV3J-z?^LwlU%rPaO^?A6Df$l)T z2Ior4Iug9F0rz9o_BYrCFbtE=_!_ywGe;#;u)#^Wxy~6rrojZldVCN&Yh+q)R_?U# zITv{5sALK@M4)+%Gki=Pek!cpFT=t~&TZcc&GQ*0Lp#n)w>m1?nXP4@6S=a&ri3#6loMzaLy}+JlwhgoLNsVieq}&Z3zRm=K z8vHtjl5F+CB95o!1?SP;GYX>@E>@&k!Fji-ys$E zIcLSaj#GZ%@x_?h{Q@k~N$Ihbi+b#1Dc$y`;ltx6G4-aY=sKMJuIJoEI(K3cyX+q% zx7#|C+H8L&s%-wyVZ`!xY@=y4w!zdVtlR(a{PsCd5j7tQg(|B^pmd}%f_%OAA{W8< Z&A)|h%;wC=< literal 0 HcmV?d00001 diff --git a/ui/icon-install.png b/ui/icon-install.png new file mode 100644 index 0000000000000000000000000000000000000000..25bd6136ea24fdc3dc8bd42f91a10c17b0d87f2b GIT binary patch literal 1832 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 JPDHLkV1l#&s6zk% literal 0 HcmV?d00001 diff --git a/ui/icon-mouse.png b/ui/icon-mouse.png new file mode 100644 index 0000000000000000000000000000000000000000..75d017821699e9a8e086427575e1c8bca85024c5 GIT binary patch literal 1466 zcmV;r1x5OaP)VUcpdgKo^SE zt-mn-lCp1uN5ltOl0Xhs!MBECg+YKrdI9bk1c20T_;w5mLeaSnMdG?pG@$z-vRdgZ zFf1Qb4Zc`_4-5i~r-LU2zDpBGibQYgLXpz!0tZ*k%)p2$@P;r{>ccRV3H-y6yHIrL zCg{2^PwNJ*%Sec`5%J1>KSD^uaA-;_LI}?(d~p~G4Pls+gV&$E2+jrs4mTU$_+>9- zlPDO9$gVUD$6t~5hJ&ke25%JLS%Uz#9-Jpc}>CQ(}r4QqO?WEKcTK{ph+ zBlk=&9O_R9G@|V}6EFyHR1Q8N@XHujs2Z?3E0bM!`Zw{{mX#wdW2TeEPq=(UbtDbVZj21QK-lUKPzCc zIia}3lI*&!;p_sE#J)^pG92QirZrp~3&z`1PK9q7=?R2wEAMZuzMT$D6 zRW1;QzvdMf9*6fV6|k{zbE5BV+YW1kBiU~sNnpwtfXC#{+Qh&df9jT33(Mita@5 zif;hh6;O8uG*tt!?BIP0z-Qs-z;UP8)AI8k;I2-}HC%ovb8jpig8SMaCYgD2ntx1G3_8_F!v zxOxKVyXV}Jm;&xd2k(#tPtkK!O7K9K{H<8tLiMb`?VUGs0Zy95w%jIc zEidO!0K+h%?9}_XJusOBFaKZQK$?AV($s9uEBtH-Tfjw>w@)VT^LfErQ@~q*G&RS` zQeOl1Fhke^g@onbrRsVfODN&Hf;1_Fp1R{=Z3+Z-O*650j8cmMM*1zX(t4@gIZ UJbi>d{{R3007*qoM6N<$f^0>-egFUf literal 0 HcmV?d00001 diff --git a/ui/icon-package.png b/ui/icon-package.png new file mode 100644 index 0000000000000000000000000000000000000000..d76870660e3b483e9e52bef9f92cac4e77363404 GIT binary patch literal 934 zcmV;X16lluP)ps0*D_6 zjU5Ax9R-aY0gZNnMms?x9iWkR(8wXs@Ilb<0npHX(9k~6&|c8s9?;-!(7-Oxz)q|M z+KLFYcB%)+_7suzV!H&Ofi|oywHDL^)7AEuCXLw9pRF^rKW*lYEtUmh-?MfYX{d9%U2OBxkqHr5PEC`=fq>Xlf%{a;$ z@dx6lr-*+*GVJTYD&K4zgEV6%@>wk8RQc#JV>5J2{as+mVATa);hAU_JU9iW*~kq+C^jNqV!b^zHQD($vKaY6dSjTX%HcxuGwuD4*;>scorxND&upx&CK z6yI)H+f4pl`;HRty`FO0OrC$A?e>(#8U8y40d(JPoulNUp{h0E-?=nr>9#?DX1v`_ zN6AHlRcpe(m!xfR#-d4pW*lY2;V8wX1FUVkasHi4FAi9I8ZZc;bCgbRx9l|uR_(T5 z(l(ba(ND0@ZxBHDmr~Yth)WA=;wU~Kh}+U7`Ure|h5>YbDWz=>)=Kj=X~cpp&iL4C z5I}WJblX-9;On)-8S}Rc0;nFPOx!OKUsPBVpWU`7&e0AK86ic}HSsGPCBw(X9i+?L zBnABdL!>i2L<%NrQX}3kh%2-`UnM`^OFFazxZ{pH?vSmR|MzUxurh9gYybcN07*qo IM6N<$f}a$!KmY&$ literal 0 HcmV?d00001 diff --git a/ui/icon-printer.png b/ui/icon-printer.png new file mode 100644 index 0000000000000000000000000000000000000000..d3cc846b55a8e8ff5c8c6628e4463bac7da02176 GIT binary patch literal 464 zcmV;>0WbcEP)zJ?EQgY`9p$i+5-4i1j2EtA$da%Tq@ zjhZlM9DD{R6JvY>h#?VdOA#dT5q?vIP1=}pFBH$8{2S>xUv8TQ&@>8#@_$n4W4jz8 zD2ITI?u78mA-FWaWB?@BlLk<*Jfad{wE#!WXU%CLsxpA{Gfz8eKBWgtFSZDP)0)F+ z5C8=DQ);d#S+4MHS74cHxx%-cdh%O(8JD-GJ+3Fer5C=W8(#w01Q4-3Z``31^w92l zIK60O3s5@|2nL@xc=^Kq;|Q;B-RuE+!_j#8y@vtX9WPq|+ZDLHy+`md#Cxxgv#Xoz z0qlelz$SnoKx|eHuw_(`%jLir!`gLMNf~3~nbGXjfOTCTUr;rGF$P`VnC}Uw`bNek zCr~tZ=lcw(0@$)1VgiH&Kq8=O9b#5h0je=OBm(l>^b6d?Z&d{-%$T3&M)I!`1#a-@ zgUbfUbHm##nMEy4Q~@+uS%trtxMYM^36btLp-?DVrt%GG5OkrMwuG_(0000F_EY`9lxqNoj}#eI4XaCfXep|P;q=86~|*J ze|Hb%Z|}ihil0VNydOc) zUIazE11NmbkHVdPIClEr*bbv$s}}{Ey|8bDU|;WnZLJ5k)oxfmr6;6rY2*E}Hx?vRnhxLypU+$XMY z_MvF47lo@K6t0BeSSHznf~9UaR(jyr3JdOsQLr9@ZJviM&cQmv!8*;t@;I6KzXf1^ z%pji#SGb=S*95rkJ`vv(3E1C0qSc?-#9yb?fc(yaZs4bGr4WDSw*#c{8d2%HF?^ zvb`a+x3_1^lFdG;_etyM)!XKHsrRjMPPg7P)uC`-3qbC^@bZ$rZ)s`Cn51pQ$wL72 z>aPLJu)6i8haG9|=g#=G0Yvx7 z<$mt83V_mmGWQ8ULqkKxEZzu9bDvBey?P2D%zf)Lt6OjSr9I943;-$j$=oMnv#zc# zV-~N6lXG7H(5tu3a?;$lP6u@BlK|J7xb8mPx`(51?hV4Z6G16iT-yV5 zY?8@CdY_8lkEYHBvTav;;2^Vpu?qzYov_b$!am2-*0GUiaxRElcex9e85a4E0yNFP zGB8j1>ExlkKh+M?43p-*DuB{`wVTIvAU_+FH%~Nm^X&G^&IV!Ys@*)RU5c|ID4h-0 zCJ%LA4?yYu(G72&XX-akp>Xp!MDYTE`pwgsx_K6qTQ}W(4FKiQrf~mN_PC#`2Jq$X zN50Jc#hbgY3c&L`g25n7j^m^h534{RKvRCF`2BvG9UUDs#r5CT)+S|ZYb#B0vo<$3 z(`;&Ll2Tk+UayyCV`C#t`97$xucs-F*Bb#S#mfP-#LEG+#LEGE3h`@)tLo0BQyC z9*^gurl#grj#~KremBdqCk(?}W*dOVoZGRS$x~{>fszC__p@X1|e9K z{(`L4Sn*PT(x|-YgNs_Y0Y0!O1Ne@1ujJ?=7Fx57>_>2g8`}zcWqJ`Z{vl zK*Mk27;x^)pvrLrmnSA^jf68ub1=;C-kIUZ;8{6)XLLDk;1csL{eWeZV`Y%!xPfF~ zmzLtnaRZBQm`~{k>|V|w$(aJD(BcmLfTBl6fg;BZv`o?($t$C4iPPu&0=Xjbr0!hCR`E@ww*c(R}9+A)VV)>kcReoA5xF z$B$gI1}wS`lWmT~`O2daoTStp*Pa#+{Iv-@K$`NSmv@aorGaZIkbSKL{>}#-z)kqs z<_S@GJffl0xrPGSM!51}24oF3b$K)*`|9KgbJ!mq*pD1R2Ha~X<#@^`N|Y#3qLjb> Y1M5K%T`gNvv;Y7A07*qoM6N<$f-{zqrT_o{ literal 0 HcmV?d00001 diff --git a/ui/icon-scan.png b/ui/icon-scan.png new file mode 100644 index 0000000000000000000000000000000000000000..7e38cb69b526b6bba6da1309d95f1e1693c56008 GIT binary patch literal 891 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 M07*qoM6N<$f^Gn+d;kCd literal 0 HcmV?d00001 diff --git a/ui/icon-speaker.png b/ui/icon-speaker.png new file mode 100644 index 0000000000000000000000000000000000000000..f06db17d40e5d959136ddc46cc6b04556f148814 GIT binary patch literal 1241 zcmV;~1Sb25P)ozk& zyE&NI%46Pc$IA7+_KMwgOZrWoKbw3$*Y~~md7mSQeDcXBA7NPc$#Yg$XMk9V(NOx` ztotOe?oJ?9S~UCgACX#pjCFN_)g@h^VjL7I4$i1J=q}@6Es={ON@rwKVzP1U?gQuHK(N5wc##4FwJ-X4Y3Y7RUJ@O=GR0`RCT z@Sp2y)@vyJ7!N-$a2za-<0%DR@Qf?AT%ECE;Nzv@pl-?GKl_qiM{4PTM0ivP-s0$h zRPe>Vh+pZA+}m{djz>fwwv~g8O9sDZPwg6#qAv*H=LI^z+=dq@`e}5v(iin8eNo_R z^Od_@A`;gs0SdAXUs-7=Ahr4*aqy@Ryt(Zd;GVqF7YQW7D}7NY_C@C29h|)^vYaZj zj1P}!v@|OQKQC|$Osz*B5LnkRuGr8q#t7k+i#4Jej!j|&LKS`RSk~}KE&XjOcvJ}9 zWM33O@P+13pwJS6^$yM}Ch_L))7br>4#U=rLAULwD&4lTYGnJ)DoCt!@NohAQ83z% zKmxoU!Sl7Dee8ifpyZd5H*)9wVC?TC0S-=QEUgE)e7wxTxuP=@ zf8r!cdZy1NZRRliiw?ZZ1TgTD1#InLu(gAtZh%RGU#RDp;C1vGO_K0Ohp@|N6v|{1 zK=6hZHxPUKpkUv%K%psk4=3^Bsfj;u|3c}|+)a$cH}VOzxS@GL0M!%pfCne=ynUn# zC$Ob=Cb2i-t5Y@s1mDcM?h6oK^i4lw4Bi$BJj;Z}Z~_~D`^SqBxGtXn>w+fMxhSx= z57yM(h`&aK^@`{AEup~c=cmqNPUUgg1e&bQcqIxv{&l|>C-Cymw{8jrUhA5?i1`O* zWD{t#I-!wqNEH}begcdmN#M!4LFr5A+*Ef?m(XFx0f#MZ37fbVyNL@e(l@ax4E^#6 zSlXb$(zte=hTspG?VzZ=VHIs9ETMjEE8)vlEAc;? zIRt;mWKY@5z4XIGFYf7Y>Pc>?AF7%A_>*1l;Upvpm~2pQvOQEgT^>qqr&S!BBC-_? zrQe@Upx$VMdSeUzLgP$vp}B~^(3ErVfvi_b1b@)5C?M%d>5qoWhhtM1fne4z_USJ5 z2>zgf&E!%)`_AC(73}8a;M1(a-ON1~TmMt7GH00000NkvXXu0mjf DK-N@D literal 0 HcmV?d00001 diff --git a/ui/icon-usb.png b/ui/icon-usb.png new file mode 100644 index 0000000000000000000000000000000000000000..17bd6680692c46c98afef558ccc260323c9beccf GIT binary patch literal 1123 zcmV-p1f2VcP)RtpJcievjj#aE(?Ysp?y55CNPakR*uBCRh z^A@h99^IWz38qC|U8%#B<@#NuC9ba21>-AqKw9JqNqq+{FYjn`fy>J~aOob__Dc&) zCaU{W$r?;0YA{Jug-@|!l_y9oVB>bIq|yQs({Vu)@d^=A3nbxY%JQ=pOvfrPeyFl~ z7LcYaKa-oj7=5m`nzAofZI_bUS$lH(4|`&J!=9+xTFpvRmY+#Yk6|rs5nWi?YTp7= z$=a|zQ9F=UgQOg3%9S;xd1=b>v(cr} z6KonA7Bvzn!Em_LzFTNAQGKR#YfMBdPnG6L%26TZR?i#>mtZ8kNrc+XM6Ajx-5M98 zL6RX$uvJd26r( z3t+}#Ws|fTqY-8E7_k~SWu3^3pq~SiFXyA^%o%iC;J#7;J|%pB!bfNc6cXk@ z_N;VHG)&~ngVC4!%jnI1fj?q&+>H6z(?fplhr^VGYW!;Ub2snYf!Fa2Hf?Ik=*#_W z^yP<;+A#Y$JMOcXa?>e*{_jW>6nM6X{JVz5%mOxTSj-UhEo8K_0Oq4~ z`pv%i%#Yak`GpN4q%{og%$f7^8}JFyy7m^p^t#tU6w(sZT;{DF_xjBq_Zsy4v7jUvXQZsrdd;5q5ZX>ndLV6byS6+aLYvL;H_3&@&UCdW{ p7qh8%GS6^raPpcke**e%`~$vAK@Z=Dyo3M%002ovPDHLkV1kP&9W4L= literal 0 HcmV?d00001 diff --git a/ui/icon-warning.png b/ui/icon-warning.png new file mode 100644 index 0000000000000000000000000000000000000000..2baa8229a75b9dde7fbd899489a4272e18602123 GIT binary patch literal 1022 zcmVsQ5$x zW#@d&y`>#2>+S7bNAJx2Cf}F!@ncY;`|8103X|?7ehNxtm6Gg|8~9td@H?hR z2k}dkWFNVOuS!VvA@M^{3TKq$x)J#DEieti^R0!SBuq*E!+h{xCRSr~IFCZ1fP6lW z;T>80dZK-STcAI}AiQ+~lD)Lhsh=6!fT5wGs=&a&0L~s?v*1lYvKLzeZ?dgQ@aqeW z%uk=Jwc!T`2W^2|E{B=%Rkhy2jh6i2Q<9Zx&HK#6>MFc-`j)`u$@`q%!zqBQxNGo` z;isG)>*dMzJK+2K`|)JA5{q#kHw6=dDy^f59N@ zms~&zcD&x2y!v_D9q`#~2D73zytY0Q_9z`&Qh1o*oD$Z~cYu)$vw~OQGnotq2U3pU zx*||y8U`;c4ZK0PlKgBv_)7D+v<;t5r!g{=s0**F67(FVNx10(O7K_R!du;0NTRQ= z52;iNyLWDP1+V8Mn)@#(itHh4UpFG~_>MHM}mrg@0hMuI9jltWc7k zYy{rwo{>k8OeT>?B(Q&X)HS@GllZDB-whD-K%?+h_w9-y9*^67dQWFV@cLF!q|Yo4 zewwUPg8k`5;N&~&@&0pL@ZO>O@%6iFJPD{GyMiww8$Ams!6v-GH!|!;`m?syY0Vu zf!BgUiO>uriMSR}lD@H+u^BtM5wTbd(P-3ecXv0&j&AS-uPYKo`ntQ*FVUD1?BB)A zeCe$Y8`^4DR~I@vJ0aif@C>gl0fXMe6y4?w|1!BpN%l=M9_$B)HX$8<5UK53@%FQu ztc~IgzBpH9(9;%UZ2=iN*osY~Yn=M+@Rh;{9dw%g3x0;z_AP|YI|*F$GrTSfTyPj6 sHsVU6h42t7haDeskRU;V1R)LNKaKyUXPWM(cmMzZ07*qoM6N<$g5(hK{Qv*} literal 0 HcmV?d00001 diff --git a/ui/icon-wifi.png b/ui/icon-wifi.png new file mode 100644 index 0000000000000000000000000000000000000000..2526e57e5220f5950c7a293492b30c9d99eb9b88 GIT binary patch literal 1114 zcmV-g1f~0lP)f92fm3j zyH-UAppmnQmnE7QLX3$B8t8+P$|W;hwTCCf{T-XU@#$JM)_XpsK2>s;Vk0)${_rPkxa;k1*Sd2s;Te{RI+w z31T*l2)ii^F^eSo2>lshb^;RW68|)jKk9z!uVW_xA(@w>|gE+#{m?t_^ATPbjqbt?1*BJ6OJ!+n48 zvx?u3$064l#WOV)na*;5?(WMsMAbg5owvn2HFCTMdn}OcSD% zfy-5s6Mem%wm?jKOWG;BJ0ZRNHE-PZ9dCTCk2h>To3v<)KJiVADe*MEZGQFG9cl1V zyIVn+YNjV6Y`*E0GYj>*e&98GE^^@X8*ULk4D-}AQ z>vms=%l5CPO$6x&5VL;@9~qllx5K9cRjUX%NVTf*b=%MC2(yBv1qq7*NZ8Sp2X$Sk zedDKC#lfBFu6=zlD%M{4LenpR(tb)pnD*sPg6s?jfLRMZwp;9Y{33Kgy*K z#yH$}%c9-z-YBnqE08EMNL+S!e$3kWOozQ0cw8{kP_^t5I0OL}TZm)iPceP-d? z&P4~F@P*6t&aZNaH3e@r#F~UR8e&bu7YcD(z-NT$U54+E^@=`lTZ!|UExzb;!lG?8 gPE}P^1=gni1Noq_w%af|(EtDd07*qoM6N<$g7@JT00000 literal 0 HcmV?d00001 diff --git a/ui/index.html b/ui/index.html index 6636d5f..bc1c08f 100644 --- a/ui/index.html +++ b/ui/index.html @@ -5,23 +5,20 @@ Driver Booster Pro -
- +
DRIVER BOOSTER PRO
-
+
System Protected
@@ -31,27 +28,19 @@
@@ -63,72 +52,35 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

Scan Your System

Detect outdated, missing, and faulty drivers. Keep your PC running at peak performance.

-
+
- + --
- + --
- + --
-
-
@@ -152,7 +104,7 @@
-

Installed Drivers

+

Installed Drivers

- +

Click Scan to detect your drivers