Start new Bonjour protocol plugin
This is mostly copied from the new XMPP protocol plugin, with icons copied from
the existing Bonjour plugin.
The id has a `-nouveau` suffix so that it won't conflict with the existing one.
Testing Done:
Ran `ninja turtles`; checked that an account with the new protocol could be added, though it doesn't do anything.
Reviewed at https://reviews.imfreedom.org/r/2915/
--- a/po/POTFILES.in Thu Feb 22 22:55:34 2024 -0600
+++ b/po/POTFILES.in Fri Feb 23 06:13:40 2024 -0600
@@ -314,6 +314,8 @@
pidgin/resources/infopane.ui
pidgin/win32/gtkwin32dep.c
+protocols/bonjour/purplebonjourcore.c +protocols/bonjour/purplebonjourprotocol.c protocols/xmpp/purplexmppconnection.c
protocols/xmpp/purplexmppcore.c
protocols/xmpp/purplexmppprotocol.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/meson.build Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,33 @@
+ 'purplebonjourconnection.c', + 'purplebonjourprotocol.c', + 'purplebonjourconnection.h', + 'purplebonjourconstants.h', + 'purplebonjourprotocol.h', +bonjour_resources = gnome.compile_resources('bonjourresource', + 'resources/bonjour.gresource.xml', + source_dir : 'resources', + c_name : 'purple_bonjour') +BONJOUR_SOURCES += bonjour_resources +bonjour_prpl = library('bonjournouveau', + BONJOUR_SOURCES, BONJOUR_HEADERS, + c_args : ['-DPURPLE_BONJOUR_COMPILATION', '-DG_LOG_USE_STRUCTURED', + '-DG_LOG_DOMAIN="Purple-Bonjour"'], + gnu_symbol_visibility : 'hidden', + dependencies : [libpurple_dep, glib, gio], + install_dir : PURPLE_PLUGINDIR) +devenv.append('PURPLE_PLUGIN_PATH', meson.current_build_dir()) --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/purplebonjourconnection.c Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,108 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#include <glib/gi18n-lib.h> +#include "purplebonjourconnection.h" +#include "purplebonjourconstants.h" +#include "purplebonjourcore.h" +struct _PurpleBonjourConnection { + PurpleConnection parent; +G_DEFINE_DYNAMIC_TYPE_EXTENDED(PurpleBonjourConnection, purple_bonjour_connection, + PURPLE_TYPE_CONNECTION, G_TYPE_FLAG_FINAL, {}) +/****************************************************************************** + * PurpleConnection Implementation + *****************************************************************************/ +purple_bonjour_connection_connect(PurpleConnection *purple_connection, + G_GNUC_UNUSED GError **error) + G_GNUC_UNUSED PurpleBonjourConnection *connection = NULL; + PurpleAccount *account = NULL; + G_GNUC_UNUSED GCancellable *cancellable = NULL; + G_GNUC_UNUSED const char *username = NULL; + G_GNUC_UNUSED guint16 port = PURPLE_BONJOUR_DEFAULT_PORT; + g_return_val_if_fail(PURPLE_BONJOUR_IS_CONNECTION(purple_connection), + purple_connection_set_state(purple_connection, + PURPLE_CONNECTION_STATE_CONNECTING); + connection = PURPLE_BONJOUR_CONNECTION(purple_connection); + cancellable = purple_connection_get_cancellable(purple_connection); + account = purple_connection_get_account(purple_connection); + /* Grab some more information that we need. */ + username = purple_contact_info_get_username(PURPLE_CONTACT_INFO(account)); + port = purple_account_get_int(account, PURPLE_BONJOUR_OPTION_PORT, + PURPLE_BONJOUR_DEFAULT_PORT); + /* Eventually, we will do something before this, but we can go straight to + * connected for now. */ + purple_connection_set_state(purple_connection, + PURPLE_CONNECTION_STATE_CONNECTED); +purple_bonjour_connection_disconnect(PurpleConnection *purple_connection, + PurpleConnectionClass *parent_class = NULL; + g_return_val_if_fail(PURPLE_BONJOUR_IS_CONNECTION(purple_connection), + /* Chain up to our parent's disconnect method. */ + parent_class = PURPLE_CONNECTION_CLASS(purple_bonjour_connection_parent_class); + return parent_class->disconnect(purple_connection, error); +/****************************************************************************** + * GObject Implementation + *****************************************************************************/ +purple_bonjour_connection_init(G_GNUC_UNUSED PurpleBonjourConnection *connection) { +purple_bonjour_connection_class_init(PurpleBonjourConnectionClass *klass) { + PurpleConnectionClass *connection_class = PURPLE_CONNECTION_CLASS(klass); + connection_class->connect = purple_bonjour_connection_connect; + connection_class->disconnect = purple_bonjour_connection_disconnect; +purple_bonjour_connection_class_finalize(G_GNUC_UNUSED PurpleBonjourConnectionClass *klass) { +/****************************************************************************** + *****************************************************************************/ +purple_bonjour_connection_register(GPluginNativePlugin *plugin) { + purple_bonjour_connection_register_type(G_TYPE_MODULE(plugin)); --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/purplebonjourconnection.h Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,48 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#ifndef PURPLE_BONJOUR_CONNECTION_H +#define PURPLE_BONJOUR_CONNECTION_H +#include <glib-object.h> +#include <gplugin-native.h> +#define PURPLE_BONJOUR_TYPE_CONNECTION (purple_bonjour_connection_get_type()) +G_DECLARE_FINAL_TYPE(PurpleBonjourConnection, purple_bonjour_connection, + PURPLE_BONJOUR, CONNECTION, PurpleConnection) + * purple_bonjour_connection_register: (skip) + * @plugin: The GTypeModule + * Registers the dynamic type using @plugin. +G_GNUC_INTERNAL void purple_bonjour_connection_register(GPluginNativePlugin *plugin); +#endif /* PURPLE_BONJOUR_CONNECTION_H */ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/purplebonjourconstants.h Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,25 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#ifndef PURPLE_BONJOUR_CONSTANTS_H +#define PURPLE_BONJOUR_CONSTANTS_H +#define PURPLE_BONJOUR_DEFAULT_PORT (5298) +#define PURPLE_BONJOUR_OPTION_PORT ("port") +#endif /* PURPLE_BONJOUR_CONSTANTS_H */ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/purplebonjourcore.c Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,119 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#include <glib/gi18n-lib.h> +#include <gplugin-native.h> +#include "purplebonjourcore.h" +#include "purplebonjourconnection.h" +#include "purplebonjourprotocol.h" +/****************************************************************************** + *****************************************************************************/ +static PurpleProtocol *bonjour_protocol = NULL; +/****************************************************************************** + *****************************************************************************/ +static GPluginPluginInfo * +purple_bonjour_query(G_GNUC_UNUSED GError **error) { + PurplePluginInfoFlags flags = PURPLE_PLUGIN_INFO_FLAGS_INTERNAL | + PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD; + const char * const authors[] = { + "Pidgin Developers <devel@pidgin.im>", + return purple_plugin_info_new( + "id", "prpl-bonjour-nouveau", + "name", "Bonjour Protocol", + "version", DISPLAY_VERSION, + "category", N_("Protocol"), + "summary", N_("Bonjour Protocol Plugin"), + "description", N_("Modern Bonjour Support"), + "website", PURPLE_WEBSITE, + "abi-version", PURPLE_ABI_VERSION, +purple_bonjour_load(GPluginPlugin *plugin, GError **error) { + PurpleProtocolManager *manager = NULL; + if(PURPLE_IS_PROTOCOL(bonjour_protocol)) { + g_set_error_literal(error, PURPLE_BONJOUR_DOMAIN, 0, + "plugin was not cleaned up properly"); + purple_bonjour_protocol_register(GPLUGIN_NATIVE_PLUGIN(plugin)); + purple_bonjour_connection_register(GPLUGIN_NATIVE_PLUGIN(plugin)); + bonjour_protocol = purple_bonjour_protocol_new(); + manager = purple_protocol_manager_get_default(); + if(PURPLE_IS_PROTOCOL_MANAGER(manager)) { + if(!purple_protocol_manager_register(manager, bonjour_protocol, error)) { + g_clear_object(&bonjour_protocol); +purple_bonjour_unload(G_GNUC_UNUSED GPluginPlugin *plugin, + G_GNUC_UNUSED gboolean shutdown, + PurpleProtocolManager *manager = NULL; + if(!PURPLE_IS_PROTOCOL(bonjour_protocol)) { + g_set_error_literal(error, PURPLE_BONJOUR_DOMAIN, 0, + "plugin was not setup properly"); + manager = purple_protocol_manager_get_default(); + if(PURPLE_IS_PROTOCOL_MANAGER(manager)) { + if(!purple_protocol_manager_unregister(manager, bonjour_protocol, + g_clear_object(&bonjour_protocol); +GPLUGIN_NATIVE_PLUGIN_DECLARE(purple_bonjour) --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/purplebonjourcore.h Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,25 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#ifndef PURPLE_BONJOUR_CORE_H +#define PURPLE_BONJOUR_CORE_H +#define PURPLE_BONJOUR_DOMAIN (g_quark_from_static_string("bonjour-plugin")) +#endif /* PURPLE_BONJOUR_CORE_H */ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/purplebonjourprotocol.c Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,125 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#include <glib/gi18n-lib.h> +#include "purplebonjourprotocol.h" +#include "purplebonjourconnection.h" +#include "purplebonjourconstants.h" +struct _PurpleBonjourProtocol { +/****************************************************************************** + * PurpleProtocol Implementation + *****************************************************************************/ +purple_bonjour_protocol_get_account_options(G_GNUC_UNUSED PurpleProtocol *protocol) + PurpleAccountOption *option = NULL; + option = purple_account_option_int_new(_("Port"), PURPLE_BONJOUR_OPTION_PORT, + PURPLE_BONJOUR_DEFAULT_PORT); + options = g_list_append(options, option); +purple_bonjour_protocol_status_types(G_GNUC_UNUSED PurpleProtocol *protocol, + G_GNUC_UNUSED PurpleAccount *account) + PurpleStatusType *type = NULL; + type = purple_status_type_new(PURPLE_STATUS_AVAILABLE, NULL, NULL, TRUE); + types = g_list_append(types, type); + type = purple_status_type_new(PURPLE_STATUS_OFFLINE, NULL, NULL, TRUE); + types = g_list_append(types, type); +static PurpleConnection * +purple_bonjour_protocol_create_connection(PurpleProtocol *protocol, + PurpleAccount *account, + G_GNUC_UNUSED GError **error) + PURPLE_BONJOUR_TYPE_CONNECTION, +/****************************************************************************** + * GObject Implementation + *****************************************************************************/ +G_DEFINE_DYNAMIC_TYPE_EXTENDED( + purple_bonjour_protocol, +purple_bonjour_protocol_init(G_GNUC_UNUSED PurpleBonjourProtocol *protocol) { +purple_bonjour_protocol_class_finalize(G_GNUC_UNUSED PurpleBonjourProtocolClass *klass) +purple_bonjour_protocol_class_init(PurpleBonjourProtocolClass *klass) { + PurpleProtocolClass *protocol_class = PURPLE_PROTOCOL_CLASS(klass); + protocol_class->get_account_options = purple_bonjour_protocol_get_account_options; + protocol_class->status_types = purple_bonjour_protocol_status_types; + protocol_class->create_connection = purple_bonjour_protocol_create_connection; +/****************************************************************************** + *****************************************************************************/ +purple_bonjour_protocol_register(GPluginNativePlugin *plugin) { + purple_bonjour_protocol_register_type(G_TYPE_MODULE(plugin)); +purple_bonjour_protocol_new(void) { + PURPLE_BONJOUR_TYPE_PROTOCOL, + "id", "prpl-bonjour-nouveau", + "description", _("Bonjour is a serverless protocol for local networks."), + "icon-name", "im-bonjour", + "icon-resource-path", "/im/pidgin/libpurple/protocols/bonjour/icons", + "options", OPT_PROTO_NO_PASSWORD, --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/purplebonjourprotocol.h Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,50 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#ifndef PURPLE_BONJOUR_PROTOCOL_H +#define PURPLE_BONJOUR_PROTOCOL_H +#include <glib-object.h> +#include <gplugin-native.h> +#define PURPLE_BONJOUR_TYPE_PROTOCOL (purple_bonjour_protocol_get_type()) +G_DECLARE_FINAL_TYPE(PurpleBonjourProtocol, purple_bonjour_protocol, + PURPLE_BONJOUR, PROTOCOL, PurpleProtocol) + * purple_bonjour_protocol_register: (skip) + * @plugin: The GTypeModule + * Registers the dynamic type using @plugin. +G_GNUC_INTERNAL void purple_bonjour_protocol_register(GPluginNativePlugin *plugin); +G_GNUC_INTERNAL PurpleProtocol *purple_bonjour_protocol_new(void); +#endif /* PURPLE_BONJOUR_PROTOCOL_H */ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/resources/bonjour.gresource.xml Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?> + <gresource prefix="/im/pidgin/libpurple/protocols/bonjour"> + <file>icons/16x16/apps/im-bonjour.png</file> + <file compressed="true" preprocess="xml-stripblanks">icons/16x16/apps/scalable/im-bonjour.svg</file> + <file>icons/22x22/apps/im-bonjour.png</file> + <file compressed="true" preprocess="xml-stripblanks">icons/22x22/apps/scalable/im-bonjour.svg</file> + <file>icons/48x48/apps/im-bonjour.png</file> + <file compressed="true" preprocess="xml-stripblanks">icons/scalable/apps/im-bonjour.svg</file> Binary file protocols/bonjour/resources/icons/16x16/apps/im-bonjour.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/resources/icons/16x16/apps/scalable/im-bonjour.svg Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docbase="/home/hbons/GUI/Tango/Gaim Refresh/protocols/16/scalable" + sodipodi:docname="bonjour.svg" + inkscape:export-filename="/home/hbons/Bureaublad/bonjour.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 8 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="16 : 8 : 1" + inkscape:persp3d-origin="8 : 5.3333333 : 1" + inkscape:collect="always" + id="linearGradient8630"> + style="stop-color:#ce5c00;stop-opacity:1;" + style="stop-color:#a24700;stop-opacity:1" + inkscape:collect="always" + xlink:href="#linearGradient8630" + id="linearGradient8636" + gradientUnits="userSpaceOnUse" /> + inkscape:collect="always" + xlink:href="#linearGradient8630" + id="linearGradient8640" + gradientUnits="userSpaceOnUse" + inkscape:collect="always" + xlink:href="#linearGradient8630" + id="linearGradient8644" + gradientUnits="userSpaceOnUse" + inkscape:collect="always" + inkscape:collect="always" + stdDeviation="0.44714331" + id="feGaussianBlur8688" /> + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.197802" + inkscape:cx="19.610287" + inkscape:cy="10.016761" + inkscape:current-layer="layer1" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1440" + inkscape:window-height="847" + inkscape:grid-points="true" + inkscape:snap-nodes="false" + inkscape:snap-bbox="true" + <dc:format>image/svg+xml</dc:format> + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + style="opacity:1;fill:#888a85;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="M 12.25 0.8125 C 11.212904 0.82548147 9.8237981 1.3178148 8 2.75 C 13.624569 0.9376896 12.09375 3.9687501 12.09375 3.96875 C 12.730846 2.6945576 15.125 3.1250001 15.125 3.125 C 15.125 3.125 14.531611 0.78394076 12.25 0.8125 z M 5 1 C 5 1 6.2894977 2.4031671 5.96875 3.875 C 6.2142693 3.9629227 6.4825344 4.1298951 6.75 4.3125 C 6.3025525 4.8585397 4.5708564 7.0310338 3.59375 9.53125 C 1.0655137 6.5798281 2.28125 6.2187501 2.28125 6.21875 C 2.28125 6.21875 0.78185481 5.3348778 0.75 4.15625 C 0.75 4.15625 -2.0476392 7.5220008 3.5 9.78125 C 3.0973823 10.886071 2.8800606 12.018686 3.0625 13 C 3.0625 13 3.6157102 11.426301 5.03125 10.96875 C 4.9701968 10.621698 4.9938478 10.192279 5.0625 9.71875 C 5.3532166 7.7135288 6.5068895 5.1127489 6.84375 4.375 C 8.4782617 5.5373726 10.241354 7.9344916 10.75 8.65625 C 8.5490333 9.3974261 5.2127054 9.7062603 5.0625 9.71875 C 5.2473055 9.7481019 12.134313 10.824709 14.9375 8.625 C 14.9375 8.625 13.27052 8.9201184 12.15625 8 C 11.847198 8.2378763 11.367484 8.4425412 10.84375 8.625 C 10.458227 7.6220151 8.2341467 2.1234583 5 1 z M 11 10 C 10.948461 14.034482 8.8749996 13.6875 8.875 13.6875 C 8.875 13.6875 9.2741924 15.554033 8 16 C 8 16 14.4206 15.813404 11 10 z " + style="fill:#ffac5b;fill-opacity:1;stroke:url(#linearGradient8636);stroke-width:1.5861057;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="5.6698728" + sodipodi:cy="3.7607069" + sodipodi:rx="2.7512043" + sodipodi:ry="2.0574222" + d="M 8.421077,3.7607069 A 2.7512043,2.0574222 0 1 1 2.9186685,3.7607069 A 2.7512043,2.0574222 0 1 1 8.421077,3.7607069 z" + transform="matrix(0.5452158,0,0,0.7290669,-9.1304146e-2,0.2581915)" /> + style="fill:#ffac5b;fill-opacity:1;stroke:url(#linearGradient8640);stroke-width:1.58610499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="5.6698728" + sodipodi:cy="3.7607069" + sodipodi:rx="2.7512043" + sodipodi:ry="2.0574222" + d="M 8.421077,3.7607069 A 2.7512043,2.0574222 0 1 1 2.9186685,3.7607069 A 2.7512043,2.0574222 0 1 1 8.421077,3.7607069 z" + transform="matrix(0.5452157,0,0,0.7290676,10.908697,3.2581906)" /> + style="fill:#ffac5b;fill-opacity:1;stroke:url(#linearGradient8644);stroke-width:1.58610499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="5.6698728" + sodipodi:cy="3.7607069" + sodipodi:rx="2.7512043" + sodipodi:ry="2.0574222" + d="M 8.421077,3.7607069 A 2.7512043,2.0574222 0 1 1 2.9186685,3.7607069 A 2.7512043,2.0574222 0 1 1 8.421077,3.7607069 z" + transform="matrix(0.5452157,0,0,0.7290676,2.9086961,11.25819)" /> + style="opacity:0.47685185;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:cx="2.3731835" + sodipodi:cy="2.1909397" + sodipodi:rx="0.90786207" + sodipodi:ry="1.0352813" + d="M 3.2810456,2.1909397 A 0.90786207,1.0352813 0 1 1 1.4653214,2.1909397 A 0.90786207,1.0352813 0 1 1 3.2810456,2.1909397 z" + transform="matrix(1.1014889,0,0,0.9659211,-0.6140352,-0.1162747)" /> + style="opacity:0.47685188;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:cx="2.3731835" + sodipodi:cy="2.1909397" + sodipodi:rx="0.90786207" + sodipodi:ry="1.0352813" + d="M 3.2810456,2.1909397 A 0.90786207,1.0352813 0 1 1 1.4653214,2.1909397 A 0.90786207,1.0352813 0 1 1 3.2810456,2.1909397 z" + transform="matrix(1.1014889,0,0,0.9659211,10.385965,2.8837252)" /> + style="opacity:0.47685188;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:cx="2.3731835" + sodipodi:cy="2.1909397" + sodipodi:rx="0.90786207" + sodipodi:ry="1.0352813" + d="M 3.2810456,2.1909397 A 0.90786207,1.0352813 0 1 1 1.4653214,2.1909397 A 0.90786207,1.0352813 0 1 1 3.2810456,2.1909397 z" + transform="matrix(1.1014889,0,0,0.9659211,2.3859647,10.883725)" /> Binary file protocols/bonjour/resources/icons/22x22/apps/im-bonjour.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/resources/icons/22x22/apps/scalable/im-bonjour.svg Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docbase="/home/hbons/Desktop/Gaim Refresh/protocols" + sodipodi:docname="bonjour.svg" + inkscape:export-filename="/home/hbons/Desktop/Gaim Refresh/protocols/bonjour.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + inkscape:collect="always" + id="linearGradient3150"> + style="stop-color:#2e3436;stop-opacity:1;" + style="stop-color:#2e3436;stop-opacity:0;" + inkscape:collect="always" + xlink:href="#linearGradient3150" + id="radialGradient3156" + gradientTransform="matrix(-0.842757,5.698892e-16,-4.565819e-9,-0.35721,19.80716,14.19321)" + gradientUnits="userSpaceOnUse" /> + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="24.007726" + inkscape:cx="19.418659" + inkscape:cy="14.593926" + inkscape:document-units="px" + inkscape:current-layer="layer1" + inkscape:window-width="1268" + inkscape:window-height="971" + inkscape:window-y="21" /> + <dc:format>image/svg+xml</dc:format> + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + inkscape:label="Layer 1" + inkscape:groupmode="layer" + sodipodi:absref="/home/hbons/Desktop/indextop20050412.jpg" + xlink:href="/home/hbons/Desktop/indextop20050412.jpg" + style="opacity:0.35;fill:url(#radialGradient3156);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="10.748654" + sodipodi:cy="10.457643" + sodipodi:rx="6.6449099" + sodipodi:ry="2.3675451" + d="M 17.393564 10.457643 A 6.6449099 2.3675451 0 1 1 4.1037445,10.457643 A 6.6449099 2.3675451 0 1 1 17.393564 10.457643 z" + transform="matrix(1.805894,0,0,1.478326,-7.410926,5.0402)" /> + style="opacity:1;fill:#f57900;fill-opacity:1;stroke:#ce5c00;stroke-width:1.18495774;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="5.6698728" + sodipodi:cy="3.7607069" + sodipodi:rx="2.7512043" + sodipodi:ry="2.0574222" + d="M 8.421077 3.7607069 A 2.7512043 2.0574222 0 1 1 2.9186685,3.7607069 A 2.7512043 2.0574222 0 1 1 8.421077 3.7607069 z" + transform="matrix(0.728546,0,0,0.977547,0.373616,1.964643)" /> + style="fill:#babdb6;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1" + d="M 26.5,4.3717336 C 30.06901,-1.9135499 35.080181,2.3148691 35.080181,5.6521385 L 32.664416,4.7456069 C 31.625041,2.6021767 26.5,4.3717336 26.5,4.3717336 z " + sodipodi:nodetypes="cccc" /> + style="opacity:1;fill:#f57900;fill-opacity:1;stroke:#ce5c00;stroke-width:1.18495774;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="5.6698728" + sodipodi:cy="3.7607069" + sodipodi:rx="2.7512043" + sodipodi:ry="2.0574222" + d="M 8.421077 3.7607069 A 2.7512043 2.0574222 0 1 1 2.9186685,3.7607069 A 2.7512043 2.0574222 0 1 1 8.421077 3.7607069 z" + transform="matrix(0.728546,0,0,0.977547,16.36486,1.964643)" /> + style="opacity:1;fill:#f57900;fill-opacity:1;stroke:#ce5c00;stroke-width:1.18495774;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="5.6698728" + sodipodi:cy="3.7607069" + sodipodi:rx="2.7512043" + sodipodi:ry="2.0574222" + d="M 8.421077 3.7607069 A 2.7512043 2.0574222 0 1 1 2.9186685,3.7607069 A 2.7512043 2.0574222 0 1 1 8.421077 3.7607069 z" + transform="matrix(0.728546,0,0,0.977547,8.383099,14.96465)" /> + style="opacity:0.35;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2.36390281;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="5.6698728" + sodipodi:cy="3.7607069" + sodipodi:rx="2.7512043" + sodipodi:ry="2.0574222" + d="M 8.421077 3.7607069 A 2.7512043 2.0574222 0 1 1 2.9186685,3.7607069 A 2.7512043 2.0574222 0 1 1 8.421077 3.7607069 z" + transform="matrix(0.3652,0,0,0.490017,2.442502,3.775647)" /> + style="opacity:0.35;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2.36390281;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="5.6698728" + sodipodi:cy="3.7607069" + sodipodi:rx="2.7512043" + sodipodi:ry="2.0574222" + d="M 8.421077 3.7607069 A 2.7512043 2.0574222 0 1 1 2.9186685,3.7607069 A 2.7512043 2.0574222 0 1 1 8.421077 3.7607069 z" + transform="matrix(0.3652,0,0,0.490017,18.41586,3.801155)" /> + style="opacity:0.35;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2.36390281;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="5.6698728" + sodipodi:cy="3.7607069" + sodipodi:rx="2.7512043" + sodipodi:ry="2.0574222" + d="M 8.421077 3.7607069 A 2.7512043 2.0574222 0 1 1 2.9186685,3.7607069 A 2.7512043 2.0574222 0 1 1 8.421077 3.7607069 z" + transform="matrix(0.3652,0,0,0.490017,10.4341,16.79505)" /> + style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:#888a85;stroke-width:0.99999976;stroke-miterlimit:4;stroke-opacity:1" + d="M 7.7318759,2.7396133 C 12.169337,3.9286259 14.955511,8.0423718 15.280153,9.2539565 C 14.057144,8.5478522 8.4371398,5.666617 8.4371398,5.666617 L 7.7318759,2.7396133 z " + sodipodi:nodetypes="cccc" /> + style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:#888a85;stroke-width:0.99999893;stroke-miterlimit:4;stroke-opacity:1" + d="M 8.2402219,17.350151 C 6.3014525,13.204266 8.7140226,9.106829 9.6009641,8.2198893 C 9.6009631,9.6320977 10.392827,15.689612 10.392827,15.689612 L 8.2402219,17.350151 z " + sodipodi:nodetypes="cccc" /> + style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:#888a85;stroke-width:0.99999946;stroke-miterlimit:4;stroke-opacity:1" + d="M 20.999419,10.287708 C 17.750972,13.53615 13.261202,14.092622 12.049619,13.767978 C 13.272629,13.061875 18.044934,9.5274806 18.044934,9.5274806 L 20.999419,10.287708 z " + sodipodi:nodetypes="cccc" /> + style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:#888a85;stroke-width:0.99999946;stroke-miterlimit:4;stroke-opacity:1" + d="M 1.5549628,8.708934 C 1.5526429,11.954488 4.7660086,13.487253 6.3046441,13.487253 C 5.4626496,12.028876 3.7044795,9.4471457 3.7044795,9.4471457 L 1.5549628,8.708934 z " + sodipodi:nodetypes="cccc" /> + style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:#888a85;stroke-width:0.99999946;stroke-miterlimit:4;stroke-opacity:1" + d="M 19.83722,1.3615728 C 16.493168,0.56581196 13.018,2.1889619 12.593131,3.5931305 C 14.361353,3.5931305 16.849492,3.4926544 16.849492,3.4926544 L 19.83722,1.3615728 z " + sodipodi:nodetypes="cccc" /> + style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-miterlimit:4;stroke-opacity:1" + d="M 16.5,20.072196 C 19.311894,18.451427 18.826975,15.382116 18.057657,14.049618 C 17.215662,15.507995 16.53488,17.120673 16.53488,17.120673 L 16.5,20.072196 z " + sodipodi:nodetypes="cccc" /> Binary file protocols/bonjour/resources/icons/48x48/apps/im-bonjour.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/protocols/bonjour/resources/icons/scalable/apps/im-bonjour.svg Fri Feb 23 06:13:40 2024 -0600
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docbase="/home/hbons/Desktop/Gaim Refresh/protocols/48/scalable" + sodipodi:docname="bonjour.svg" + inkscape:export-filename="/home/hbons/Desktop/Gaim Refresh/protocols/48/bonjour.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + inkscape:collect="always" + id="linearGradient2314"> + style="stop-color:#ffffff;stop-opacity:1;" + style="stop-color:#ffffff;stop-opacity:0;" + inkscape:collect="always" + id="linearGradient3150"> + style="stop-color:#2e3436;stop-opacity:1;" + style="stop-color:#2e3436;stop-opacity:0;" + inkscape:collect="always" + xlink:href="#linearGradient3150" + id="radialGradient3156" + gradientTransform="matrix(-0.934099,4.045903e-17,-5.060684e-9,-0.395926,20.78896,14.59809)" + gradientUnits="userSpaceOnUse" /> + inkscape:collect="always" + xlink:href="#linearGradient2314" + id="linearGradient2320" + gradientUnits="userSpaceOnUse" /> + inkscape:collect="always" + xlink:href="#linearGradient2314" + id="linearGradient2324" + gradientUnits="userSpaceOnUse" + inkscape:collect="always" + xlink:href="#linearGradient2314" + id="linearGradient2328" + gradientUnits="userSpaceOnUse" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="12.003863" + inkscape:cx="41.170813" + inkscape:cy="23.799748" + inkscape:document-units="px" + inkscape:current-layer="layer1" + inkscape:window-width="1268" + inkscape:window-height="972" + inkscape:window-y="21" /> + <dc:format>image/svg+xml</dc:format> + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + inkscape:label="Layer 1" + inkscape:groupmode="layer" + style="opacity:0.35;fill:url(#radialGradient3156);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="10.748654" + sodipodi:cy="10.457643" + sodipodi:rx="6.6449099" + sodipodi:ry="2.3675451" + d="M 17.393564 10.457643 A 6.6449099 2.3675451 0 1 1 4.1037445,10.457643 A 6.6449099 2.3675451 0 1 1 17.393564 10.457643 z" + transform="matrix(3.611787,0,0,2.323081,-14.82185,18.20605)" /> + style="opacity:1;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:0.77285618;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="11.237947" + sodipodi:cy="7.9095716" + sodipodi:rx="3.0935922" + sodipodi:ry="3.0935922" + d="M 14.33154 7.9095716 A 3.0935922 3.0935922 0 1 1 8.1443553,7.9095716 A 3.0935922 3.0935922 0 1 1 14.33154 7.9095716 z" + transform="matrix(1.290432,0,0,1.297381,-3.009737,-2.680289)" /> + style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:#7d7f7a;stroke-width:0.99999958;stroke-miterlimit:4;stroke-opacity:1" + d="M 35.46875,4.5366208 C 31.635379,4.6522391 27.705058,6.4906706 25.53125,9.7866208 C 26.103022,9.4743488 35.303923,4.6093611 38.34375,12.599121 C 39.472527,11.34018 43.22049,11.040461 45.5,12.224121 C 44.713989,6.8257933 40.179035,4.3945539 35.46875,4.5366208 z M 17.46875,4.5678708 C 18.127573,6.5529792 17.95859,8.1732436 17.53125,9.1616208 C 21.771815,8.0014671 29.858933,21.430311 30.5,22.505371 C 25.376692,11.592709 20.897066,5.8681195 17.46875,4.5678708 z M 5.34375,7.5678708 C -3.2027906,14.070713 3.9432311,26.177264 13.4375,26.536621 C 12.842607,26.198616 3.4390694,20.691845 9.4375,13.724121 C 7.6531589,13.401091 5.4098365,10.216725 5.34375,7.5678708 z M 21.46875,14.599121 C 14.518079,24.752705 11.892887,31.742633 12.65625,35.567871 C 14.072321,33.976734 15.618903,33.346912 16.75,33.255371 C 13.282151,29.863924 20.985214,15.493469 21.46875,14.599121 z M 37.40625,21.630371 C 36.029184,26.189083 21.006896,27.252123 18.78125,27.380371 C 31.047662,28.025568 38.491655,26.618231 41.5,23.942871 C 39.411924,23.554843 38.044876,22.56197 37.40625,21.630371 z M 33.125,28.599121 C 33.123038,29.265224 33.537967,40.230123 24.458146,38.651097 C 25.058081,40.306995 23.321409,43.5863 21.031089,44.953234 C 30.971079,48.901331 37.527529,36.737136 33.125,28.599121 z " + sodipodi:nodetypes="ccccccccccccccccccccccccc" /> + sodipodi:type="inkscape:offset" + inkscape:radius="-0.97818917" + inkscape:original="M 35.46875 4.53125 C 31.635379 4.6468685 27.705058 6.4852998 25.53125 9.78125 C 26.103022 9.4689777 35.303923 4.6039901 38.34375 12.59375 C 39.472527 11.334809 43.22049 11.03509 45.5 12.21875 C 44.713989 6.8204222 40.179035 4.3891831 35.46875 4.53125 z M 17.46875 4.5625 C 18.127573 6.5476086 17.95859 8.1678728 17.53125 9.15625 C 21.771815 7.996096 29.858933 21.42494 30.5 22.5 C 25.376692 11.587338 20.897066 5.8627487 17.46875 4.5625 z M 5.34375 7.5625 C -3.2027906 14.065342 3.9432311 26.171893 13.4375 26.53125 C 12.842607 26.193245 3.4390694 20.686474 9.4375 13.71875 C 7.6531589 13.39572 5.4098365 10.211354 5.34375 7.5625 z M 21.46875 14.59375 C 14.518079 24.747334 11.892887 31.737262 12.65625 35.5625 C 14.072321 33.971363 15.618903 33.341541 16.75 33.25 C 13.282151 29.858553 20.985214 15.488098 21.46875 14.59375 z M 37.40625 21.625 C 36.029184 26.183712 21.006896 27.246752 18.78125 27.375 C 31.047662 28.020197 38.491655 26.61286 41.5 23.9375 C 39.411924 23.549472 38.044876 22.556599 37.40625 21.625 z M 33.125 28.59375 C 33.123038 29.259853 33.548571 40.235276 24.46875 38.65625 C 25.068686 40.312149 23.32157 43.601816 21.03125 44.96875 C 30.971239 48.916845 37.527529 36.731765 33.125 28.59375 z " + style="opacity:0.4;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999958;stroke-miterlimit:4;stroke-opacity:1" + d="M 35.5,6.4375 C 33.368939,6.5017749 31.254587,7.2183109 29.4375,8.375 C 29.955273,8.2616185 30.342793,8.0837857 30.90625,8.03125 C 32.406836,7.8913382 34.078294,8.0394993 35.59375,8.8125 C 36.831972,9.4440897 37.86888,10.628822 38.6875,12.1875 C 39.489624,11.770011 40.411361,11.500994 41.4375,11.4375 C 42.258666,11.386689 43.10461,11.462473 43.9375,11.625 C 43.379009,10.119471 42.589365,8.8531272 41.40625,8.03125 C 39.790488,6.908825 37.677617,6.3718209 35.5,6.4375 z M 18.78125,7.53125 C 18.821476,8.1885616 18.763233,8.7406401 18.65625,9.28125 C 19.760339,9.4560073 20.842148,9.9390765 21.875,10.78125 C 22.166416,11.018866 22.428639,11.416981 22.71875,11.6875 C 22.66814,11.618108 22.612837,11.505519 22.5625,11.4375 C 21.155108,9.5357202 19.912201,8.3834952 18.78125,7.53125 z M 4.78125,10.5 C 2.1367338,13.32142 1.9732812,16.73063 3.5,19.84375 C 4.6796069,22.249077 6.8918614,24.272293 9.5,25.4375 C 9.0508422,24.984485 8.5946267,24.68144 8.1875,24.125 C 7.2714393,22.872975 6.524154,21.350596 6.46875,19.59375 C 6.4232564,18.151162 7.0064835,16.584718 8.0625,15.03125 C 7.2533732,14.545104 6.5354947,13.881423 5.9375,13 C 5.4271977,12.247833 5.0629652,11.390597 4.78125,10.5 z M 37.5625,24 C 36.85358,24.922553 35.872279,25.684009 34.625,26.25 C 33.981881,26.541835 33.133881,26.670217 32.40625,26.90625 C 35.442669,26.486299 37.633021,25.855821 39.1875,25.0625 C 38.533201,24.753288 38.014785,24.406514 37.5625,24 z M 15.59375,27.6875 C 15.447519,28.018151 15.191854,28.433804 15.0625,28.75 C 14.093097,31.119641 13.782747,32.928132 13.6875,34.4375 C 14.296929,34.034852 14.855783,33.77311 15.4375,33.59375 C 14.976511,32.494336 14.815677,31.243494 15,29.84375 C 15.08934,29.165305 15.417606,28.406637 15.59375,27.6875 z M 33.3125,33.78125 C 33.133192,34.418356 33.085183,34.999527 32.78125,35.65625 C 32.13654,37.049308 31.160565,38.398872 29.65625,39.3125 C 28.414521,40.06665 26.766693,40.371954 24.875,40.25 C 24.843897,41.165669 24.622124,42.10692 24.15625,43.03125 C 23.766181,43.805178 23.234663,44.527693 22.625,45.1875 C 26.385249,45.969725 29.45049,44.399 31.40625,41.59375 C 32.935546,39.400201 33.59997,36.546168 33.3125,33.78125 z " + inkscape:href="#rect2206" /> + style="opacity:1;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:0.77265418;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="11.237947" + sodipodi:cy="7.9095716" + sodipodi:rx="3.0935922" + sodipodi:ry="3.0935922" + d="M 14.33154 7.9095716 A 3.0935922 3.0935922 0 1 1 8.1443553,7.9095716 A 3.0935922 3.0935922 0 1 1 14.33154 7.9095716 z" + transform="matrix(-0.645216,1.118132,-1.123564,-0.649031,58.6294,10.13592)" /> + style="opacity:1;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:0.77285618;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="11.237947" + sodipodi:cy="7.9095716" + sodipodi:rx="3.0935922" + sodipodi:ry="3.0935922" + d="M 14.33154 7.9095716 A 3.0935922 3.0935922 0 1 1 8.1443553,7.9095716 A 3.0935922 3.0935922 0 1 1 14.33154 7.9095716 z" + transform="matrix(-0.645216,-1.117547,1.123565,-0.64869,15.8724,57.25531)" /> + style="opacity:0.6;fill:url(#linearGradient2320);fill-opacity:1.0;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.02678573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="11.237947" + sodipodi:cy="7.9095716" + sodipodi:rx="3.0935922" + sodipodi:ry="3.0935922" + d="M 14.33154 7.9095716 A 3.0935922 3.0935922 0 1 1 8.1443553,7.9095716 A 3.0935922 3.0935922 0 1 1 14.33154 7.9095716 z" + transform="matrix(0.971301,0,0,0.976532,0.576636,-0.142509)" /> + style="opacity:0.6;fill:url(#linearGradient2324);fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.02678573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="11.237947" + sodipodi:cy="7.9095716" + sodipodi:rx="3.0935922" + sodipodi:ry="3.0935922" + d="M 14.33154 7.9095716 A 3.0935922 3.0935922 0 1 1 8.1443553,7.9095716 A 3.0935922 3.0935922 0 1 1 14.33154 7.9095716 z" + transform="matrix(0.971301,0,0,0.976532,31.58938,9.755058)" /> + style="opacity:0.6;fill:url(#linearGradient2328);fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.02678573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:cx="11.237947" + sodipodi:cy="7.9095716" + sodipodi:rx="3.0935922" + sodipodi:ry="3.0935922" + d="M 14.33154 7.9095716 A 3.0935922 3.0935922 0 1 1 8.1443553,7.9095716 A 3.0935922 3.0935922 0 1 1 14.33154 7.9095716 z" + transform="matrix(0.971301,0,0,0.976532,6.579761,31.79704)" /> --- a/protocols/meson.build Thu Feb 22 22:55:34 2024 -0600
+++ b/protocols/meson.build Fri Feb 23 06:13:40 2024 -0600
@@ -1,1 +1,2 @@