From db7c7971f5bf11616f9536a7505b0a27bbfab410 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 20 Feb 2018 15:42:13 +0100 Subject: [PATCH] [clients_icons] Fix icon display in roster and gc --- clients_icons/clients_icons.py | 248 +++++++++++++------------- clients_icons/icons/chatsecure.png | Bin 0 -> 959 bytes clients_icons/icons/conversations.png | Bin 0 -> 1867 bytes clients_icons/icons/dino.png | Bin 0 -> 1878 bytes clients_icons/icons/pixart.png | Bin 0 -> 2527 bytes 5 files changed, 128 insertions(+), 120 deletions(-) create mode 100644 clients_icons/icons/chatsecure.png create mode 100644 clients_icons/icons/conversations.png create mode 100644 clients_icons/icons/dino.png create mode 100644 clients_icons/icons/pixart.png diff --git a/clients_icons/clients_icons.py b/clients_icons/clients_icons.py index 7779b34..4819c76 100644 --- a/clients_icons/clients_icons.py +++ b/clients_icons/clients_icons.py @@ -13,11 +13,20 @@ from gajim.common import app import gajim.cell_renderer_image clients = { - 'http://gajim.org': ['gajim.png', 'Gajim'], - 'http://gajim.org/caps': ['gajim.png', 'Gajim'], + 'http://www.adium.im/': ['adium.png', 'Adium'], + 'http://www.adiumx.com/caps': ['adium.png', 'Adium'], + 'http://www.adiumx.com': ['adium.png', 'Adium'], + 'http://aqq.eu/': ['aqq.png', 'Aqq'], + 'http://www.asterisk.org/xmpp/client/caps': ['asterisk.png', 'Asterisk'], + 'http://ayttm.souceforge.net/caps': ['ayttm.png', 'Ayttm'], + 'http://www.barobin.com/caps': ['bayanicq.png', 'Bayanicq'], + 'http://bitlbee.org/xmpp/caps': ['bitlbee.png', 'Bitlbee'], + 'http://simpleapps.ru/caps#blacksmith': ['bot.png', 'Blacksmith'], + 'http://blacksmith-2.googlecode.com/svn/': ['bot.png', 'Blacksmith-2'], + 'http://jabber.pdg.pl/caps': ['bombus-klub.png', 'Bombus-klub'], + 'http://klub54.wen.ru': ['bombus-klub.png', 'Bombus-klub'], 'http://bombus-im.org/java': ['bombus.png', 'Bombus'], 'http://bombusmod.net.ru/caps': ['bombusmod.png', 'Bombusmod'], - 'http://psi-dev.googlecode.com/caps': ['psiplus.png', 'Psi+'], 'http://bombusng-md.googlecode.com': ['bombusng.png', 'Bombus-NG'], 'http://bombus-im.org/ng': ['bombusng.png', 'Bombus-NG'], 'http://voffk.org.ru/bombus': ['bombusplus.png', 'Bombus+'], @@ -26,130 +35,129 @@ clients = { 'http://bombusmod.net.ru': ['bombusmod.png', 'Bombusmod'], 'http://ex-im.name/caps': ['bombusmod.png', 'Bombusmod'], 'http://bombusmod.eu,http://bombus.pl': ['bombuspl.png', 'Bombusmod'], - 'http://mcabber.com/caps': ['mcabber.png', 'MCabber'], - 'http://miranda-im.org/caps': ['miranda.png', 'Miranda'], - 'http://www.asterisk.org/xmpp/client/caps': ['asterisk.png', 'Asterisk'], - 'http://www.google.com/xmpp/client/caps': ['talkonaut.png', 'Talkonaut'], - 'http://talkgadget.google.com/client/caps': ['google.png', 'GTalk'], - 'http://oneteam.im/caps': ['oneteamiphone.png', 'OneTeam'], - 'http://tkabber.jabber.ru/': ['tkabber.png', 'Tkabber'], - 'http://pidgin.im/': ['pidgin.png', 'Pidgin'], - 'http://pidgin.im/caps': ['pidgin.png', 'Pidgin'], - 'http://qutim.org': ['qutim.png', 'QutIM'], - 'http://qutim.org/': ['qutim.png', 'QutIM'], + 'ChatSecure': ['chatsecure.png', 'ChatSecure'], + 'http://coccinella.sourceforge.net/protocol/caps': \ + ['coccinella.png', 'Coccinella'], + 'http://conversations.im': ['conversations.png', 'Conversations'], + 'http://digsby.com/caps': ['digsby.png', 'Digsby'], + 'https://dino.im': ['dino.png', 'Dino'], + 'http://emess.eqx.su/caps': ['emess.png', 'Emess'], + 'http://live.gnome.org/empathy/caps': \ + ['telepathy.freedesktop.org.png', 'Empathy'], + 'http://eqo.com/': ['libpurple.png', 'Eqo'], 'http://exodus.jabberstudio.org/caps': ['exodus.png', 'Exodus'], - 'http://bitlbee.org/xmpp/caps': ['bitlbee.png', 'Bitlbee'], - 'http://coccinella.sourceforge.net/protocol/caps': ['coccinella.png', 'Coccinella'], - 'http://mcabber.lilotux.net/caps': ['mcabber.png', 'MCabber'], - 'http://dev.jabbim.cz/jabbim/caps': ['jabbim.png', 'Jabbim'], - 'http://palringo.com/caps': ['palringo.png', 'Palringo'], - 'http://vacuum-im.googlecode.com': ['vacuum.png', 'Vacuum'], - 'http://code.google.com/p/vacuum-im/': ['vacuum.png', 'Vacuum'], - 'http://jajc.jrudevels.org/caps': ['jajc.png', 'JAJC'], - 'http://gaim.sf.net/caps': ['gaim.png', 'Gaim'], - 'http://mchat.mgslab.com/': ['mchat.png', 'Mchat'], - 'http://online.yandex.ru/caps': ['yaonline.png', 'Yaonline'], - 'http://psi-im.org/caps': ['psi.png', 'Psi'], - 'http://jimm.net.ru/caps': ['jimm-aspro.png', 'Jimm'], - 'http://jabga.ru': ['fin.png', 'Fin jabber'], - 'http://bluendo.com/protocol/caps': ['lampiro.png', 'Lampiro'], - 'nimbuzz:caps': ['nimbuzz.png', 'Nimbuzz'], - 'http://nimbuzz.com/caps': ['nimbuzz.png', 'Nimbuzz'], - 'http://isida.googlecode.com': ['isida-bot.png', 'Isida'], - 'http://isida-bot.com': ['isida-bot.png', 'Isida'], - 'http://apps.radio-t.com/caps': ['radio-t.png', 'Radio-t'], - 'http://pda.qip.ru/caps': ['qippda.png', 'Qip-PDA'], - 'http://kopete.kde.org/jabber/caps': ['kopete.png', 'Kopete'], - 'http://www.apple.com/ichat/caps': ['ichat.png', 'IChat'], - 'http://pjc.googlecode.com/caps': ['jubo.png', 'Jubo'], - 'talk.google.com': ['talk.google.com.png', 'GTalk'], - 'http://www.android.com/gtalk/client/caps': ['talk.google.com.png', 'GTalk'], - 'http://swift.im': ['swift.png', 'Swift'], 'http://fatal-bot.spb.ru/caps': ['bot.png', 'Fatal-bot'], 'http://svn.posix.ru/fatal-bot/trunk': ['bot.png', 'Fatal-bot'], - 'http://storm-bot.googlecode.com/svn/trunk': ['bot.png', 'Storm-bot'], + 'http://isida.googlecode.com': ['isida-bot.png', 'Isida'], + 'http://isida-bot.com': ['isida-bot.png', 'Isida'], + 'facebook.com': ['facebook.png', 'Facebook'], + 'http://jabga.ru': ['fin.png', 'Fin jabber'], + 'http://chat.freize.org/caps': ['freize.png', 'Freize'], + 'http://gabber.sourceforge.net': ['gabber.png', 'Gabber'], + 'http://gaim.sf.net/caps': ['gaim.png', 'Gaim'], + 'http://gajim.org': ['gajim.png', 'Gajim'], + 'http://gajim.org/caps': ['gajim.png', 'Gajim'], + 'http://glu.net/': ['glu.png', 'Glu'], + 'http://mail.google.com/xmpp/client/caps': ['google.com.png', 'GMail'], + 'http://www.android.com/gtalk/client/caps': \ + ['talk.google.com.png', 'GTalk'], + 'talk.google.com': ['talk.google.com.png', 'GTalk'], + 'http://talkgadget.google.com/client/caps': ['google.png', 'GTalk'], 'http://talk.google.com/xmpp/bot/caps': ['google.png', 'GTalk'], + 'http://aspro.users.ru/historian-bot/': ['bot.png', 'Historian-bot'], + 'http://www.apple.com/ichat/caps': ['ichat.png', 'IChat'], + 'http://instantbird.com/': ['instantbird.png', 'Instantbird'], + 'http://j-tmb.ru/caps': ['bot.png', 'J-tmb'], + 'http://jabbroid.akuz.de': ['android.png', 'Jabbroid'], + 'http://jabbroid.akuz.de/caps': ['android.png', 'Jabbroid'], + 'http://dev.jabbim.cz/jabbim/caps': ['jabbim.png', 'Jabbim'], 'http://jabbrik.ru/caps': ['bot.png', 'Jabbrik'], 'http://jabrvista.net.ru': ['bot.png', 'Jabvista'], - 'http://xu-6.jabbrik.ru/caps': ['bot.png', 'XU-6'], - 'http://jabber.pdg.pl/caps': ['bombus-klub.png', 'Bombus-klub'], - 'http://klub54.wen.ru': ['bombus-klub.png', 'Bombus-klub'], - 'http://aqq.eu/': ['aqq.png', 'Aqq'], + 'http://jajc.jrudevels.org/caps': ['jajc.png', 'JAJC'], + 'http://qabber.ru/jame-bot': ['bot.png', 'Jame-bot'], + 'https://www.jappix.com/': ['jappix.png', 'Jappix'], + 'http://japyt.googlecode.com': ['japyt.png', 'Japyt'], + 'http://jasmineicq.ru/caps': ['jasmine.png', 'Jasmine'], + 'http://jimm.net.ru/caps': ['jimm-aspro.png', 'Jimm'], + 'http://jitsi.org' :['jitsi.png', 'Jitsi'], + 'http://jtalk.ustyugov.net/caps': ['jtalk.png', 'Jtalk'], + 'http://pjc.googlecode.com/caps': ['jubo.png', 'Jubo'], + 'http://juick.com/caps': ['juick.png', 'Juick'], + 'http://kopete.kde.org/jabber/caps': ['kopete.png', 'Kopete'], + 'http://bluendo.com/protocol/caps': ['lampiro.png', 'Lampiro'], + 'libpurple': ['libpurple.png', 'Libpurple'], + 'http://lytgeygen.ru/caps': ['bot.png', 'Lytgeygen'], + 'http://agent.mail.ru/caps': ['mailruagent.png', 'Mailruagent'], + 'http://agent.mail.ru/': ['mailruagent.png', 'Mailruagent'], + 'http://tomclaw.com/mandarin_im/caps': ['mandarin.png', 'Mandarin'], + 'http://mcabber.lilotux.net/caps': ['mcabber.png', 'MCabber'], + 'http://mcabber.com/caps': ['mcabber.png', 'MCabber'], + 'http://mchat.mgslab.com/': ['mchat.png', 'Mchat'], + 'https://www.meebo.com/': ['meebo.png', 'Meebo'], + 'http://megafonvolga.ru/': ['megafon.png', 'Megafon'], + 'http://miranda-im.org/caps': ['miranda.png', 'Miranda'], + 'http://miranda-ng.org/caps' :['miranda_ng.png', 'Miranda NG'], + 'nimbuzz:caps': ['nimbuzz.png', 'Nimbuzz'], + 'http://nimbuzz.com/caps': ['nimbuzz.png', 'Nimbuzz'], + 'http://home.gna.org/': ['omnipresence.png', 'Omnipresence'], + 'http://oneteam.im/caps': ['oneteamiphone.png', 'OneTeam'], + 'http://www.process-one.net/en/solutions/oneteam_iphone/': \ + ['oneteamiphone.png', 'OneTeam-iphone'], + 'rss@isida-bot.com': ['osiris.png', 'Osiris'], + 'http://chat.ovi.com/caps': ['ovi-chat.png', 'Ovi-chat'], + 'http://opensource.palm.com/packages.html': ['palm.png', 'Palm'], + 'http://palringo.com/caps': ['palringo.png', 'Palringo'], + 'http://pandion.im/': ['pandion.png', 'Pandion'], + 'http://pidgin.im/': ['pidgin.png', 'Pidgin'], + 'http://pidgin.im/caps': ['pidgin.png', 'Pidgin'], + 'http://pigeon.vpro.ru/caps': ['pigeon.png', 'Pigeon'], + 'Pix-Art Messenger': ['pixart.png', 'Pix-Art Messenger'], + 'httр://sleekxmpp.com/ver/1.1.11': ['poezio.png', 'Poezio'], + 'http://psi-im.org/caps': ['psi.png', 'Psi'], + 'http://psi-dev.googlecode.com/caps': ['psiplus.png', 'Psi+'], + 'psto@psto.net': ['psto.png', 'Psto'], + 'http://pyaim': ['pyaim-t.png', 'PyAIM-t'], + 'http://pyicq': ['pyicq-t.png', 'PyICQ-t'], + 'http://spectrum.im/transport': ['pyicq-t.png', 'PyICQ-t'], + 'http://qq-im.com/caps': ['qq.png', 'QQ'], + 'http://qq.com/caps': ['qq.png', 'QQ'], 'http://2010.qip.ru/caps': ['qip.png', 'Qip'], 'http://qip.ru/caps': ['qip.png', 'Qip'], 'http://qip.ru/caps?QIP': ['qip.png', 'Qip'], - 'http://glu.net/': ['glu.png', 'Glu'], + 'http://pda.qip.ru/caps': ['qippda.png', 'Qip-PDA'], + 'http://qutim.org': ['qutim.png', 'QutIM'], + 'http://qutim.org/': ['qutim.png', 'QutIM'], + 'http://apps.radio-t.com/caps': ['radio-t.png', 'Radio-t'], 'Siemens': ['siejc.png', 'Siemens'], # Siemens Native Jabber Client - 'telepathy.': ['telepathy.freedesktop.org.png', 'Telepathy'], - 'http://live.gnome.org/empathy/caps': ['telepathy.freedesktop.org.png', 'Empathy'], - 'http://telepathy.freedesktop.org/caps': ['telepathy.freedesktop.org.png', 'Telepathy'], - 'http://www.adiumx.com/caps': ['adium.png', 'Adium'], - 'http://www.adiumx.com': ['adium.png', 'Adium'], - 'http://juick.com/caps': ['juick.png', 'Juick'], - 'vk.com': ['vkontakte.png', 'Vkontakte'], - 'facebook.com': ['facebook.png', 'Facebook'], - 'http://mail.google.com/xmpp/client/caps': ['google.com.png', 'GMail'], + 'http://sim-im.org/caps': ['sim.png', 'Sim'], + 'http://www.lonelycatgames.com/slick/caps': ['slick.png', 'Slick'], 'http://snapi-bot.googlecode.com/caps': ['bot.png', 'Snapi-bot'], - 'http://www.barobin.com/caps': ['bayanicq.png', 'Bayanicq'], - 'http://chat.ovi.com/caps': ['ovi-chat.png', 'Ovi-chat'], - 'http://trillian.im/caps': ['trillian.png', 'Trillian'], - 'http://pandion.im/': ['pandion.png', 'Pandion'], - 'http://agent.mail.ru/caps': ['mailruagent.png', 'Mailruagent'], - 'http://agent.mail.ru/': ['mailruagent.png', 'Mailruagent'], - 'http://digsby.com/caps': ['digsby.png', 'Digsby'], + 'http://www.igniterealtime.org/project/spark/caps': ['spark.png', 'Spark'], + 'http://spectrum.im/': ['spectrum.png', 'Spectrum'], + 'http://storm-bot.googlecode.com/svn/trunk': ['bot.png', 'Storm-bot'], + 'http://swift.im': ['swift.png', 'Swift'], 'http://jabber-net.ru/caps/talisman-bot': ['bot.png', 'Talisman-bot'], 'http://jabber-net.ru/talisman-bot/caps': ['bot.png', 'Talisman-bot'], - 'http://j-tmb.ru/caps': ['bot.png', 'J-tmb'], - 'http://simpleapps.ru/caps#blacksmith': ['bot.png', 'Blacksmith'], - 'http://blacksmith-2.googlecode.com/svn/': ['bot.png', 'Blacksmith-2'], - 'http://qabber.ru/jame-bot': ['bot.png', 'Jame-bot'], - 'http://chat.freize.org/caps': ['freize.png', 'Freize'], + 'http://www.google.com/xmpp/client/caps': ['talkonaut.png', 'Talkonaut'], + 'telepathy.': ['telepathy.freedesktop.org.png', 'Telepathy'], + 'http://telepathy.freedesktop.org/caps': \ + ['telepathy.freedesktop.org.png', 'Telepathy'], + 'http://tigase.org/messenger': ['tigase.png', 'Tigase'], + 'http://tkabber.jabber.ru/': ['tkabber.png', 'Tkabber'], + 'http://trillian.im/caps': ['trillian.png', 'Trillian'], + 'http://vacuum-im.googlecode.com': ['vacuum.png', 'Vacuum'], + 'http://code.google.com/p/vacuum-im/': ['vacuum.png', 'Vacuum'], + 'vk.com': ['vkontakte.png', 'Vkontakte'], 'http://pyvk-t.googlecode.com/caps': ['vkontakte.png', 'Vkontakte'], 'http://pyvk': ['vkontakte.png', 'Vkontakte'], - 'http://pyicq': ['pyicq-t.png', 'PyICQ-t'], - 'http://spectrum.im/transport': ['pyicq-t.png', 'PyICQ-t'], - 'http://pyaim': ['pyaim-t.png', 'PyAIM-t'], - 'http://jabbroid.akuz.de': ['android.png', 'Jabbroid'], - 'http://jabbroid.akuz.de/caps': ['android.png', 'Jabbroid'], 'http://witcher-team.ucoz.ru/': ['bot.png', 'Witcher'], - 'http://home.gna.org/': ['omnipresence.png', 'Omnipresence'], - 'http://ayttm.souceforge.net/caps': ['ayttm.png', 'Ayttm'], - 'http://www.process-one.net/en/solutions/oneteam_iphone/': \ - ['oneteamiphone.png', 'OneTeam-iphone'], - 'http://qq-im.com/caps': ['qq.png', 'QQ'], - 'http://qq.com/caps': ['qq.png', 'QQ'], - 'http://www.lonelycatgames.com/slick/caps': ['slick.png', 'Slick'], - 'http://sim-im.org/caps': ['sim.png', 'Sim'], - 'http://www.igniterealtime.org/project/spark/caps': ['spark.png', 'Spark'], - 'http://emess.eqx.su/caps': ['emess.png', 'Emess'], - 'https://www.jappix.com/': ['jappix.png', 'Jappix'], - 'http://japyt.googlecode.com': ['japyt.png', 'Japyt'], + 'http://online.yandex.ru/caps': ['yaonline.png', 'Yaonline'], + 'http://www.igniterealtime.org/projects/smack/': ['xabber.png', 'Xabber'], 'http://www.xfire.com/': ['xfire.png', 'Xfire'], 'http://www.xfire.com/caps': ['xfire.png', 'Xfire'], - 'http://lytgeygen.ru/caps': ['bot.png', 'Lytgeygen'], - 'http://aspro.users.ru/historian-bot/': ['bot.png', 'Historian-bot'], - 'http://pigeon.vpro.ru/caps': ['pigeon.png', 'Pigeon'], - 'http://jtalk.ustyugov.net/caps': ['jtalk.png', 'Jtalk'], - 'psto@psto.net': ['psto.png', 'Psto'], - 'http://jasmineicq.ru/caps': ['jasmine.png', 'Jasmine'], - 'http://tomclaw.com/mandarin_im/caps': ['mandarin.png', 'Mandarin'], - 'http://gabber.sourceforge.net': ['gabber.png', 'Gabber'], - 'http://www.igniterealtime.org/projects/smack/': ['xabber.png', 'Xabber'], - 'http://megafonvolga.ru/': ['megafon.png', 'Megafon'], - 'rss@isida-bot.com': ['osiris.png', 'Osiris'], - 'libpurple': ['libpurple.png', 'Libpurple'], - 'http://www.adium.im/': ['adium.png', 'Adium'], - 'http://eqo.com/': ['libpurple.png', 'Eqo'], - 'http://instantbird.com/': ['instantbird.png', 'Instantbird'], - 'https://www.meebo.com/': ['meebo.png', 'Meebo'], - 'http://opensource.palm.com/packages.html': ['palm.png', 'Palm'], - 'http://spectrum.im/': ['spectrum.png', 'Spectrum'], - 'http://tigase.org/messenger': ['tigase.png', 'Tigase'], - 'httр://sleekxmpp.com/ver/1.1.11': ['poezio.png', 'Poezio'], - 'http://jitsi.org' :['jitsi.png', 'Jitsi'], - 'http://miranda-ng.org/caps' :['miranda_ng.png', 'Miranda NG'], + 'http://xu-6.jabbrik.ru/caps': ['bot.png', 'XU-6'], } -libpurple_clients ={ +libpurple_clients = { 'adium': 'http://www.adium.im/', 'eqo': 'http://eqo.com/', 'finch': 'http://pidgin.im/', @@ -165,23 +173,24 @@ class ClientsIconsPlugin(GajimPlugin): @log_calls('ClientsIconsPlugin') def init(self): - self.description = _('Shows the client icons in the roster' - ' and in groupchats.\nFor icons in tooltip support, ' - 'you need to install Gajim r14117 or above.') + self.description = _('Shows client icons in roster' + ' and in groupchats.') self.pos_list = [_('after statusicon'), _('before avatar')] self.events_handlers = {'presence-received': (ged.POSTGUI, self.presence_received), 'gc-presence-received': - (ged.POSTGUI, self.gc_presence_received), } + (ged.POSTGUI, self.gc_presence_received), + } self.gui_extension_points = { 'groupchat_control': (self.connect_with_groupchat_control, self.disconnect_from_groupchat_control), 'roster_draw_contact': (self.connect_with_roster_draw_contact, self.disconnect_from_roster_draw_contact), - 'roster_tooltip_populate': (self.connect_with_roster_tooltip_populate, - self.disconnect_from_roster_tooltip_populate), - 'gc_tooltip_populate': (self.connect_with_gc_tooltip_populate, - self.disconnect_from_gc_tooltip_populate),} + #'roster_tooltip_populate': (self.connect_with_roster_tooltip_populate, + # self.disconnect_from_roster_tooltip_populate), + #'gc_tooltip_populate': (self.connect_with_gc_tooltip_populate, + # self.disconnect_from_gc_tooltip_populate), + } self.config_default_values = { 'show_in_roster': (True, ''), 'show_in_groupchats': (True, ''), @@ -202,7 +211,7 @@ class ClientsIconsPlugin(GajimPlugin): if not self.config['show_in_tooltip']: return - #fill clients table + # fill clients table self.table = Gtk.Grid() self.table.insert_row(0) self.table.insert_row(0) @@ -248,7 +257,7 @@ class ClientsIconsPlugin(GajimPlugin): contact_keys = sorted(contacts_dict.keys()) contact_keys.reverse() - #fill clients table + # fill clients table self.table = Gtk.Grid() self.table.insert_row(0) self.table.insert_row(0) @@ -433,7 +442,7 @@ class ClientsIconsPlugin(GajimPlugin): roster = app.interface.roster col = Gtk.TreeViewColumn() roster.nb_ext_renderers += 1 - self.renderer_num = 10 + roster.nb_ext_renderers + self.renderer_num = 11 + roster.nb_ext_renderers self.renderer = Gtk.CellRendererPixbuf() client_icon_rend = ('client_icon', self.renderer, False, 'pixbuf', self.renderer_num, @@ -549,7 +558,6 @@ class ClientsIconsPlugin(GajimPlugin): if self.config['show_unknown_icon']: model[iter_][pos] = self.default_pixbuf return - caps_ = caps.split('#')[0].split() if caps_: client_icon = clients.get(caps_[0].split()[0], (None,))[0] diff --git a/clients_icons/icons/chatsecure.png b/clients_icons/icons/chatsecure.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3056311062855cb75619df2d1cc15613fc57b1 GIT binary patch literal 959 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 QF#rGn07*qoM6N<$f-hl`dH?_b literal 0 HcmV?d00001 diff --git a/clients_icons/icons/pixart.png b/clients_icons/icons/pixart.png new file mode 100644 index 0000000000000000000000000000000000000000..25f811277151c940a184b9bd08876c34680209da GIT binary patch literal 2527 zcmZ`*S5T7)7yST<7>Z&wjD@+ZDHAmj;c(Lg-Kq~=^qN4$cW3NFOn~y=R?Fm*R^K+8(ZRI)4N^Z9D@jl+=bnR z`1utBzNEYC-!6XyujdAh$}j}X@-$=~Qg=e-*LWBfL$=4a`tkesP&3uu=;tJ;7btuT zgn^11eaBUDqxP^i$LO20Ikw%yT&WEYYfk4(k`7OfLBZ7iQ67et$j;U)N_OH~L9zc7 z5dSs$YBko~ZkNzHD2VvROU-+dyO6|9o^$eC3buVaaecp`JoA^ajJ2Y`NbG$w&9=VvBT$900olrYvYZ82@VR_!D2lQ{(O@?}X?7GHzE3$N6WSMK<#p5>V!jHTE%KFY=Trqb3zg;;YHu8yffQ6h8a~ORPSG_74mu+ z)gEN^so8tif@(2QpT$aZHb+<1mBlHHq(n{2;suLI;+y-nX3fjPsePh^LjnX>9Fi|g zQk`t9^7lH8^9hj8K4k^Kv(xH6p5Jp^bI)eUVoQoc_Epp4lHJWJYmS0Agq_&$+rLO)$1FeS2Z3pg9d~w+i-MD)>-?2 z5R8KVj3@=GMnid1Vud_;d1dOgz10vR6w}-b8aS!Qyu%lz(i}&1d!x?^kE5?To7t50 zc!4Cs;2>C7g4pIWF5ZfMjvJi>4rYsM##Cc2eGHS(4}|VW9pURANH^!0xskrKS<}y9 z6`&op?9f5(c%vFY(S}jjs@xu%oxruz9Y5H6<#gl}eDVzkxv2j>qlCV}c99Twt?zO? z^5nGDOCfmEaop^)qzI(Bk(B;Pu?mlQNWH%%q8Y-3FI0-)U{3R0J-g?3*6H;AS0mLF zpOc((Em=XQnML4Fl_V9Xi{WYdp0T-g@b)4OOnV+(#k0wtymxvGaeFJDF5Z%=~0$K8=4I`dtv*5@_la8I3x60ohctu(#TE8U(JM3!Ec6;sJA zP>z_3RuK7l)2?@1c3n}fWA0GbWR>4HYpyZ?Wcp84wD!Qf)vL!<#F*LpbN$oqYzI15 zTv@h$%&`MjK7`0i@m4iq}*W3BiFZ()6OUBKZPtFqzz{NSc|~JBvk1s-mIf} zj@(_c`4!2j9{bmwOe!8y(~hV;6_9YVgU@p_R$8@d@Z_W;C=gFvc5ruJ7uPLgE6Q{T zhcA*WoWd(v$2qyR2B-c&8sC54^r8C$Tyc@3M?80+ZR^2uP${mxPTQTlxZf*sAPU8IEhAH$ID0l6OL)k3;^+_y)|8lU+uNetbrY$FLN%v@o6wg@ul z5Azs_Cz=K-$M%ZE)Hqv0cI8)T=ba=%EvQygu!7)TqMbZ2#QnjdrK1W0090>=-ae46 zo8MT}3h@4r(5NKJnKnGM+{i3{>wQ&OsM_s)?IlGqgThkJd{(-N=lzKnh^)#6_pcA( z!^Yk^;ZWd@@(R(FtS(=QJ_yCY`GQj0JcOiesm{X7TUC`$ zH-W%cmt%O)M@}wlOM8?zyM#I`=go|Uf_J%s&C9dhlk3}>5C5X?I2;OgUo}K~tVd<9 zDvFIZh?l6qT?dI|&*koP3)H|d^F|Rh{m+p=Oc&AWxRBhB<9|Mfl}c}38SZOVsZ-9E zwW2e*?qJ0z|FsX?-;AAN9K3d=RaqYYY&mYKTOe9RpvDA+(n=($(JA i&fR{oH$)@nZ((5d20L~~MKXmJ0cfh}s#d62hy4fmxy9xH literal 0 HcmV?d00001