/* ProfileCover.c generated by valac 0.56.19, the Vala compiler
 * generated from ProfileCover.vala, do not modify */

#include <gtk/gtk.h>
#include <glib-object.h>
#include <adwaita.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gee.h>
#include <gio/gio.h>
#include <glib/gi18n-lib.h>
#include <gdk/gdk.h>
#include <pango/pango.h>
#include <libsoup/soup.h>
#include <json-glib/json-glib.h>
#include <float.h>
#include <math.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TUBA_WIDGETS_TYPE_COVER (tuba_widgets_cover_get_type ())
#define TUBA_WIDGETS_COVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_COVER, TubaWidgetsCover))
#define TUBA_WIDGETS_COVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_COVER, TubaWidgetsCoverClass))
#define TUBA_WIDGETS_IS_COVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_COVER))
#define TUBA_WIDGETS_IS_COVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_COVER))
#define TUBA_WIDGETS_COVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_COVER, TubaWidgetsCoverClass))

typedef struct _TubaWidgetsCover TubaWidgetsCover;
typedef struct _TubaWidgetsCoverClass TubaWidgetsCoverClass;
typedef struct _TubaWidgetsCoverPrivate TubaWidgetsCoverPrivate;

#define TUBA_WIDGETS_TYPE_MARKUP_VIEW (tuba_widgets_markup_view_get_type ())
#define TUBA_WIDGETS_MARKUP_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_MARKUP_VIEW, TubaWidgetsMarkupView))
#define TUBA_WIDGETS_MARKUP_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_MARKUP_VIEW, TubaWidgetsMarkupViewClass))
#define TUBA_WIDGETS_IS_MARKUP_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_MARKUP_VIEW))
#define TUBA_WIDGETS_IS_MARKUP_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_MARKUP_VIEW))
#define TUBA_WIDGETS_MARKUP_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_MARKUP_VIEW, TubaWidgetsMarkupViewClass))

typedef struct _TubaWidgetsMarkupView TubaWidgetsMarkupView;
typedef struct _TubaWidgetsMarkupViewClass TubaWidgetsMarkupViewClass;

#define TUBA_WIDGETS_TYPE_RELATIONSHIP_BUTTON (tuba_widgets_relationship_button_get_type ())
#define TUBA_WIDGETS_RELATIONSHIP_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_RELATIONSHIP_BUTTON, TubaWidgetsRelationshipButton))
#define TUBA_WIDGETS_RELATIONSHIP_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_RELATIONSHIP_BUTTON, TubaWidgetsRelationshipButtonClass))
#define TUBA_WIDGETS_IS_RELATIONSHIP_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_RELATIONSHIP_BUTTON))
#define TUBA_WIDGETS_IS_RELATIONSHIP_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_RELATIONSHIP_BUTTON))
#define TUBA_WIDGETS_RELATIONSHIP_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_RELATIONSHIP_BUTTON, TubaWidgetsRelationshipButtonClass))

typedef struct _TubaWidgetsRelationshipButton TubaWidgetsRelationshipButton;
typedef struct _TubaWidgetsRelationshipButtonClass TubaWidgetsRelationshipButtonClass;

#define TUBA_WIDGETS_TYPE_BACKGROUND (tuba_widgets_background_get_type ())
#define TUBA_WIDGETS_BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_BACKGROUND, TubaWidgetsBackground))
#define TUBA_WIDGETS_BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_BACKGROUND, TubaWidgetsBackgroundClass))
#define TUBA_WIDGETS_IS_BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_BACKGROUND))
#define TUBA_WIDGETS_IS_BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_BACKGROUND))
#define TUBA_WIDGETS_BACKGROUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_BACKGROUND, TubaWidgetsBackgroundClass))

typedef struct _TubaWidgetsBackground TubaWidgetsBackground;
typedef struct _TubaWidgetsBackgroundClass TubaWidgetsBackgroundClass;

#define TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS (tuba_widgets_label_with_widgets_get_type ())
#define TUBA_WIDGETS_LABEL_WITH_WIDGETS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS, TubaWidgetsLabelWithWidgets))
#define TUBA_WIDGETS_LABEL_WITH_WIDGETS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS, TubaWidgetsLabelWithWidgetsClass))
#define TUBA_WIDGETS_IS_LABEL_WITH_WIDGETS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS))
#define TUBA_WIDGETS_IS_LABEL_WITH_WIDGETS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS))
#define TUBA_WIDGETS_LABEL_WITH_WIDGETS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS, TubaWidgetsLabelWithWidgetsClass))

typedef struct _TubaWidgetsLabelWithWidgets TubaWidgetsLabelWithWidgets;
typedef struct _TubaWidgetsLabelWithWidgetsClass TubaWidgetsLabelWithWidgetsClass;

#define TUBA_WIDGETS_TYPE_EMOJI_LABEL (tuba_widgets_emoji_label_get_type ())
#define TUBA_WIDGETS_EMOJI_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_EMOJI_LABEL, TubaWidgetsEmojiLabel))
#define TUBA_WIDGETS_EMOJI_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_EMOJI_LABEL, TubaWidgetsEmojiLabelClass))
#define TUBA_WIDGETS_IS_EMOJI_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_EMOJI_LABEL))
#define TUBA_WIDGETS_IS_EMOJI_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_EMOJI_LABEL))
#define TUBA_WIDGETS_EMOJI_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_EMOJI_LABEL, TubaWidgetsEmojiLabelClass))

typedef struct _TubaWidgetsEmojiLabel TubaWidgetsEmojiLabel;
typedef struct _TubaWidgetsEmojiLabelClass TubaWidgetsEmojiLabelClass;

#define TUBA_WIDGETS_TYPE_AVATAR (tuba_widgets_avatar_get_type ())
#define TUBA_WIDGETS_AVATAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_AVATAR, TubaWidgetsAvatar))
#define TUBA_WIDGETS_AVATAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_AVATAR, TubaWidgetsAvatarClass))
#define TUBA_WIDGETS_IS_AVATAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_AVATAR))
#define TUBA_WIDGETS_IS_AVATAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_AVATAR))
#define TUBA_WIDGETS_AVATAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_AVATAR, TubaWidgetsAvatarClass))

typedef struct _TubaWidgetsAvatar TubaWidgetsAvatar;
typedef struct _TubaWidgetsAvatarClass TubaWidgetsAvatarClass;

#define TUBA_TYPE_ENTITY (tuba_entity_get_type ())
#define TUBA_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_ENTITY, TubaEntity))
#define TUBA_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_ENTITY, TubaEntityClass))
#define TUBA_IS_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_ENTITY))
#define TUBA_IS_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_ENTITY))
#define TUBA_ENTITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_ENTITY, TubaEntityClass))

typedef struct _TubaEntity TubaEntity;
typedef struct _TubaEntityClass TubaEntityClass;

#define TUBA_API_TYPE_RELATIONSHIP (tuba_api_relationship_get_type ())
#define TUBA_API_RELATIONSHIP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_RELATIONSHIP, TubaAPIRelationship))
#define TUBA_API_RELATIONSHIP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_RELATIONSHIP, TubaAPIRelationshipClass))
#define TUBA_API_IS_RELATIONSHIP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_RELATIONSHIP))
#define TUBA_API_IS_RELATIONSHIP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_RELATIONSHIP))
#define TUBA_API_RELATIONSHIP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_RELATIONSHIP, TubaAPIRelationshipClass))

typedef struct _TubaAPIRelationship TubaAPIRelationship;
typedef struct _TubaAPIRelationshipClass TubaAPIRelationshipClass;

#define TUBA_API_TYPE_ACCOUNT (tuba_api_account_get_type ())
#define TUBA_API_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccount))
#define TUBA_API_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))
#define TUBA_API_IS_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_IS_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))

typedef struct _TubaAPIAccount TubaAPIAccount;
typedef struct _TubaAPIAccountClass TubaAPIAccountClass;

#define TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON (tuba_widgets_cover_profile_stats_button_get_type ())
#define TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON, TubaWidgetsCoverProfileStatsButton))
#define TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON, TubaWidgetsCoverProfileStatsButtonClass))
#define TUBA_WIDGETS_COVER_IS_PROFILE_STATS_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON))
#define TUBA_WIDGETS_COVER_IS_PROFILE_STATS_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON))
#define TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON, TubaWidgetsCoverProfileStatsButtonClass))

typedef struct _TubaWidgetsCoverProfileStatsButton TubaWidgetsCoverProfileStatsButton;
typedef struct _TubaWidgetsCoverProfileStatsButtonClass TubaWidgetsCoverProfileStatsButtonClass;
enum  {
	TUBA_WIDGETS_COVER_0_PROPERTY,
	TUBA_WIDGETS_COVER_RS_PROPERTY,
	TUBA_WIDGETS_COVER_COVER_BADGE_LABEL_PROPERTY,
	TUBA_WIDGETS_COVER_IS_BOT_PROPERTY,
	TUBA_WIDGETS_COVER_NUM_PROPERTIES
};
static GParamSpec* tuba_widgets_cover_properties[TUBA_WIDGETS_COVER_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define TUBA_TYPE_SETTINGS (tuba_settings_get_type ())
#define TUBA_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_SETTINGS, TubaSettings))
#define TUBA_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_SETTINGS, TubaSettingsClass))
#define TUBA_IS_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_SETTINGS))
#define TUBA_IS_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_SETTINGS))
#define TUBA_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_SETTINGS, TubaSettingsClass))

typedef struct _TubaSettings TubaSettings;
typedef struct _TubaSettingsClass TubaSettingsClass;

#define TUBA_TYPE_APPLICATION (tuba_application_get_type ())
#define TUBA_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_APPLICATION, TubaApplication))
#define TUBA_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_APPLICATION, TubaApplicationClass))
#define TUBA_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_APPLICATION))
#define TUBA_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_APPLICATION))
#define TUBA_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_APPLICATION, TubaApplicationClass))

typedef struct _TubaApplication TubaApplication;
typedef struct _TubaApplicationClass TubaApplicationClass;

#define TUBA_DIALOGS_TYPE_MAIN_WINDOW (tuba_dialogs_main_window_get_type ())
#define TUBA_DIALOGS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindow))
#define TUBA_DIALOGS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindowClass))
#define TUBA_DIALOGS_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW))
#define TUBA_DIALOGS_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_TYPE_MAIN_WINDOW))
#define TUBA_DIALOGS_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindowClass))

typedef struct _TubaDialogsMainWindow TubaDialogsMainWindow;
typedef struct _TubaDialogsMainWindowClass TubaDialogsMainWindowClass;
typedef enum  {
	TUBA_ATTACHMENT_MEDIA_TYPE_IMAGE,
	TUBA_ATTACHMENT_MEDIA_TYPE_VIDEO,
	TUBA_ATTACHMENT_MEDIA_TYPE_GIFV,
	TUBA_ATTACHMENT_MEDIA_TYPE_AUDIO,
	TUBA_ATTACHMENT_MEDIA_TYPE_UNKNOWN
} TubaAttachmentMediaType;

#define TUBA_ATTACHMENT_TYPE_MEDIA_TYPE (tuba_attachment_media_type_get_type ())

#define TUBA_VIEWS_PROFILE_TYPE_PROFILE_ACCOUNT (tuba_views_profile_profile_account_get_type ())
#define TUBA_VIEWS_PROFILE_PROFILE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_PROFILE_TYPE_PROFILE_ACCOUNT, TubaViewsProfileProfileAccount))
#define TUBA_VIEWS_PROFILE_PROFILE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_PROFILE_TYPE_PROFILE_ACCOUNT, TubaViewsProfileProfileAccountClass))
#define TUBA_VIEWS_PROFILE_IS_PROFILE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_PROFILE_TYPE_PROFILE_ACCOUNT))
#define TUBA_VIEWS_PROFILE_IS_PROFILE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_PROFILE_TYPE_PROFILE_ACCOUNT))
#define TUBA_VIEWS_PROFILE_PROFILE_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_PROFILE_TYPE_PROFILE_ACCOUNT, TubaViewsProfileProfileAccountClass))

typedef struct _TubaViewsProfileProfileAccount TubaViewsProfileProfileAccount;
typedef struct _TubaViewsProfileProfileAccountClass TubaViewsProfileProfileAccountClass;

#define TUBA_TYPE_ACCOUNT_STORE (tuba_account_store_get_type ())
#define TUBA_ACCOUNT_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_ACCOUNT_STORE, TubaAccountStore))
#define TUBA_ACCOUNT_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_ACCOUNT_STORE, TubaAccountStoreClass))
#define TUBA_IS_ACCOUNT_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_ACCOUNT_STORE))
#define TUBA_IS_ACCOUNT_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_ACCOUNT_STORE))
#define TUBA_ACCOUNT_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_ACCOUNT_STORE, TubaAccountStoreClass))

typedef struct _TubaAccountStore TubaAccountStore;
typedef struct _TubaAccountStoreClass TubaAccountStoreClass;

#define TUBA_TYPE_INSTANCE_ACCOUNT (tuba_instance_account_get_type ())
#define TUBA_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccount))
#define TUBA_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))
#define TUBA_IS_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_IS_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_INSTANCE_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))

typedef struct _TubaInstanceAccount TubaInstanceAccount;
typedef struct _TubaInstanceAccountClass TubaInstanceAccountClass;

#define TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS (tuba_api_instance_v2_api_versions_get_type ())
#define TUBA_API_INSTANCE_V2_API_VERSIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS, TubaAPIInstanceV2APIVersions))
#define TUBA_API_INSTANCE_V2_API_VERSIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS, TubaAPIInstanceV2APIVersionsClass))
#define TUBA_API_INSTANCE_V2_IS_API_VERSIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS))
#define TUBA_API_INSTANCE_V2_IS_API_VERSIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS))
#define TUBA_API_INSTANCE_V2_API_VERSIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS, TubaAPIInstanceV2APIVersionsClass))

typedef struct _TubaAPIInstanceV2APIVersions TubaAPIInstanceV2APIVersions;
typedef struct _TubaAPIInstanceV2APIVersionsClass TubaAPIInstanceV2APIVersionsClass;
typedef enum  {
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_NONE = 1 << 0,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_QUOTE = 1 << 1,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_EMOJI_REACTIONS = 1 << 2,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_BUBBLE = 1 << 3,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_GROUP_NOTIFICATIONS = 1 << 4,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_FEATURE_TAGS = 1 << 5,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_ENDORSE_USERS = 1 << 6,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_MUTUALS = 1 << 7,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_TRANSLATION = 1 << 8,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_ICESHRIMP = 1 << 9,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_GLITCH = 1 << 10,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_LOCAL_ONLY = 1 << 11,
	TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_GOTOSOCIAL = 1 << 12
} TubaInstanceAccountInstanceFeatures;

#define TUBA_INSTANCE_ACCOUNT_TYPE_INSTANCE_FEATURES (tuba_instance_account_instance_features_get_type ())

#define TUBA_TYPE_REQUEST_V2 (tuba_request_v2_get_type ())
#define TUBA_REQUEST_V2(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_REQUEST_V2, TubaRequestV2))
#define TUBA_REQUEST_V2_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_REQUEST_V2, TubaRequestV2Class))
#define TUBA_IS_REQUEST_V2(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_REQUEST_V2))
#define TUBA_IS_REQUEST_V2_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_REQUEST_V2))
#define TUBA_REQUEST_V2_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_REQUEST_V2, TubaRequestV2Class))

typedef struct _TubaRequestV2 TubaRequestV2;
typedef struct _TubaRequestV2Class TubaRequestV2Class;
typedef enum  {
	TUBA_REQUEST_V2_METHOD_GET,
	TUBA_REQUEST_V2_METHOD_POST,
	TUBA_REQUEST_V2_METHOD_PUT,
	TUBA_REQUEST_V2_METHOD_DELETE,
	TUBA_REQUEST_V2_METHOD_PATCH
} TubaRequestV2Method;

#define TUBA_REQUEST_V2_TYPE_METHOD (tuba_request_v2_method_get_type ())

#define TUBA_TYPE_OOPSIE (tuba_oopsie_get_type ())

#define TUBA_TYPE_NETWORK (tuba_network_get_type ())
#define TUBA_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_NETWORK, TubaNetwork))
#define TUBA_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_NETWORK, TubaNetworkClass))
#define TUBA_IS_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_NETWORK))
#define TUBA_IS_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_NETWORK))
#define TUBA_NETWORK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_NETWORK, TubaNetworkClass))

typedef struct _TubaNetwork TubaNetwork;
typedef struct _TubaNetworkClass TubaNetworkClass;
#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))

#define TUBA_API_TYPE_FAMILIAR_FOLLOWERS (tuba_api_familiar_followers_get_type ())
#define TUBA_API_FAMILIAR_FOLLOWERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_FAMILIAR_FOLLOWERS, TubaAPIFamiliarFollowers))
#define TUBA_API_FAMILIAR_FOLLOWERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_FAMILIAR_FOLLOWERS, TubaAPIFamiliarFollowersClass))
#define TUBA_API_IS_FAMILIAR_FOLLOWERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_FAMILIAR_FOLLOWERS))
#define TUBA_API_IS_FAMILIAR_FOLLOWERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_FAMILIAR_FOLLOWERS))
#define TUBA_API_FAMILIAR_FOLLOWERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_FAMILIAR_FOLLOWERS, TubaAPIFamiliarFollowersClass))

typedef struct _TubaAPIFamiliarFollowers TubaAPIFamiliarFollowers;
typedef struct _TubaAPIFamiliarFollowersClass TubaAPIFamiliarFollowersClass;

#define TUBA_WIDGETS_COVER_TYPE_MUTUALS_BUTTON_CONTENT (tuba_widgets_cover_mutuals_button_content_get_type ())
#define TUBA_WIDGETS_COVER_MUTUALS_BUTTON_CONTENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_COVER_TYPE_MUTUALS_BUTTON_CONTENT, TubaWidgetsCoverMutualsButtonContent))
#define TUBA_WIDGETS_COVER_MUTUALS_BUTTON_CONTENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_COVER_TYPE_MUTUALS_BUTTON_CONTENT, TubaWidgetsCoverMutualsButtonContentClass))
#define TUBA_WIDGETS_COVER_IS_MUTUALS_BUTTON_CONTENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_COVER_TYPE_MUTUALS_BUTTON_CONTENT))
#define TUBA_WIDGETS_COVER_IS_MUTUALS_BUTTON_CONTENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_COVER_TYPE_MUTUALS_BUTTON_CONTENT))
#define TUBA_WIDGETS_COVER_MUTUALS_BUTTON_CONTENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_COVER_TYPE_MUTUALS_BUTTON_CONTENT, TubaWidgetsCoverMutualsButtonContentClass))

typedef struct _TubaWidgetsCoverMutualsButtonContent TubaWidgetsCoverMutualsButtonContent;
typedef struct _TubaWidgetsCoverMutualsButtonContentClass TubaWidgetsCoverMutualsButtonContentClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _TubaWidgetsCoverPopulateMutualsData TubaWidgetsCoverPopulateMutualsData;

#define TUBA_WIDGETS_TYPE_ACCOUNT_ROW (tuba_widgets_account_row_get_type ())
#define TUBA_WIDGETS_ACCOUNT_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_ACCOUNT_ROW, TubaWidgetsAccountRow))
#define TUBA_WIDGETS_ACCOUNT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_ACCOUNT_ROW, TubaWidgetsAccountRowClass))
#define TUBA_WIDGETS_IS_ACCOUNT_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_ACCOUNT_ROW))
#define TUBA_WIDGETS_IS_ACCOUNT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_ACCOUNT_ROW))
#define TUBA_WIDGETS_ACCOUNT_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_ACCOUNT_ROW, TubaWidgetsAccountRowClass))

typedef struct _TubaWidgetsAccountRow TubaWidgetsAccountRow;
typedef struct _TubaWidgetsAccountRowClass TubaWidgetsAccountRowClass;

#define TUBA_API_TYPE_ACCOUNT_ROLE (tuba_api_account_role_get_type ())
#define TUBA_API_ACCOUNT_ROLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_ACCOUNT_ROLE, TubaAPIAccountRole))
#define TUBA_API_ACCOUNT_ROLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_ACCOUNT_ROLE, TubaAPIAccountRoleClass))
#define TUBA_API_IS_ACCOUNT_ROLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_ACCOUNT_ROLE))
#define TUBA_API_IS_ACCOUNT_ROLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_ACCOUNT_ROLE))
#define TUBA_API_ACCOUNT_ROLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_ACCOUNT_ROLE, TubaAPIAccountRoleClass))

typedef struct _TubaAPIAccountRole TubaAPIAccountRole;
typedef struct _TubaAPIAccountRoleClass TubaAPIAccountRoleClass;
typedef void (*TubaHelperImageOnItemChangedFn) (GdkPaintable* data, gpointer user_data);

#define TUBA_API_TYPE_ACCOUNT_FIELD (tuba_api_account_field_get_type ())
#define TUBA_API_ACCOUNT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_ACCOUNT_FIELD, TubaAPIAccountField))
#define TUBA_API_ACCOUNT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_ACCOUNT_FIELD, TubaAPIAccountFieldClass))
#define TUBA_API_IS_ACCOUNT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_ACCOUNT_FIELD))
#define TUBA_API_IS_ACCOUNT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_ACCOUNT_FIELD))
#define TUBA_API_ACCOUNT_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_ACCOUNT_FIELD, TubaAPIAccountFieldClass))

typedef struct _TubaAPIAccountField TubaAPIAccountField;
typedef struct _TubaAPIAccountFieldClass TubaAPIAccountFieldClass;

#define TUBA_WIDGETS_TYPE_RICH_LABEL (tuba_widgets_rich_label_get_type ())
#define TUBA_WIDGETS_RICH_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabel))
#define TUBA_WIDGETS_RICH_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabelClass))
#define TUBA_WIDGETS_IS_RICH_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_RICH_LABEL))
#define TUBA_WIDGETS_IS_RICH_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_RICH_LABEL))
#define TUBA_WIDGETS_RICH_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabelClass))

typedef struct _TubaWidgetsRichLabel TubaWidgetsRichLabel;
typedef struct _TubaWidgetsRichLabelClass TubaWidgetsRichLabelClass;
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
#define _g_time_zone_unref0(var) ((var == NULL) ? NULL : (var = (g_time_zone_unref (var), NULL)))
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))

#define TUBA_TYPE_WIDGETIZABLE (tuba_widgetizable_get_type ())
#define TUBA_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizable))
#define TUBA_IS_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_WIDGETIZABLE))
#define TUBA_WIDGETIZABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizableIface))

typedef struct _TubaWidgetizable TubaWidgetizable;
typedef struct _TubaWidgetizableIface TubaWidgetizableIface;
typedef struct _TubaWidgetsCoverMutualsButtonContentPrivate TubaWidgetsCoverMutualsButtonContentPrivate;
enum  {
	TUBA_WIDGETS_COVER_MUTUALS_BUTTON_CONTENT_0_PROPERTY,
	TUBA_WIDGETS_COVER_MUTUALS_BUTTON_CONTENT_NUM_PROPERTIES
};
static GParamSpec* tuba_widgets_cover_mutuals_button_content_properties[TUBA_WIDGETS_COVER_MUTUALS_BUTTON_CONTENT_NUM_PROPERTIES];
typedef struct _Block96Data Block96Data;
typedef struct _Block97Data Block97Data;
typedef struct _Block98Data Block98Data;
typedef struct _TubaWidgetsCoverProfileStatsButtonPrivate TubaWidgetsCoverProfileStatsButtonPrivate;
enum  {
	TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_0_PROPERTY,
	TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_LABEL_TEMPLATE_PROPERTY,
	TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_AMOUNT_PROPERTY,
	TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_NUM_PROPERTIES
};
static GParamSpec* tuba_widgets_cover_profile_stats_button_properties[TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_NUM_PROPERTIES];
enum  {
	TUBA_WIDGETS_COVER_RS_INVALIDATED_SIGNAL,
	TUBA_WIDGETS_COVER_TIMELINE_CHANGE_SIGNAL,
	TUBA_WIDGETS_COVER_ARIA_UPDATED_SIGNAL,
	TUBA_WIDGETS_COVER_EDIT_NOTE_SIGNAL,
	TUBA_WIDGETS_COVER_AVATAR_CLICKED_SIGNAL,
	TUBA_WIDGETS_COVER_NUM_SIGNALS
};
static guint tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_NUM_SIGNALS] = {0};

struct _TubaWidgetsCover {
	GtkBox parent_instance;
	TubaWidgetsCoverPrivate * priv;
	TubaWidgetsMarkupView* note;
	TubaWidgetsRelationshipButton* rsbtn;
};

struct _TubaWidgetsCoverClass {
	GtkBoxClass parent_class;
};

struct _TubaWidgetsCoverPrivate {
	AdwWrapBox* roles;
	TubaWidgetsBackground* background;
	GtkLabel* cover_badge;
	GtkImage* cover_bot_badge;
	GtkBox* cover_badge_box;
	GtkListBox* info;
	TubaWidgetsEmojiLabel* display_name;
	GtkLabel* handle;
	TubaWidgetsAvatar* avatar;
	GtkLabel* our_note;
	GtkButton* moved_btn;
	GtkMenuButton* mutuals_button;
	AdwActionRow* note_row;
	GtkImage* supporter_icon;
	TubaAPIRelationship* _rs;
	gchar* _avi_url;
	gchar* _header_url;
	TubaAPIAccount* moved_to_account;
	gboolean _mini;
	GtkFlowBox* fields_box;
	GtkListBoxRow* fields_box_row;
	gint total_fields;
	gchar* stats_string;
	gchar* profile_id;
	GeeArrayList* mutual_accounts;
	GtkListBox* mutuals_listbox;
	TubaWidgetsCoverProfileStatsButton* posts_btn;
	TubaWidgetsCoverProfileStatsButton* followers_btn;
	TubaWidgetsCoverProfileStatsButton* following_btn;
};

typedef enum  {
	TUBA_OOPSIE_USER,
	TUBA_OOPSIE_PARSING,
	TUBA_OOPSIE_INSTANCE,
	TUBA_OOPSIE_INTERNAL,
	TUBA_OOPSIE_HTTP_401 = 401,
	TUBA_OOPSIE_HTTP_403 = 403,
	TUBA_OOPSIE_HTTP_404 = 404,
	TUBA_OOPSIE_HTTP_410 = 410,
	TUBA_OOPSIE_HTTP_422 = 422,
	TUBA_OOPSIE_HTTP_429 = 429,
	TUBA_OOPSIE_HTTP_500 = 500,
	TUBA_OOPSIE_HTTP_503 = 503
} TubaOopsie;
#define TUBA_OOPSIE tuba_oopsie_quark ()

struct _TubaWidgetsCoverPopulateMutualsData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaWidgetsCover* self;
	GtkMenuButton* _tmp0_;
	TubaRequestV2* req;
	TubaAccountStore* _tmp1_;
	TubaInstanceAccount* _tmp2_;
	TubaInstanceAccount* _tmp3_;
	TubaInstanceAccount* _tmp4_;
	TubaRequestV2* _tmp5_;
	TubaRequestV2* _tmp6_;
	const gchar* _tmp7_;
	GInputStream* in_stream;
	TubaRequestV2* _tmp8_;
	GInputStream* _tmp9_;
	JsonParser* parser;
	GInputStream* _tmp10_;
	JsonParser* _tmp11_;
	JsonNode* node;
	TubaNetwork* _tmp12_;
	JsonParser* _tmp13_;
	JsonNode* _tmp14_;
	JsonNode* _tmp15_;
	GValue res_accounts;
	JsonNode* _tmp16_;
	GValue _tmp17_;
	GeeArrayList* res_mutual_accounts;
	GValue _tmp18_;
	GeeArrayList* _tmp19_;
	GeeArrayList* _tmp20_;
	gint _tmp21_;
	gint _tmp22_;
	GeeArrayList* _tmp23_;
	gpointer _tmp24_;
	TubaAPIFamiliarFollowers* _tmp25_;
	GeeArrayList* _tmp26_;
	GeeArrayList* _tmp27_;
	GeeArrayList* _tmp28_;
	GeeArrayList* _tmp29_;
	gint _tmp30_;
	gint _tmp31_;
	GtkMenuButton* _tmp32_;
	GtkMenuButton* _tmp33_;
	GeeArrayList* _tmp34_;
	TubaWidgetsCoverMutualsButtonContent* _tmp35_;
	TubaWidgetsCoverMutualsButtonContent* _tmp36_;
	gchar* _tmp37_;
	gchar** _tmp38_;
	GtkListBox* _tmp39_;
	GtkMenuButton* _tmp40_;
	GtkListBox* _tmp41_;
	GtkWidget* _tmp42_;
	GtkScrolledWindow* _tmp43_;
	GtkPopover* _tmp44_;
	GtkPopover* _tmp45_;
	GtkMenuButton* _tmp46_;
	GtkPopover* _tmp47_;
	GtkPopover* _tmp48_;
	GtkMenuButton* _tmp49_;
	GError* e;
	GError* _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	GError* _tmp53_;
	const gchar* _tmp54_;
	const gchar* _tmp55_;
	gchar* _tmp56_;
	gchar* _tmp57_;
	GError* _inner_error0_;
};

struct _TubaWidgetizableIface {
	GTypeInterface parent_iface;
	GtkWidget* (*to_widget) (TubaWidgetizable* self);
	void (*open) (TubaWidgetizable* self);
	void (*resolve_open) (TubaWidgetizable* self, TubaInstanceAccount* account);
};

struct _TubaWidgetsCoverMutualsButtonContent {
	GtkBox parent_instance;
	TubaWidgetsCoverMutualsButtonContentPrivate * priv;
};

struct _TubaWidgetsCoverMutualsButtonContentClass {
	GtkBoxClass parent_class;
};

struct _TubaWidgetsCoverMutualsButtonContentPrivate {
	GtkBox* avi_box;
	TubaWidgetsEmojiLabel* emoji_label;
};

struct _Block96Data {
	int _ref_count_;
	TubaWidgetsCoverMutualsButtonContent* self;
	GeeHashMap* total_custom_emojis;
};

struct _Block97Data {
	int _ref_count_;
	Block96Data * _data96_;
	gint i;
};

struct _Block98Data {
	int _ref_count_;
	Block97Data * _data97_;
	gchar* display_name;
};

struct _TubaWidgetsCoverProfileStatsButton {
	GtkButton parent_instance;
	TubaWidgetsCoverProfileStatsButtonPrivate * priv;
};

struct _TubaWidgetsCoverProfileStatsButtonClass {
	GtkButtonClass parent_class;
};

struct _TubaWidgetsCoverProfileStatsButtonPrivate {
	gchar* _label_template;
};

static gint TubaWidgetsCover_private_offset;
static gpointer tuba_widgets_cover_parent_class = NULL;
VALA_EXTERN TubaSettings* tuba_settings;
VALA_EXTERN TubaApplication* tuba_app;
VALA_EXTERN TubaAccountStore* tuba_accounts;
VALA_EXTERN TubaNetwork* tuba_network;
static gint TubaWidgetsCoverMutualsButtonContent_private_offset;
static gpointer tuba_widgets_cover_mutuals_button_content_parent_class = NULL;
static gint TubaWidgetsCoverProfileStatsButton_private_offset;
static gpointer tuba_widgets_cover_profile_stats_button_parent_class = NULL;

VALA_EXTERN GType tuba_widgets_cover_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsCover, g_object_unref)
VALA_EXTERN GType tuba_widgets_markup_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsMarkupView, g_object_unref)
VALA_EXTERN GType tuba_widgets_relationship_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsRelationshipButton, g_object_unref)
VALA_EXTERN GType tuba_widgets_background_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsBackground, g_object_unref)
VALA_EXTERN GType tuba_widgets_label_with_widgets_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsLabelWithWidgets, g_object_unref)
VALA_EXTERN GType tuba_widgets_emoji_label_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsEmojiLabel, g_object_unref)
VALA_EXTERN GType tuba_widgets_avatar_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsAvatar, g_object_unref)
VALA_EXTERN GType tuba_entity_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaEntity, g_object_unref)
VALA_EXTERN GType tuba_api_relationship_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIRelationship, g_object_unref)
VALA_EXTERN GType tuba_api_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAccount, g_object_unref)
VALA_EXTERN GType tuba_widgets_cover_profile_stats_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsCoverProfileStatsButton, g_object_unref)
static void tuba_widgets_cover_toggle_scale_emoji_hover (TubaWidgetsCover* self);
VALA_EXTERN void tuba_toggle_css (GtkWidget* wdg,
                      gboolean state,
                      const gchar* style);
VALA_EXTERN GType tuba_settings_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaSettings, g_object_unref)
VALA_EXTERN gboolean tuba_settings_get_scale_emoji_hover (TubaSettings* self);
static void tuba_widgets_cover_update_cover_badge (TubaWidgetsCover* self);
VALA_EXTERN gboolean tuba_widgets_cover_get_is_bot (TubaWidgetsCover* self);
VALA_EXTERN void tuba_widgets_cover_update_aria (TubaWidgetsCover* self);
VALA_EXTERN const gchar* tuba_widgets_emoji_label_get_content (TubaWidgetsEmojiLabel* self);
VALA_EXTERN const gchar* tuba_widgets_cover_get_cover_badge_label (TubaWidgetsCover* self);
static void tuba_widgets_cover_open_header_in_media_viewer (TubaWidgetsCover* self);
VALA_EXTERN GType tuba_application_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaApplication, g_object_unref)
VALA_EXTERN GType tuba_dialogs_main_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsMainWindow, g_object_unref)
VALA_EXTERN TubaDialogsMainWindow* tuba_application_get_main_window (TubaApplication* self);
VALA_EXTERN GType tuba_attachment_media_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void tuba_dialogs_main_window_show_media_viewer (TubaDialogsMainWindow* self,
                                                 const gchar* url,
                                                 TubaAttachmentMediaType media_type,
                                                 GdkPaintable* preview,
                                                 GtkWidget* source_widget,
                                                 gboolean as_is,
                                                 const gchar* alt_text,
                                                 const gchar* user_friendly_url,
                                                 const gchar* blurhash,
                                                 gboolean stream,
                                                 gboolean* load_and_scroll,
                                                 gboolean reveal_media_viewer);
static const gchar* tuba_widgets_cover_get_header_url (TubaWidgetsCover* self);
VALA_EXTERN GdkPaintable* tuba_widgets_background_get_paintable (TubaWidgetsBackground* self);
static void tuba_widgets_cover_open_pfp_in_media_viewer (TubaWidgetsCover* self);
static const gchar* tuba_widgets_cover_get_avi_url (TubaWidgetsCover* self);
VALA_EXTERN GdkPaintable* tuba_widgets_avatar_get_custom_image (TubaWidgetsAvatar* self);
static void tuba_widgets_cover_on_avatar_clicked (TubaWidgetsCover* self);
VALA_EXTERN GType tuba_views_profile_profile_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsProfileProfileAccount, g_object_unref)
VALA_EXTERN TubaWidgetsCover* tuba_widgets_cover_new (TubaViewsProfileProfileAccount* profile,
                                          gboolean mini);
VALA_EXTERN TubaWidgetsCover* tuba_widgets_cover_construct (GType object_type,
                                                TubaViewsProfileProfileAccount* profile,
                                                gboolean mini);
VALA_EXTERN TubaAPIAccount* tuba_views_profile_profile_account_get_account (TubaViewsProfileProfileAccount* self);
VALA_EXTERN const gchar* tuba_api_account_get_id (TubaAPIAccount* self);
static void _tuba_widgets_cover_toggle_scale_emoji_hover_g_object_notify (GObject* _sender,
                                                                   GParamSpec* pspec,
                                                                   gpointer self);
VALA_EXTERN GType tuba_account_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAccountStore, g_object_unref)
VALA_EXTERN GType tuba_instance_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaInstanceAccount, g_object_unref)
VALA_EXTERN TubaInstanceAccount* tuba_account_store_get_active (TubaAccountStore* self);
static void tuba_widgets_cover_on_moved_btn_clicked (TubaWidgetsCover* self);
static void _tuba_widgets_cover_on_moved_btn_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                  gpointer self);
VALA_EXTERN GType tuba_api_instance_v2_api_versions_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIInstanceV2APIVersions, g_object_unref)
VALA_EXTERN TubaAPIInstanceV2APIVersions* tuba_instance_account_get_tuba_api_versions (TubaInstanceAccount* self);
VALA_EXTERN gint8 tuba_api_instance_v2_api_versions_get_mastodon (TubaAPIInstanceV2APIVersions* self);
VALA_EXTERN GType tuba_instance_account_instance_features_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaInstanceAccountInstanceFeatures tuba_instance_account_get_tuba_instance_features (TubaInstanceAccount* self);
static void tuba_widgets_cover_populate_mutuals (TubaWidgetsCover* self,
                                          GAsyncReadyCallback _callback_,
                                          gpointer _user_data_);
static void tuba_widgets_cover_populate_mutuals_finish (TubaWidgetsCover* self,
                                                 GAsyncResult* _res_);
VALA_EXTERN gchar* tuba_api_account_get_full_handle (TubaAPIAccount* self);
VALA_EXTERN gchar** tuba_settings_get_contributors (TubaSettings* self,
                                        gint* result_length1);
static gboolean _vala_string_array_contains (gchar* * stack,
                                      gssize stack_length,
                                      const gchar* needle);
VALA_EXTERN TubaAPIRelationship* tuba_views_profile_profile_account_get_rs (TubaViewsProfileProfileAccount* self);
static void tuba_widgets_cover_on_rs_invalidation (TubaWidgetsCover* self,
                                            TubaAPIRelationship* rs);
static void _tuba_widgets_cover_on_rs_invalidation_tuba_api_relationship_invalidated (TubaAPIRelationship* _sender,
                                                                               gpointer self);
VALA_EXTERN gchar* tuba_api_account_get_handle (TubaAPIAccount* self);
VALA_EXTERN void tuba_widgets_relationship_button_set_handle (TubaWidgetsRelationshipButton* self,
                                                  const gchar* value);
VALA_EXTERN void tuba_widgets_relationship_button_set_rs (TubaWidgetsRelationshipButton* self,
                                              TubaAPIRelationship* value);
static void _tuba_widgets_cover_on_avatar_clicked_gtk_button_clicked (GtkButton* _sender,
                                                               gpointer self);
static void _tuba_widgets_cover_open_pfp_in_media_viewer_gtk_button_clicked (GtkButton* _sender,
                                                                      gpointer self);
VALA_EXTERN gboolean tuba_application_get_is_mobile (TubaApplication* self);
VALA_EXTERN void tuba_widgets_cover_build_profile_stats (TubaWidgetsCover* self,
                                             TubaAPIAccount* account);
VALA_EXTERN gint64 tuba_api_account_get_statuses_count (TubaAPIAccount* self);
VALA_EXTERN gchar* tuba_utils_units_shorten (gint64 unit);
static void _vala_array_add142 (gchar** * array,
                         gint* length,
                         gint* size,
                         gchar* value);
VALA_EXTERN gint64 tuba_api_account_get_followers_count (TubaAPIAccount* self);
static void _vala_array_add143 (gchar** * array,
                         gint* length,
                         gint* size,
                         gchar* value);
VALA_EXTERN gint64 tuba_api_account_get_following_count (TubaAPIAccount* self);
static void _vala_array_add144 (gchar** * array,
                         gint* length,
                         gint* size,
                         gchar* value);
VALA_EXTERN void tuba_widgets_cover_update_cover_from_profile (TubaWidgetsCover* self,
                                                   TubaAPIAccount* profile);
static void _tuba_widgets_cover_open_header_in_media_viewer_gtk_button_clicked (GtkButton* _sender,
                                                                         gpointer self);
static void tuba_widgets_cover_update_fields_max_columns (TubaWidgetsCover* self);
static void _tuba_widgets_cover_update_fields_max_columns_g_object_notify (GObject* _sender,
                                                                    GParamSpec* pspec,
                                                                    gpointer self);
static void tuba_widgets_cover_populate_mutuals_data_free (gpointer _data);
static gboolean tuba_widgets_cover_populate_mutuals_co (TubaWidgetsCoverPopulateMutualsData* _data_);
VALA_EXTERN GType tuba_request_v2_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaRequestV2, g_object_unref)
VALA_EXTERN GType tuba_request_v2_method_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaRequestV2* tuba_request_v2_new (const gchar* url,
                                    TubaRequestV2Method method);
VALA_EXTERN TubaRequestV2* tuba_request_v2_construct (GType object_type,
                                          const gchar* url,
                                          TubaRequestV2Method method);
VALA_EXTERN void tuba_request_v2_set_account (TubaRequestV2* self,
                                  TubaInstanceAccount* value);
VALA_EXTERN void tuba_request_v2_add_parameter (TubaRequestV2* self,
                                    const gchar* key,
                                    const gchar* value);
VALA_EXTERN void tuba_request_v2_exec (TubaRequestV2* self,
                           GAsyncReadyCallback _callback_,
                           gpointer _user_data_);
VALA_EXTERN GQuark tuba_oopsie_quark (void);
VALA_EXTERN GType tuba_oopsie_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GInputStream* tuba_request_v2_exec_finish (TubaRequestV2* self,
                                           GAsyncResult* _res_,
                                           SoupMessageHeaders** response_headers,
                                           GError** error);
static void tuba_widgets_cover_populate_mutuals_ready (GObject* source_object,
                                                GAsyncResult* _res_,
                                                gpointer _user_data_);
VALA_EXTERN void tuba_network_get_parser_from_inputstream_async (GInputStream* in_stream,
                                                     GCancellable* cancellable,
                                                     GAsyncReadyCallback _callback_,
                                                     gpointer _user_data_);
VALA_EXTERN JsonParser* tuba_network_get_parser_from_inputstream_finish (GAsyncResult* _res_,
                                                             GError** error);
VALA_EXTERN GType tuba_network_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaNetwork, g_object_unref)
VALA_EXTERN JsonNode* tuba_network_parse_node (TubaNetwork* self,
                                   JsonParser* parser);
static void _vala_JsonNode_free (JsonNode* self);
VALA_EXTERN gboolean tuba_entity_des_list (GValue* val,
                               JsonNode* node,
                               GType type);
VALA_EXTERN GType tuba_api_familiar_followers_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIFamiliarFollowers, g_object_unref)
VALA_EXTERN GeeArrayList* tuba_api_familiar_followers_get_accounts (TubaAPIFamiliarFollowers* self);
VALA_EXTERN TubaWidgetsCoverMutualsButtonContent* tuba_widgets_cover_mutuals_button_content_new (GeeArrayList* mutual_accounts);
VALA_EXTERN TubaWidgetsCoverMutualsButtonContent* tuba_widgets_cover_mutuals_button_content_construct (GType object_type,
                                                                                           GeeArrayList* mutual_accounts);
VALA_EXTERN GType tuba_widgets_cover_mutuals_button_content_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsCoverMutualsButtonContent, g_object_unref)
static void tuba_widgets_cover_on_mutuals_popover (TubaWidgetsCover* self);
static void _tuba_widgets_cover_on_mutuals_popover_g_object_notify (GObject* _sender,
                                                             GParamSpec* pspec,
                                                             gpointer self);
VALA_EXTERN TubaWidgetsAccountRow* tuba_widgets_account_row_new (TubaAPIAccount* account,
                                                     gboolean open_only);
VALA_EXTERN TubaWidgetsAccountRow* tuba_widgets_account_row_construct (GType object_type,
                                                           TubaAPIAccount* account,
                                                           gboolean open_only);
VALA_EXTERN GType tuba_widgets_account_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsAccountRow, g_object_unref)
VALA_EXTERN const gchar* tuba_api_account_get_display_name (TubaAPIAccount* self);
VALA_EXTERN GeeHashMap* tuba_api_account_get_emojis_map (TubaAPIAccount* self);
VALA_EXTERN void tuba_widgets_emoji_label_set_instance_emojis (TubaWidgetsEmojiLabel* self,
                                                   GeeHashMap* value);
VALA_EXTERN void tuba_widgets_emoji_label_set_content (TubaWidgetsEmojiLabel* self,
                                           const gchar* value);
VALA_EXTERN const gchar* tuba_api_account_get_avatar (TubaAPIAccount* self);
static void tuba_widgets_cover_set_avi_url (TubaWidgetsCover* self,
                                     const gchar* value);
VALA_EXTERN void tuba_widgets_avatar_set_account (TubaWidgetsAvatar* self,
                                      TubaAPIAccount* value);
VALA_EXTERN const gchar* tuba_api_account_get_avatar_description (TubaAPIAccount* self);
VALA_EXTERN void tuba_widgets_avatar_set_alternative_text (TubaWidgetsAvatar* self,
                                               const gchar* value);
VALA_EXTERN const gchar* tuba_widgets_markup_view_get_content (TubaWidgetsMarkupView* self);
VALA_EXTERN const gchar* tuba_api_account_get_note (TubaAPIAccount* self);
VALA_EXTERN void tuba_widgets_markup_view_set_instance_emojis (TubaWidgetsMarkupView* self,
                                                   GeeHashMap* value);
VALA_EXTERN void tuba_widgets_markup_view_set_content (TubaWidgetsMarkupView* self,
                                           const gchar* value);
VALA_EXTERN gboolean tuba_api_account_get_bot (TubaAPIAccount* self);
VALA_EXTERN GType tuba_api_account_role_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAccountRole, g_object_unref)
VALA_EXTERN GeeArrayList* tuba_api_account_get_roles (TubaAPIAccount* self);
VALA_EXTERN GtkWidget* tuba_api_account_role_to_widget (TubaAPIAccountRole* self);
VALA_EXTERN const gchar* tuba_api_account_get_header (TubaAPIAccount* self);
static void tuba_widgets_cover_set_header_url (TubaWidgetsCover* self,
                                        const gchar* value);
VALA_EXTERN void tuba_widgets_background_set_paintable (TubaWidgetsBackground* self,
                                            GdkPaintable* value);
VALA_EXTERN void tuba_helper_image_request_paintable (const gchar* url,
                                          const gchar* blurhash,
                                          gboolean disable_cache,
                                          TubaHelperImageOnItemChangedFn cb,
                                          gpointer cb_target,
                                          GDestroyNotify cb_target_destroy_notify,
                                          GCancellable* cancellable);
static void tuba_widgets_cover_on_cache_response (TubaWidgetsCover* self,
                                           GdkPaintable* data);
static void _tuba_widgets_cover_on_cache_response_tuba_helper_image_on_item_changed_fn (GdkPaintable* data,
                                                                                 gpointer self);
VALA_EXTERN const gchar* tuba_api_account_get_header_description (TubaAPIAccount* self);
VALA_EXTERN void tuba_widgets_background_set_alternative_text (TubaWidgetsBackground* self,
                                                   const gchar* value);
VALA_EXTERN gboolean tuba_api_account_get_memorial (TubaAPIAccount* self);
VALA_EXTERN gboolean tuba_api_account_get_suspended (TubaAPIAccount* self);
VALA_EXTERN TubaAPIAccount* tuba_api_account_get_moved (TubaAPIAccount* self);
VALA_EXTERN GType tuba_api_account_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAccountField, g_object_unref)
VALA_EXTERN GeeArrayList* tuba_api_account_get_fields (TubaAPIAccount* self);
VALA_EXTERN const gchar* tuba_api_account_get_created_at (TubaAPIAccount* self);
VALA_EXTERN GType tuba_widgets_rich_label_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsRichLabel, g_object_unref)
VALA_EXTERN gchar* tuba_utils_htmlx_simplify (const gchar* str);
VALA_EXTERN const gchar* tuba_api_account_field_get_val (TubaAPIAccountField* self);
VALA_EXTERN TubaWidgetsRichLabel* tuba_widgets_rich_label_new_with_emojis (const gchar* text,
                                                               GeeHashMap* instance_emojis);
VALA_EXTERN TubaWidgetsRichLabel* tuba_widgets_rich_label_construct_with_emojis (GType object_type,
                                                                     const gchar* text,
                                                                     GeeHashMap* instance_emojis);
VALA_EXTERN void tuba_widgets_rich_label_set_use_markup (TubaWidgetsRichLabel* self,
                                             gboolean value);
VALA_EXTERN void tuba_widgets_rich_label_set_xalign (TubaWidgetsRichLabel* self,
                                         gfloat value);
VALA_EXTERN void tuba_widgets_rich_label_set_selectable (TubaWidgetsRichLabel* self,
                                             gboolean value);
VALA_EXTERN TubaWidgetsEmojiLabel* tuba_widgets_emoji_label_new (const gchar* text,
                                                     GeeHashMap* emojis);
VALA_EXTERN TubaWidgetsEmojiLabel* tuba_widgets_emoji_label_construct (GType object_type,
                                                           const gchar* text,
                                                           GeeHashMap* emojis);
VALA_EXTERN void tuba_widgets_label_with_widgets_set_use_markup (TubaWidgetsLabelWithWidgets* self,
                                                     gboolean value);
VALA_EXTERN const gchar* tuba_api_account_field_get_name (TubaAPIAccountField* self);
VALA_EXTERN const gchar* tuba_api_account_field_get_verified_at (TubaAPIAccountField* self);
VALA_EXTERN void tuba_widgets_cover_profile_stats_button_set_label_template (TubaWidgetsCoverProfileStatsButton* self,
                                                                 const gchar* value);
VALA_EXTERN void tuba_widgets_cover_profile_stats_button_set_amount (TubaWidgetsCoverProfileStatsButton* self,
                                                         gint64 value);
VALA_EXTERN gchar* tuba_api_relationship_to_string (TubaAPIRelationship* self);
VALA_EXTERN void tuba_widgets_cover_set_cover_badge_label (TubaWidgetsCover* self,
                                               const gchar* value);
VALA_EXTERN const gchar* tuba_api_relationship_get_note (TubaAPIRelationship* self);
VALA_EXTERN GType tuba_widgetizable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetizable, g_object_unref)
VALA_EXTERN void tuba_widgetizable_open (TubaWidgetizable* self);
VALA_EXTERN TubaWidgetsCoverProfileStatsButton* tuba_widgets_cover_profile_stats_button_new (void);
VALA_EXTERN TubaWidgetsCoverProfileStatsButton* tuba_widgets_cover_profile_stats_button_construct (GType object_type);
static void __lambda145_ (TubaWidgetsCover* self);
static void ___lambda145__gtk_button_clicked (GtkButton* _sender,
                                       gpointer self);
static void __lambda146_ (TubaWidgetsCover* self);
static void ___lambda146__gtk_button_clicked (GtkButton* _sender,
                                       gpointer self);
static void __lambda147_ (TubaWidgetsCover* self);
static void ___lambda147__gtk_button_clicked (GtkButton* _sender,
                                       gpointer self);
static void tuba_widgets_cover_on_edit_note (TubaWidgetsCover* self);
static void _tuba_widgets_cover_on_edit_note_gtk_button_clicked (GtkButton* _sender,
                                                          gpointer self);
VALA_EXTERN TubaAPIRelationship* tuba_widgets_cover_get_rs (TubaWidgetsCover* self);
VALA_EXTERN void tuba_widgets_cover_set_rs (TubaWidgetsCover* self,
                                TubaAPIRelationship* value);
VALA_EXTERN void tuba_widgets_cover_set_is_bot (TubaWidgetsCover* self,
                                    gboolean value);
static Block96Data* block96_data_ref (Block96Data* _data96_);
static void block96_data_unref (void * _userdata_);
static Block97Data* block97_data_ref (Block97Data* _data97_);
static void block97_data_unref (void * _userdata_);
static Block98Data* block98_data_ref (Block98Data* _data98_);
static void block98_data_unref (void * _userdata_);
static gboolean ______lambda144_ (Block98Data* _data98_,
                           GeeMapEntry* e);
static gboolean _______lambda144__gee_forall_func (gpointer g,
                                            gpointer self);
VALA_EXTERN TubaWidgetsAvatar* tuba_widgets_avatar_new (void);
VALA_EXTERN TubaWidgetsAvatar* tuba_widgets_avatar_construct (GType object_type);
VALA_EXTERN void tuba_widgets_avatar_set_size (TubaWidgetsAvatar* self,
                                   gint value);
static void _vala_array_add145 (gchar** * array,
                         gint* length,
                         gint* size,
                         gchar* value);
static GObject * tuba_widgets_cover_mutuals_button_content_constructor (GType type,
                                                                 guint n_construct_properties,
                                                                 GObjectConstructParam * construct_properties);
VALA_EXTERN void tuba_widgets_label_with_widgets_set_ellipsize (TubaWidgetsLabelWithWidgets* self,
                                                    gboolean value);
static void tuba_widgets_cover_mutuals_button_content_finalize (GObject * obj);
static GType tuba_widgets_cover_mutuals_button_content_get_type_once (void);
VALA_EXTERN const gchar* tuba_widgets_cover_profile_stats_button_get_label_template (TubaWidgetsCoverProfileStatsButton* self);
static GObject * tuba_widgets_cover_profile_stats_button_constructor (GType type,
                                                               guint n_construct_properties,
                                                               GObjectConstructParam * construct_properties);
static void tuba_widgets_cover_profile_stats_button_finalize (GObject * obj);
static GType tuba_widgets_cover_profile_stats_button_get_type_once (void);
static void _vala_tuba_widgets_cover_profile_stats_button_get_property (GObject * object,
                                                                 guint property_id,
                                                                 GValue * value,
                                                                 GParamSpec * pspec);
static void _vala_tuba_widgets_cover_profile_stats_button_set_property (GObject * object,
                                                                 guint property_id,
                                                                 const GValue * value,
                                                                 GParamSpec * pspec);
static void tuba_widgets_cover_finalize (GObject * obj);
static GType tuba_widgets_cover_get_type_once (void);
static void _vala_tuba_widgets_cover_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec);
static void _vala_tuba_widgets_cover_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);

static inline gpointer
tuba_widgets_cover_get_instance_private (TubaWidgetsCover* self)
{
	return G_STRUCT_MEMBER_P (self, TubaWidgetsCover_private_offset);
}

static void
tuba_widgets_cover_toggle_scale_emoji_hover (TubaWidgetsCover* self)
{
	TubaSettings* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_settings;
	_tmp1_ = tuba_settings_get_scale_emoji_hover (_tmp0_);
	_tmp2_ = _tmp1_;
	tuba_toggle_css ((GtkWidget*) self, _tmp2_, "lww-scale-emoji-hover");
}

static void
tuba_widgets_cover_update_cover_badge (TubaWidgetsCover* self)
{
	gboolean _tmp0_ = FALSE;
	GtkLabel* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	GtkBox* _tmp6_;
	gboolean _tmp7_ = FALSE;
	gboolean _tmp8_;
	gboolean _tmp9_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->cover_badge;
	_tmp2_ = gtk_widget_get_visible ((GtkWidget*) _tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		_tmp0_ = TRUE;
	} else {
		gboolean _tmp4_;
		gboolean _tmp5_;
		_tmp4_ = tuba_widgets_cover_get_is_bot (self);
		_tmp5_ = _tmp4_;
		_tmp0_ = _tmp5_;
	}
	_tmp6_ = self->priv->cover_badge_box;
	gtk_widget_set_visible ((GtkWidget*) _tmp6_, _tmp0_);
	_tmp8_ = tuba_widgets_cover_get_is_bot (self);
	_tmp9_ = _tmp8_;
	if (_tmp9_) {
		GtkLabel* _tmp10_;
		gboolean _tmp11_;
		gboolean _tmp12_;
		_tmp10_ = self->priv->cover_badge;
		_tmp11_ = gtk_widget_get_visible ((GtkWidget*) _tmp10_);
		_tmp12_ = _tmp11_;
		_tmp7_ = !_tmp12_;
	} else {
		_tmp7_ = FALSE;
	}
	if (_tmp7_) {
		GtkBox* _tmp13_;
		_tmp13_ = self->priv->cover_badge_box;
		gtk_widget_add_css_class ((GtkWidget*) _tmp13_, "only-icon");
	} else {
		GtkBox* _tmp14_;
		_tmp14_ = self->priv->cover_badge_box;
		gtk_widget_remove_css_class ((GtkWidget*) _tmp14_, "only-icon");
	}
}

static const gchar*
string_to_string (const gchar* self)
{
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	result = self;
	return result;
}

void
tuba_widgets_cover_update_aria (TubaWidgetsCover* self)
{
	gchar* aria_profile = NULL;
	TubaWidgetsEmojiLabel* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	GtkLabel* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* aria_relationship = NULL;
	gchar* _tmp7_;
	gboolean _tmp8_ = FALSE;
	GtkLabel* _tmp9_;
	gboolean _tmp10_;
	gboolean _tmp11_;
	gchar* aria_fileds = NULL;
	gchar* _tmp17_;
	gchar* final_aria = NULL;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	GtkListBox* _tmp30_;
	const gchar* _tmp31_;
	const gchar* _tmp32_;
	const gchar* _tmp33_;
	const gchar* _tmp34_;
	gchar* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	const gchar* _tmp38_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->display_name;
	_tmp1_ = tuba_widgets_emoji_label_get_content (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = self->priv->handle;
	_tmp4_ = gtk_label_get_label (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf (_ ("%s (%s)'s profile."), _tmp2_, _tmp5_);
	aria_profile = _tmp6_;
	_tmp7_ = g_strdup ("");
	aria_relationship = _tmp7_;
	_tmp9_ = self->priv->cover_badge;
	_tmp10_ = gtk_widget_get_visible ((GtkWidget*) _tmp9_);
	_tmp11_ = _tmp10_;
	if (_tmp11_) {
		const gchar* _tmp12_;
		const gchar* _tmp13_;
		_tmp12_ = tuba_widgets_cover_get_cover_badge_label (self);
		_tmp13_ = _tmp12_;
		_tmp8_ = g_strcmp0 (_tmp13_, "") != 0;
	} else {
		_tmp8_ = FALSE;
	}
	if (_tmp8_) {
		const gchar* _tmp14_;
		const gchar* _tmp15_;
		gchar* _tmp16_;
		_tmp14_ = tuba_widgets_cover_get_cover_badge_label (self);
		_tmp15_ = _tmp14_;
		_tmp16_ = g_strdup_printf (_ ("Relationship: %s."), _tmp15_);
		_g_free0 (aria_relationship);
		aria_relationship = _tmp16_;
	}
	_tmp17_ = g_strdup ("");
	aria_fileds = _tmp17_;
	if (self->priv->total_fields > 0) {
		gchar* _tmp18_;
		GtkListBoxRow* _tmp19_;
		const gchar* _tmp20_;
		_tmp18_ = g_strdup_printf (ngettext ("Contains %d field.", "Contains %d fields.", (gulong) self->priv->total_fields), self->priv->total_fields);
		_g_free0 (aria_fileds);
		aria_fileds = _tmp18_;
		_tmp19_ = self->priv->fields_box_row;
		_tmp20_ = aria_fileds;
		gtk_accessible_update_property ((GtkAccessible*) _tmp19_, GTK_ACCESSIBLE_PROPERTY_LABEL, _tmp20_, -1, -1);
	}
	_tmp21_ = aria_profile;
	_tmp22_ = aria_relationship;
	_tmp23_ = g_strdup_printf ("%s %s", _tmp21_, _tmp22_);
	final_aria = _tmp23_;
	if (self->priv->_mini) {
		const gchar* _tmp24_;
		const gchar* _tmp25_;
		const gchar* _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
		gchar* _tmp29_;
		_tmp24_ = final_aria;
		_tmp25_ = self->priv->stats_string;
		_tmp26_ = string_to_string (_tmp25_);
		_tmp27_ = g_strconcat (" ", _tmp26_, NULL);
		_tmp28_ = _tmp27_;
		_tmp29_ = g_strconcat (_tmp24_, _tmp28_, NULL);
		_g_free0 (final_aria);
		final_aria = _tmp29_;
		_g_free0 (_tmp28_);
	}
	_tmp30_ = self->priv->info;
	_tmp31_ = final_aria;
	gtk_accessible_update_property ((GtkAccessible*) _tmp30_, GTK_ACCESSIBLE_PROPERTY_LABEL, _tmp31_, -1, -1);
	_tmp32_ = final_aria;
	_tmp33_ = aria_fileds;
	_tmp34_ = string_to_string (_tmp33_);
	_tmp35_ = g_strconcat (" ", _tmp34_, NULL);
	_tmp36_ = _tmp35_;
	_tmp37_ = g_strconcat (_tmp32_, _tmp36_, NULL);
	_g_free0 (final_aria);
	final_aria = _tmp37_;
	_g_free0 (_tmp36_);
	_tmp38_ = final_aria;
	g_signal_emit (self, tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_ARIA_UPDATED_SIGNAL], 0, _tmp38_);
	_g_free0 (final_aria);
	_g_free0 (aria_fileds);
	_g_free0 (aria_relationship);
	_g_free0 (aria_profile);
}

static void
tuba_widgets_cover_open_header_in_media_viewer (TubaWidgetsCover* self)
{
	TubaApplication* _tmp0_;
	TubaDialogsMainWindow* _tmp1_;
	TubaDialogsMainWindow* _tmp2_;
	const gchar* _tmp3_;
	TubaWidgetsBackground* _tmp4_;
	GdkPaintable* _tmp5_;
	GdkPaintable* _tmp6_;
	TubaWidgetsBackground* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_app;
	_tmp1_ = tuba_application_get_main_window (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = self->priv->_header_url;
	_tmp4_ = self->priv->background;
	_tmp5_ = tuba_widgets_background_get_paintable (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = self->priv->background;
	tuba_dialogs_main_window_show_media_viewer (_tmp2_, _tmp3_, TUBA_ATTACHMENT_MEDIA_TYPE_IMAGE, _tmp6_, (GtkWidget*) _tmp7_, TRUE, NULL, NULL, NULL, FALSE, NULL, TRUE);
}

static void
tuba_widgets_cover_open_pfp_in_media_viewer (TubaWidgetsCover* self)
{
	TubaApplication* _tmp0_;
	TubaDialogsMainWindow* _tmp1_;
	TubaDialogsMainWindow* _tmp2_;
	const gchar* _tmp3_;
	TubaWidgetsAvatar* _tmp4_;
	GdkPaintable* _tmp5_;
	GdkPaintable* _tmp6_;
	TubaWidgetsAvatar* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_app;
	_tmp1_ = tuba_application_get_main_window (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = self->priv->_avi_url;
	_tmp4_ = self->priv->avatar;
	_tmp5_ = tuba_widgets_avatar_get_custom_image (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = self->priv->avatar;
	tuba_dialogs_main_window_show_media_viewer (_tmp2_, _tmp3_, TUBA_ATTACHMENT_MEDIA_TYPE_IMAGE, _tmp6_, (GtkWidget*) _tmp7_, TRUE, NULL, NULL, NULL, FALSE, NULL, TRUE);
}

static void
tuba_widgets_cover_on_avatar_clicked (TubaWidgetsCover* self)
{
	g_return_if_fail (self != NULL);
	g_signal_emit (self, tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_AVATAR_CLICKED_SIGNAL], 0);
}

static void
_tuba_widgets_cover_toggle_scale_emoji_hover_g_object_notify (GObject* _sender,
                                                              GParamSpec* pspec,
                                                              gpointer self)
{
	tuba_widgets_cover_toggle_scale_emoji_hover ((TubaWidgetsCover*) self);
}

static void
_tuba_widgets_cover_on_moved_btn_clicked_gtk_button_clicked (GtkButton* _sender,
                                                             gpointer self)
{
	tuba_widgets_cover_on_moved_btn_clicked ((TubaWidgetsCover*) self);
}

static gboolean
_vala_string_array_contains (gchar* * stack,
                             gssize stack_length,
                             const gchar* needle)
{
	gssize i;
	for (i = 0; i < stack_length; i++) {
		if (g_strcmp0 (stack[i], needle) == 0) {
			return TRUE;
		}
	}
	return FALSE;
}

static void
_tuba_widgets_cover_on_rs_invalidation_tuba_api_relationship_invalidated (TubaAPIRelationship* _sender,
                                                                          gpointer self)
{
	tuba_widgets_cover_on_rs_invalidation ((TubaWidgetsCover*) self, _sender);
}

static void
_tuba_widgets_cover_on_avatar_clicked_gtk_button_clicked (GtkButton* _sender,
                                                          gpointer self)
{
	tuba_widgets_cover_on_avatar_clicked ((TubaWidgetsCover*) self);
}

static void
_tuba_widgets_cover_open_pfp_in_media_viewer_gtk_button_clicked (GtkButton* _sender,
                                                                 gpointer self)
{
	tuba_widgets_cover_open_pfp_in_media_viewer ((TubaWidgetsCover*) self);
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

static void
_vala_array_add142 (gchar** * array,
                    gint* length,
                    gint* size,
                    gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add143 (gchar** * array,
                    gint* length,
                    gint* size,
                    gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add144 (gchar** * array,
                    gint* length,
                    gint* size,
                    gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static gchar*
_vala_g_strjoinv (const gchar* separator,
                  gchar** str_array,
                  gint str_array_length1)
{
	gboolean _tmp0_ = FALSE;
	gchar* result;
	if (separator == NULL) {
		separator = "";
	}
	if (str_array != NULL) {
		gboolean _tmp1_ = FALSE;
		if (str_array_length1 > 0) {
			_tmp1_ = TRUE;
		} else {
			gboolean _tmp2_ = FALSE;
			if (str_array_length1 == -1) {
				const gchar* _tmp3_;
				_tmp3_ = str_array[0];
				_tmp2_ = _tmp3_ != NULL;
			} else {
				_tmp2_ = FALSE;
			}
			_tmp1_ = _tmp2_;
		}
		_tmp0_ = _tmp1_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gint i = 0;
		gsize len = 0UL;
		gint _tmp16_;
		gint _tmp17_;
		const gchar* res = NULL;
		void* _tmp18_;
		const gchar* _tmp19_ = NULL;
		const gchar* _tmp20_;
		void* ptr = NULL;
		const gchar* _tmp22_;
		void* _tmp23_;
		const gchar* _tmp33_;
		len = (gsize) 1;
		{
			gboolean _tmp4_ = FALSE;
			i = 0;
			_tmp4_ = TRUE;
			while (TRUE) {
				gboolean _tmp6_ = FALSE;
				gboolean _tmp7_ = FALSE;
				gint _tmp10_ = 0;
				const gchar* _tmp11_;
				if (!_tmp4_) {
					gint _tmp5_;
					_tmp5_ = i;
					i = _tmp5_ + 1;
				}
				_tmp4_ = FALSE;
				if (str_array_length1 != -1) {
					_tmp7_ = i < str_array_length1;
				} else {
					_tmp7_ = FALSE;
				}
				if (_tmp7_) {
					_tmp6_ = TRUE;
				} else {
					gboolean _tmp8_ = FALSE;
					if (str_array_length1 == -1) {
						const gchar* _tmp9_;
						_tmp9_ = str_array[i];
						_tmp8_ = _tmp9_ != NULL;
					} else {
						_tmp8_ = FALSE;
					}
					_tmp6_ = _tmp8_;
				}
				if (!_tmp6_) {
					break;
				}
				_tmp11_ = str_array[i];
				if (_tmp11_ != NULL) {
					const gchar* _tmp12_;
					gint _tmp13_;
					gint _tmp14_;
					_tmp12_ = str_array[i];
					_tmp13_ = strlen ((const gchar*) _tmp12_);
					_tmp14_ = _tmp13_;
					_tmp10_ = _tmp14_;
				} else {
					_tmp10_ = 0;
				}
				len += (gsize) _tmp10_;
			}
		}
		if (i == 0) {
			gchar* _tmp15_;
			_tmp15_ = g_strdup ("");
			result = _tmp15_;
			return result;
		}
		str_array_length1 = i;
		_tmp16_ = strlen ((const gchar*) separator);
		_tmp17_ = _tmp16_;
		len += (gsize) (_tmp17_ * (i - 1));
		_tmp18_ = g_malloc (len);
		res = _tmp18_;
		_tmp20_ = str_array[0];
		if (_tmp20_ != NULL) {
			const gchar* _tmp21_;
			_tmp21_ = str_array[0];
			_tmp19_ = (const gchar*) _tmp21_;
		} else {
			_tmp19_ = "";
		}
		_tmp22_ = res;
		_tmp23_ = g_stpcpy ((void*) _tmp22_, _tmp19_);
		ptr = _tmp23_;
		{
			gboolean _tmp24_ = FALSE;
			i = 1;
			_tmp24_ = TRUE;
			while (TRUE) {
				void* _tmp26_;
				void* _tmp27_;
				const gchar* _tmp28_ = NULL;
				const gchar* _tmp29_;
				void* _tmp31_;
				void* _tmp32_;
				if (!_tmp24_) {
					gint _tmp25_;
					_tmp25_ = i;
					i = _tmp25_ + 1;
				}
				_tmp24_ = FALSE;
				if (!(i < str_array_length1)) {
					break;
				}
				_tmp26_ = ptr;
				_tmp27_ = g_stpcpy (_tmp26_, (const gchar*) separator);
				ptr = _tmp27_;
				_tmp29_ = str_array[i];
				if (_tmp29_ != NULL) {
					const gchar* _tmp30_;
					_tmp30_ = str_array[i];
					_tmp28_ = (const gchar*) _tmp30_;
				} else {
					_tmp28_ = "";
				}
				_tmp31_ = ptr;
				_tmp32_ = g_stpcpy (_tmp31_, _tmp28_);
				ptr = _tmp32_;
			}
		}
		_tmp33_ = res;
		res = NULL;
		result = (gchar*) _tmp33_;
		return result;
	} else {
		gchar* _tmp34_;
		_tmp34_ = g_strdup ("");
		result = _tmp34_;
		return result;
	}
}

static void
_tuba_widgets_cover_open_header_in_media_viewer_gtk_button_clicked (GtkButton* _sender,
                                                                    gpointer self)
{
	tuba_widgets_cover_open_header_in_media_viewer ((TubaWidgetsCover*) self);
}

static void
_tuba_widgets_cover_update_fields_max_columns_g_object_notify (GObject* _sender,
                                                               GParamSpec* pspec,
                                                               gpointer self)
{
	tuba_widgets_cover_update_fields_max_columns ((TubaWidgetsCover*) self);
}

TubaWidgetsCover*
tuba_widgets_cover_construct (GType object_type,
                              TubaViewsProfileProfileAccount* profile,
                              gboolean mini)
{
	TubaWidgetsCover * self = NULL;
	TubaAPIAccount* _tmp0_;
	TubaAPIAccount* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	TubaSettings* _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	TubaSettings* _tmp8_;
	gboolean is_self = FALSE;
	TubaAPIAccount* _tmp9_;
	TubaAPIAccount* _tmp10_;
	const gchar* _tmp11_;
	const gchar* _tmp12_;
	TubaAccountStore* _tmp13_;
	TubaInstanceAccount* _tmp14_;
	TubaInstanceAccount* _tmp15_;
	const gchar* _tmp16_;
	const gchar* _tmp17_;
	GHashFunc _tmp33_;
	TubaAPIAccount* _tmp34_;
	TubaAPIAccount* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	gchar* _tmp40_;
	gchar* _tmp41_;
	gchar* _tmp42_;
	TubaSettings* _tmp43_;
	gchar** _tmp44_;
	gint _tmp44__length1;
	gint _tmp45_ = 0;
	gchar** _tmp46_;
	gint _tmp46__length1;
	gboolean _tmp47_;
	gint _tmp63_ = 0;
	TubaApplication* _tmp64_;
	gboolean _tmp65_;
	gboolean _tmp66_;
	gchar* _tmp67_;
	gchar** _tmp68_;
	GtkFlowBox* _tmp69_ = NULL;
	GtkFlowBox* _tmp70_;
	GtkWidget* _tmp71_;
	gchar* _tmp72_;
	gchar** _tmp73_;
	GtkListBoxRow* _tmp74_ = NULL;
	GtkListBox* _tmp75_;
	GtkListBoxRow* _tmp76_;
	TubaAPIAccount* _tmp144_;
	TubaAPIAccount* _tmp145_;
	gboolean _tmp146_ = FALSE;
	const gchar* _tmp147_;
	TubaApplication* _tmp149_;
	g_return_val_if_fail (profile != NULL, NULL);
	self = (TubaWidgetsCover*) g_object_new (object_type, NULL);
	_tmp0_ = tuba_views_profile_profile_account_get_account (profile);
	_tmp1_ = _tmp0_;
	_tmp2_ = tuba_api_account_get_id (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup (_tmp3_);
	_g_free0 (self->priv->profile_id);
	self->priv->profile_id = _tmp4_;
	_tmp5_ = tuba_settings;
	_tmp6_ = tuba_settings_get_scale_emoji_hover (_tmp5_);
	_tmp7_ = _tmp6_;
	if (_tmp7_) {
		gtk_widget_add_css_class ((GtkWidget*) self, "lww-scale-emoji-hover");
	}
	_tmp8_ = tuba_settings;
	g_signal_connect_object ((GObject*) _tmp8_, "notify::scale-emoji-hover", (GCallback) _tuba_widgets_cover_toggle_scale_emoji_hover_g_object_notify, self, 0);
	_tmp9_ = tuba_views_profile_profile_account_get_account (profile);
	_tmp10_ = _tmp9_;
	_tmp11_ = tuba_api_account_get_id (_tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = tuba_accounts;
	_tmp14_ = tuba_account_store_get_active (_tmp13_);
	_tmp15_ = _tmp14_;
	_tmp16_ = tuba_api_account_get_id ((TubaAPIAccount*) _tmp15_);
	_tmp17_ = _tmp16_;
	is_self = g_strcmp0 (_tmp12_, _tmp17_) == 0;
	self->priv->_mini = mini;
	if (mini) {
		AdwActionRow* _tmp18_;
		_tmp18_ = self->priv->note_row;
		gtk_widget_set_can_target ((GtkWidget*) _tmp18_, FALSE);
	} else {
		if (!is_self) {
			GtkButton* _tmp19_;
			gboolean _tmp20_ = FALSE;
			TubaAccountStore* _tmp21_;
			TubaInstanceAccount* _tmp22_;
			TubaInstanceAccount* _tmp23_;
			TubaAPIInstanceV2APIVersions* _tmp24_;
			TubaAPIInstanceV2APIVersions* _tmp25_;
			gint8 _tmp26_;
			gint8 _tmp27_;
			_tmp19_ = self->priv->moved_btn;
			g_signal_connect_object (_tmp19_, "clicked", (GCallback) _tuba_widgets_cover_on_moved_btn_clicked_gtk_button_clicked, self, 0);
			_tmp21_ = tuba_accounts;
			_tmp22_ = tuba_account_store_get_active (_tmp21_);
			_tmp23_ = _tmp22_;
			_tmp24_ = tuba_instance_account_get_tuba_api_versions (_tmp23_);
			_tmp25_ = _tmp24_;
			_tmp26_ = tuba_api_instance_v2_api_versions_get_mastodon (_tmp25_);
			_tmp27_ = _tmp26_;
			if (((gint) _tmp27_) > 0) {
				_tmp20_ = TRUE;
			} else {
				TubaAccountStore* _tmp28_;
				TubaInstanceAccount* _tmp29_;
				TubaInstanceAccount* _tmp30_;
				TubaInstanceAccountInstanceFeatures _tmp31_;
				TubaInstanceAccountInstanceFeatures _tmp32_;
				_tmp28_ = tuba_accounts;
				_tmp29_ = tuba_account_store_get_active (_tmp28_);
				_tmp30_ = _tmp29_;
				_tmp31_ = tuba_instance_account_get_tuba_instance_features (_tmp30_);
				_tmp32_ = _tmp31_;
				_tmp20_ = (_tmp32_ & TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_MUTUALS) == TUBA_INSTANCE_ACCOUNT_INSTANCE_FEATURES_MUTUALS;
			}
			if (_tmp20_) {
				tuba_widgets_cover_populate_mutuals (self, NULL, NULL);
			}
		}
	}
	_tmp33_ = g_str_hash;
	_tmp34_ = tuba_views_profile_profile_account_get_account (profile);
	_tmp35_ = _tmp34_;
	_tmp36_ = tuba_api_account_get_full_handle (_tmp35_);
	_tmp37_ = _tmp36_;
	_tmp38_ = _tmp37_;
	_tmp39_ = g_utf8_strdown (_tmp38_, (gssize) -1);
	_tmp40_ = _tmp39_;
	_tmp41_ = g_strdup_printf ("%u", _tmp33_ (_tmp40_));
	_tmp42_ = _tmp41_;
	_tmp43_ = tuba_settings;
	_tmp44_ = tuba_settings_get_contributors (_tmp43_, &_tmp45_);
	_tmp44__length1 = _tmp45_;
	_tmp46_ = _tmp44_;
	_tmp46__length1 = _tmp44__length1;
	_tmp47_ = _vala_string_array_contains (_tmp46_, _tmp46__length1, _tmp42_);
	_g_free0 (_tmp42_);
	_g_free0 (_tmp40_);
	_g_free0 (_tmp38_);
	if (_tmp47_) {
		GtkImage* _tmp48_;
		_tmp48_ = self->priv->supporter_icon;
		gtk_widget_set_visible ((GtkWidget*) _tmp48_, TRUE);
		gtk_widget_add_css_class ((GtkWidget*) self, "thanks");
	}
	if (!is_self) {
		TubaAPIRelationship* _tmp49_;
		TubaAPIRelationship* _tmp50_;
		TubaWidgetsRelationshipButton* _tmp51_;
		TubaAPIAccount* _tmp52_;
		TubaAPIAccount* _tmp53_;
		gchar* _tmp54_;
		gchar* _tmp55_;
		gchar* _tmp56_;
		TubaWidgetsRelationshipButton* _tmp57_;
		TubaAPIRelationship* _tmp58_;
		TubaAPIRelationship* _tmp59_;
		TubaWidgetsRelationshipButton* _tmp60_;
		_tmp49_ = tuba_views_profile_profile_account_get_rs (profile);
		_tmp50_ = _tmp49_;
		g_signal_connect_object (_tmp50_, "invalidated", (GCallback) _tuba_widgets_cover_on_rs_invalidation_tuba_api_relationship_invalidated, self, 0);
		_tmp51_ = self->rsbtn;
		_tmp52_ = tuba_views_profile_profile_account_get_account (profile);
		_tmp53_ = _tmp52_;
		_tmp54_ = tuba_api_account_get_handle (_tmp53_);
		_tmp55_ = _tmp54_;
		_tmp56_ = _tmp55_;
		tuba_widgets_relationship_button_set_handle (_tmp51_, _tmp56_);
		_g_free0 (_tmp56_);
		_tmp57_ = self->rsbtn;
		_tmp58_ = tuba_views_profile_profile_account_get_rs (profile);
		_tmp59_ = _tmp58_;
		tuba_widgets_relationship_button_set_rs (_tmp57_, _tmp59_);
		_tmp60_ = self->rsbtn;
		gtk_widget_set_visible ((GtkWidget*) _tmp60_, TRUE);
	}
	if (mini) {
		TubaWidgetsAvatar* _tmp61_;
		_tmp61_ = self->priv->avatar;
		g_signal_connect_object ((GtkButton*) _tmp61_, "clicked", (GCallback) _tuba_widgets_cover_on_avatar_clicked_gtk_button_clicked, self, 0);
	} else {
		TubaWidgetsAvatar* _tmp62_;
		_tmp62_ = self->priv->avatar;
		g_signal_connect_object ((GtkButton*) _tmp62_, "clicked", (GCallback) _tuba_widgets_cover_open_pfp_in_media_viewer_gtk_button_clicked, self, 0);
	}
	_tmp64_ = tuba_app;
	_tmp65_ = tuba_application_get_is_mobile (_tmp64_);
	_tmp66_ = _tmp65_;
	if (_tmp66_) {
		_tmp63_ = 1;
	} else {
		_tmp63_ = 2;
	}
	_tmp67_ = g_strdup ("ttl-profile-fields-box");
	_tmp68_ = g_new0 (gchar*, 1 + 1);
	_tmp68_[0] = _tmp67_;
	_tmp69_ = (GtkFlowBox*) gtk_flow_box_new ();
	gtk_flow_box_set_max_children_per_line (_tmp69_, (guint) _tmp63_);
	gtk_flow_box_set_min_children_per_line (_tmp69_, (guint) 1);
	gtk_flow_box_set_selection_mode (_tmp69_, GTK_SELECTION_NONE);
	gtk_widget_set_css_classes ((GtkWidget*) _tmp69_, _tmp68_);
	_tmp68_ = (_vala_array_free (_tmp68_, 1, (GDestroyNotify) g_free), NULL);
	g_object_ref_sink (_tmp69_);
	_g_object_unref0 (self->priv->fields_box);
	self->priv->fields_box = _tmp69_;
	_tmp70_ = self->priv->fields_box;
	_tmp71_ = _g_object_ref0 ((GtkWidget*) _tmp70_);
	_tmp72_ = g_strdup ("ttl-profile-fields-box-container");
	_tmp73_ = g_new0 (gchar*, 1 + 1);
	_tmp73_[0] = _tmp72_;
	_tmp74_ = (GtkListBoxRow*) gtk_list_box_row_new ();
	gtk_list_box_row_set_child (_tmp74_, _tmp71_);
	_g_object_unref0 (_tmp71_);
	gtk_list_box_row_set_activatable (_tmp74_, FALSE);
	gtk_widget_set_css_classes ((GtkWidget*) _tmp74_, _tmp73_);
	_tmp73_ = (_vala_array_free (_tmp73_, 1, (GDestroyNotify) g_free), NULL);
	g_object_ref_sink (_tmp74_);
	_g_object_unref0 (self->priv->fields_box_row);
	self->priv->fields_box_row = _tmp74_;
	_tmp75_ = self->priv->info;
	_tmp76_ = self->priv->fields_box_row;
	gtk_list_box_append (_tmp75_, (GtkWidget*) _tmp76_);
	if (!mini) {
		TubaAPIAccount* _tmp77_;
		TubaAPIAccount* _tmp78_;
		_tmp77_ = tuba_views_profile_profile_account_get_account (profile);
		_tmp78_ = _tmp77_;
		tuba_widgets_cover_build_profile_stats (self, _tmp78_);
	} else {
		TubaWidgetsBackground* _tmp79_;
		gchar** stats = NULL;
		gchar** _tmp80_;
		gint stats_length1;
		gint _stats_size_;
		TubaAPIAccount* _tmp98_;
		TubaAPIAccount* _tmp99_;
		gint64 _tmp100_;
		gint64 _tmp101_;
		TubaAPIAccount* _tmp119_;
		TubaAPIAccount* _tmp120_;
		gint64 _tmp121_;
		gint64 _tmp122_;
		gchar** _tmp135_;
		gint _tmp135__length1;
		gchar* _tmp136_;
		GtkListBox* _tmp137_;
		const gchar* _tmp138_;
		gchar* _tmp139_;
		gchar** _tmp140_;
		GtkLabel* _tmp141_ = NULL;
		GtkListBoxRow* _tmp142_ = NULL;
		GtkListBoxRow* _tmp143_;
		_tmp79_ = self->priv->background;
		g_object_set ((GtkWidget*) _tmp79_, "height-request", 64, NULL);
		_tmp80_ = g_new0 (gchar*, 0 + 1);
		stats = _tmp80_;
		stats_length1 = 0;
		_stats_size_ = stats_length1;
		{
			gchar* posts_str = NULL;
			TubaAPIAccount* _tmp81_;
			TubaAPIAccount* _tmp82_;
			gint64 _tmp83_;
			gint64 _tmp84_;
			TubaAPIAccount* _tmp85_;
			TubaAPIAccount* _tmp86_;
			gint64 _tmp87_;
			gint64 _tmp88_;
			gchar* _tmp89_;
			gchar* _tmp90_;
			const gchar* _tmp91_;
			gchar* _tmp92_;
			gchar* _tmp93_;
			gchar* _tmp94_;
			gchar* _tmp95_;
			const gchar* _tmp96_;
			gchar* _tmp97_;
			_tmp81_ = tuba_views_profile_profile_account_get_account (profile);
			_tmp82_ = _tmp81_;
			_tmp83_ = tuba_api_account_get_statuses_count (_tmp82_);
			_tmp84_ = _tmp83_;
			_tmp85_ = tuba_views_profile_profile_account_get_account (profile);
			_tmp86_ = _tmp85_;
			_tmp87_ = tuba_api_account_get_statuses_count (_tmp86_);
			_tmp88_ = _tmp87_;
			_tmp89_ = tuba_utils_units_shorten (_tmp88_);
			_tmp90_ = _tmp89_;
			_tmp91_ = string_to_string (_tmp90_);
			_tmp92_ = g_strconcat ("<b>", _tmp91_, "</b>", NULL);
			_tmp93_ = _tmp92_;
			_tmp94_ = g_strdup_printf (ngettext ("%s Post", "%s Posts", (gulong) _tmp84_), _tmp93_);
			_tmp95_ = _tmp94_;
			_g_free0 (_tmp93_);
			_g_free0 (_tmp90_);
			posts_str = _tmp95_;
			_tmp96_ = posts_str;
			_tmp97_ = g_strdup_printf ("<span allow_breaks=\"false\">%s</span>", _tmp96_);
			_vala_array_add142 (&stats, &stats_length1, &_stats_size_, _tmp97_);
			_g_free0 (posts_str);
		}
		_tmp98_ = tuba_views_profile_profile_account_get_account (profile);
		_tmp99_ = _tmp98_;
		_tmp100_ = tuba_api_account_get_followers_count (_tmp99_);
		_tmp101_ = _tmp100_;
		if (_tmp101_ >= ((gint64) 0)) {
			gchar* followers_str = NULL;
			TubaAPIAccount* _tmp102_;
			TubaAPIAccount* _tmp103_;
			gint64 _tmp104_;
			gint64 _tmp105_;
			TubaAPIAccount* _tmp106_;
			TubaAPIAccount* _tmp107_;
			gint64 _tmp108_;
			gint64 _tmp109_;
			gchar* _tmp110_;
			gchar* _tmp111_;
			const gchar* _tmp112_;
			gchar* _tmp113_;
			gchar* _tmp114_;
			gchar* _tmp115_;
			gchar* _tmp116_;
			const gchar* _tmp117_;
			gchar* _tmp118_;
			_tmp102_ = tuba_views_profile_profile_account_get_account (profile);
			_tmp103_ = _tmp102_;
			_tmp104_ = tuba_api_account_get_followers_count (_tmp103_);
			_tmp105_ = _tmp104_;
			_tmp106_ = tuba_views_profile_profile_account_get_account (profile);
			_tmp107_ = _tmp106_;
			_tmp108_ = tuba_api_account_get_followers_count (_tmp107_);
			_tmp109_ = _tmp108_;
			_tmp110_ = tuba_utils_units_shorten (_tmp109_);
			_tmp111_ = _tmp110_;
			_tmp112_ = string_to_string (_tmp111_);
			_tmp113_ = g_strconcat ("<b>", _tmp112_, "</b>", NULL);
			_tmp114_ = _tmp113_;
			_tmp115_ = g_strdup_printf (ngettext ("%s Follower", "%s Followers", (gulong) _tmp105_), _tmp114_);
			_tmp116_ = _tmp115_;
			_g_free0 (_tmp114_);
			_g_free0 (_tmp111_);
			followers_str = _tmp116_;
			_tmp117_ = followers_str;
			_tmp118_ = g_strdup_printf ("<span allow_breaks=\"false\">%s</span>", _tmp117_);
			_vala_array_add143 (&stats, &stats_length1, &_stats_size_, _tmp118_);
			_g_free0 (followers_str);
		}
		_tmp119_ = tuba_views_profile_profile_account_get_account (profile);
		_tmp120_ = _tmp119_;
		_tmp121_ = tuba_api_account_get_following_count (_tmp120_);
		_tmp122_ = _tmp121_;
		if (_tmp122_ >= ((gint64) 0)) {
			TubaAPIAccount* _tmp123_;
			TubaAPIAccount* _tmp124_;
			gint64 _tmp125_;
			gint64 _tmp126_;
			gchar* _tmp127_;
			gchar* _tmp128_;
			const gchar* _tmp129_;
			gchar* _tmp130_;
			gchar* _tmp131_;
			gchar* _tmp132_;
			gchar* _tmp133_;
			gchar* _tmp134_;
			_tmp123_ = tuba_views_profile_profile_account_get_account (profile);
			_tmp124_ = _tmp123_;
			_tmp125_ = tuba_api_account_get_following_count (_tmp124_);
			_tmp126_ = _tmp125_;
			_tmp127_ = tuba_utils_units_shorten (_tmp126_);
			_tmp128_ = _tmp127_;
			_tmp129_ = string_to_string (_tmp128_);
			_tmp130_ = g_strconcat ("<b>", _tmp129_, "</b>", NULL);
			_tmp131_ = _tmp130_;
			_tmp132_ = g_strdup_printf (_ ("%s Following"), _tmp131_);
			_tmp133_ = _tmp132_;
			_tmp134_ = g_strdup_printf ("<span allow_breaks=\"false\">%s</span>", _tmp133_);
			_vala_array_add144 (&stats, &stats_length1, &_stats_size_, _tmp134_);
			_g_free0 (_tmp133_);
			_g_free0 (_tmp131_);
			_g_free0 (_tmp128_);
		}
		_tmp135_ = stats;
		_tmp135__length1 = stats_length1;
		_tmp136_ = _vala_g_strjoinv ("   ", _tmp135_, (gint) _tmp135__length1);
		_g_free0 (self->priv->stats_string);
		self->priv->stats_string = _tmp136_;
		_tmp137_ = self->priv->info;
		_tmp138_ = self->priv->stats_string;
		_tmp139_ = g_strdup ("font-small");
		_tmp140_ = g_new0 (gchar*, 1 + 1);
		_tmp140_[0] = _tmp139_;
		_tmp141_ = (GtkLabel*) gtk_label_new (_tmp138_);
		gtk_label_set_wrap (_tmp141_, TRUE);
		gtk_label_set_wrap_mode (_tmp141_, PANGO_WRAP_WORD_CHAR);
		gtk_widget_set_hexpand ((GtkWidget*) _tmp141_, TRUE);
		gtk_label_set_xalign (_tmp141_, 0.0f);
		gtk_label_set_use_markup (_tmp141_, TRUE);
		gtk_widget_set_css_classes ((GtkWidget*) _tmp141_, _tmp140_);
		_tmp140_ = (_vala_array_free (_tmp140_, 1, (GDestroyNotify) g_free), NULL);
		gtk_widget_set_valign ((GtkWidget*) _tmp141_, GTK_ALIGN_CENTER);
		gtk_widget_set_margin_start ((GtkWidget*) _tmp141_, 12);
		gtk_widget_set_margin_end ((GtkWidget*) _tmp141_, 12);
		gtk_widget_set_margin_top ((GtkWidget*) _tmp141_, 6);
		gtk_widget_set_margin_bottom ((GtkWidget*) _tmp141_, 6);
		g_object_ref_sink (_tmp141_);
		_tmp142_ = (GtkListBoxRow*) gtk_list_box_row_new ();
		gtk_list_box_row_set_activatable (_tmp142_, FALSE);
		gtk_list_box_row_set_child (_tmp142_, (GtkWidget*) _tmp141_);
		_g_object_unref0 (_tmp141_);
		g_object_ref_sink (_tmp142_);
		_tmp143_ = _tmp142_;
		gtk_list_box_append (_tmp137_, (GtkWidget*) _tmp143_);
		_g_object_unref0 (_tmp143_);
		stats = (_vala_array_free (stats, stats_length1, (GDestroyNotify) g_free), NULL);
	}
	_tmp144_ = tuba_views_profile_profile_account_get_account (profile);
	_tmp145_ = _tmp144_;
	tuba_widgets_cover_update_cover_from_profile (self, _tmp145_);
	_tmp147_ = self->priv->_header_url;
	if (g_strcmp0 (_tmp147_, "") != 0) {
		_tmp146_ = !mini;
	} else {
		_tmp146_ = FALSE;
	}
	if (_tmp146_) {
		TubaWidgetsBackground* _tmp148_;
		_tmp148_ = self->priv->background;
		g_signal_connect_object ((GtkButton*) _tmp148_, "clicked", (GCallback) _tuba_widgets_cover_open_header_in_media_viewer_gtk_button_clicked, self, 0);
	}
	_tmp149_ = tuba_app;
	g_signal_connect_object ((GObject*) _tmp149_, "notify::is-mobile", (GCallback) _tuba_widgets_cover_update_fields_max_columns_g_object_notify, self, 0);
	return self;
}

TubaWidgetsCover*
tuba_widgets_cover_new (TubaViewsProfileProfileAccount* profile,
                        gboolean mini)
{
	return tuba_widgets_cover_construct (TUBA_WIDGETS_TYPE_COVER, profile, mini);
}

static void
tuba_widgets_cover_populate_mutuals_data_free (gpointer _data)
{
	TubaWidgetsCoverPopulateMutualsData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (TubaWidgetsCoverPopulateMutualsData, _data_);
}

static void
tuba_widgets_cover_populate_mutuals (TubaWidgetsCover* self,
                                     GAsyncReadyCallback _callback_,
                                     gpointer _user_data_)
{
	TubaWidgetsCoverPopulateMutualsData* _data_;
	TubaWidgetsCover* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (TubaWidgetsCoverPopulateMutualsData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_widgets_cover_populate_mutuals_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	tuba_widgets_cover_populate_mutuals_co (_data_);
}

static void
tuba_widgets_cover_populate_mutuals_finish (TubaWidgetsCover* self,
                                            GAsyncResult* _res_)
{
	TubaWidgetsCoverPopulateMutualsData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static void
tuba_widgets_cover_populate_mutuals_ready (GObject* source_object,
                                           GAsyncResult* _res_,
                                           gpointer _user_data_)
{
	TubaWidgetsCoverPopulateMutualsData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_widgets_cover_populate_mutuals_co (_data_);
}

static void
_vala_JsonNode_free (JsonNode* self)
{
	g_boxed_free (json_node_get_type (), self);
}

static void
_tuba_widgets_cover_on_mutuals_popover_g_object_notify (GObject* _sender,
                                                        GParamSpec* pspec,
                                                        gpointer self)
{
	tuba_widgets_cover_on_mutuals_popover ((TubaWidgetsCover*) self);
}

static gboolean
tuba_widgets_cover_populate_mutuals_co (TubaWidgetsCoverPopulateMutualsData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->mutuals_button;
	gtk_widget_set_visible ((GtkWidget*) _data_->_tmp0_, FALSE);
	_data_->_tmp1_ = tuba_accounts;
	_data_->_tmp2_ = tuba_account_store_get_active (_data_->_tmp1_);
	_data_->_tmp3_ = _data_->_tmp2_;
	_data_->_tmp4_ = _g_object_ref0 (_data_->_tmp3_);
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = tuba_request_v2_new ("/api/v1/accounts/familiar_followers", TUBA_REQUEST_V2_METHOD_GET);
	tuba_request_v2_set_account (_data_->_tmp5_, _data_->_tmp4_);
	_g_object_unref0 (_data_->_tmp4_);
	_data_->req = _data_->_tmp5_;
	_data_->_tmp6_ = _data_->req;
	_data_->_tmp7_ = _data_->self->priv->profile_id;
	tuba_request_v2_add_parameter (_data_->_tmp6_, "id[]", _data_->_tmp7_);
	{
		_data_->_tmp8_ = _data_->req;
		_data_->_state_ = 1;
		tuba_request_v2_exec (_data_->_tmp8_, tuba_widgets_cover_populate_mutuals_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp9_ = tuba_request_v2_exec_finish (_data_->_tmp8_, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->in_stream = _data_->_tmp9_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_data_->_tmp10_ = _data_->in_stream;
		_data_->_state_ = 2;
		tuba_network_get_parser_from_inputstream_async (_data_->_tmp10_, NULL, tuba_widgets_cover_populate_mutuals_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp11_ = tuba_network_get_parser_from_inputstream_finish (_data_->_res_, &_data_->_inner_error0_);
		_data_->parser = _data_->_tmp11_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->in_stream);
			goto __catch0_g_error;
		}
		_data_->_tmp12_ = tuba_network;
		_data_->_tmp13_ = _data_->parser;
		_data_->_tmp14_ = tuba_network_parse_node (_data_->_tmp12_, _data_->_tmp13_);
		_data_->node = _data_->_tmp14_;
		_data_->_tmp15_ = _data_->node;
		if (_data_->_tmp15_ == NULL) {
			__vala_JsonNode_free0 (_data_->node);
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			_g_object_unref0 (_data_->req);
			g_task_return_pointer (_data_->_async_result, _data_, NULL);
			if (_data_->_state_ != 0) {
				while (!g_task_get_completed (_data_->_async_result)) {
					g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
				}
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		}
		_data_->_tmp16_ = _data_->node;
		memset (&_data_->_tmp17_, 0, sizeof (GValue));
		tuba_entity_des_list (&_data_->_tmp17_, _data_->_tmp16_, TUBA_API_TYPE_FAMILIAR_FOLLOWERS);
		G_IS_VALUE (&_data_->res_accounts) ? (g_value_unset (&_data_->res_accounts), NULL) : NULL;
		_data_->res_accounts = _data_->_tmp17_;
		_data_->_tmp18_ = _data_->res_accounts;
		_data_->_tmp19_ = _g_object_ref0 (g_value_get_object (&_data_->_tmp18_));
		_data_->res_mutual_accounts = _data_->_tmp19_;
		_data_->_tmp20_ = _data_->res_mutual_accounts;
		_data_->_tmp21_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data_->_tmp20_);
		_data_->_tmp22_ = _data_->_tmp21_;
		if (_data_->_tmp22_ == 0) {
			_g_object_unref0 (_data_->res_mutual_accounts);
			G_IS_VALUE (&_data_->res_accounts) ? (g_value_unset (&_data_->res_accounts), NULL) : NULL;
			__vala_JsonNode_free0 (_data_->node);
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			_g_object_unref0 (_data_->req);
			g_task_return_pointer (_data_->_async_result, _data_, NULL);
			if (_data_->_state_ != 0) {
				while (!g_task_get_completed (_data_->_async_result)) {
					g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
				}
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		}
		_data_->_tmp23_ = _data_->res_mutual_accounts;
		_data_->_tmp24_ = gee_abstract_list_get ((GeeAbstractList*) _data_->_tmp23_, 0);
		_data_->_tmp25_ = (TubaAPIFamiliarFollowers*) _data_->_tmp24_;
		_data_->_tmp26_ = tuba_api_familiar_followers_get_accounts (_data_->_tmp25_);
		_data_->_tmp27_ = _data_->_tmp26_;
		_data_->_tmp28_ = _g_object_ref0 (_data_->_tmp27_);
		_g_object_unref0 (_data_->self->priv->mutual_accounts);
		_data_->self->priv->mutual_accounts = _data_->_tmp28_;
		_g_object_unref0 (_data_->_tmp25_);
		_data_->_tmp29_ = _data_->self->priv->mutual_accounts;
		_data_->_tmp30_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data_->_tmp29_);
		_data_->_tmp31_ = _data_->_tmp30_;
		if (_data_->_tmp31_ > 0) {
			_data_->_tmp32_ = _data_->self->priv->mutuals_button;
			gtk_widget_set_visible ((GtkWidget*) _data_->_tmp32_, TRUE);
			_data_->_tmp33_ = _data_->self->priv->mutuals_button;
			_data_->_tmp34_ = _data_->self->priv->mutual_accounts;
			_data_->_tmp35_ = tuba_widgets_cover_mutuals_button_content_new (_data_->_tmp34_);
			g_object_ref_sink (_data_->_tmp35_);
			_data_->_tmp36_ = _data_->_tmp35_;
			gtk_menu_button_set_child (_data_->_tmp33_, (GtkWidget*) _data_->_tmp36_);
			_g_object_unref0 (_data_->_tmp36_);
			_data_->_tmp37_ = g_strdup ("boxed-list");
			_data_->_tmp38_ = g_new0 (gchar*, 1 + 1);
			_data_->_tmp38_[0] = _data_->_tmp37_;
			_data_->_tmp39_ = NULL;
			_data_->_tmp39_ = (GtkListBox*) gtk_list_box_new ();
			gtk_list_box_set_selection_mode (_data_->_tmp39_, GTK_SELECTION_NONE);
			gtk_widget_set_css_classes ((GtkWidget*) _data_->_tmp39_, _data_->_tmp38_);
			_data_->_tmp38_ = (_vala_array_free (_data_->_tmp38_, 1, (GDestroyNotify) g_free), NULL);
			g_object_ref_sink (_data_->_tmp39_);
			_g_object_unref0 (_data_->self->priv->mutuals_listbox);
			_data_->self->priv->mutuals_listbox = _data_->_tmp39_;
			_data_->_tmp40_ = _data_->self->priv->mutuals_button;
			_data_->_tmp41_ = _data_->self->priv->mutuals_listbox;
			_data_->_tmp42_ = _g_object_ref0 ((GtkWidget*) _data_->_tmp41_);
			_data_->_tmp43_ = NULL;
			_data_->_tmp43_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
			gtk_scrolled_window_set_child (_data_->_tmp43_, _data_->_tmp42_);
			_g_object_unref0 (_data_->_tmp42_);
			gtk_widget_set_hexpand ((GtkWidget*) _data_->_tmp43_, TRUE);
			gtk_widget_set_vexpand ((GtkWidget*) _data_->_tmp43_, TRUE);
			g_object_set (_data_->_tmp43_, "hscrollbar-policy", GTK_POLICY_NEVER, NULL);
			gtk_scrolled_window_set_max_content_height (_data_->_tmp43_, 500);
			g_object_set ((GtkWidget*) _data_->_tmp43_, "width-request", 360, NULL);
			gtk_scrolled_window_set_propagate_natural_height (_data_->_tmp43_, TRUE);
			g_object_ref_sink (_data_->_tmp43_);
			_data_->_tmp44_ = NULL;
			_data_->_tmp44_ = (GtkPopover*) gtk_popover_new ();
			gtk_popover_set_child (_data_->_tmp44_, (GtkWidget*) _data_->_tmp43_);
			_g_object_unref0 (_data_->_tmp43_);
			g_object_ref_sink (_data_->_tmp44_);
			_data_->_tmp45_ = _data_->_tmp44_;
			gtk_menu_button_set_popover (_data_->_tmp40_, _data_->_tmp45_);
			_g_object_unref0 (_data_->_tmp45_);
			_data_->_tmp46_ = _data_->self->priv->mutuals_button;
			_data_->_tmp47_ = gtk_menu_button_get_popover (_data_->_tmp46_);
			_data_->_tmp48_ = _data_->_tmp47_;
			gtk_widget_add_css_class ((GtkWidget*) _data_->_tmp48_, "no-padding");
			_data_->_tmp49_ = _data_->self->priv->mutuals_button;
			g_signal_connect_object ((GObject*) _data_->_tmp49_, "notify::active", (GCallback) _tuba_widgets_cover_on_mutuals_popover_g_object_notify, _data_->self, 0);
		}
		_g_object_unref0 (_data_->res_mutual_accounts);
		G_IS_VALUE (&_data_->res_accounts) ? (g_value_unset (&_data_->res_accounts), NULL) : NULL;
		__vala_JsonNode_free0 (_data_->node);
		_g_object_unref0 (_data_->parser);
		_g_object_unref0 (_data_->in_stream);
	}
	goto __finally0;
	__catch0_g_error:
	{
		_data_->e = _data_->_inner_error0_;
		_data_->_inner_error0_ = NULL;
		_data_->_tmp50_ = _data_->e;
		_data_->_tmp51_ = g_strdup_printf ("%i", _data_->_tmp50_->code);
		_data_->_tmp52_ = _data_->_tmp51_;
		_data_->_tmp53_ = _data_->e;
		_data_->_tmp54_ = _data_->_tmp53_->message;
		_data_->_tmp55_ = string_to_string (_data_->_tmp54_);
		_data_->_tmp56_ = g_strconcat ("Couldn't get mutuals: ", _data_->_tmp52_, " ", _data_->_tmp55_, NULL);
		_data_->_tmp57_ = _data_->_tmp56_;
		g_warning ("ProfileCover.vala:401: %s", _data_->_tmp57_);
		_g_free0 (_data_->_tmp57_);
		_g_free0 (_data_->_tmp52_);
		_g_error_free0 (_data_->e);
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		_g_object_unref0 (_data_->req);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
		g_clear_error (&_data_->_inner_error0_);
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_g_object_unref0 (_data_->req);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
tuba_widgets_cover_on_mutuals_popover (TubaWidgetsCover* self)
{
	gboolean _tmp0_ = FALSE;
	GeeArrayList* _tmp1_;
	GtkMenuButton* _tmp15_;
	guint _tmp16_;
	GQuark _tmp17_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->mutual_accounts;
	if (_tmp1_ == NULL) {
		_tmp0_ = TRUE;
	} else {
		GtkListBox* _tmp2_;
		_tmp2_ = self->priv->mutuals_listbox;
		_tmp0_ = _tmp2_ == NULL;
	}
	if (_tmp0_) {
		return;
	}
	{
		GeeArrayList* _acc_list = NULL;
		GeeArrayList* _tmp3_;
		gint _acc_size = 0;
		GeeArrayList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
		gint _acc_index = 0;
		_tmp3_ = self->priv->mutual_accounts;
		_acc_list = _tmp3_;
		_tmp4_ = _acc_list;
		_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
		_tmp6_ = _tmp5_;
		_acc_size = _tmp6_;
		_acc_index = -1;
		while (TRUE) {
			gint _tmp7_;
			gint _tmp8_;
			TubaAPIAccount* acc = NULL;
			GeeArrayList* _tmp9_;
			gpointer _tmp10_;
			GtkListBox* _tmp11_;
			TubaAPIAccount* _tmp12_;
			TubaWidgetsAccountRow* _tmp13_;
			TubaWidgetsAccountRow* _tmp14_;
			_acc_index = _acc_index + 1;
			_tmp7_ = _acc_index;
			_tmp8_ = _acc_size;
			if (!(_tmp7_ < _tmp8_)) {
				break;
			}
			_tmp9_ = _acc_list;
			_tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _acc_index);
			acc = (TubaAPIAccount*) _tmp10_;
			_tmp11_ = self->priv->mutuals_listbox;
			_tmp12_ = acc;
			_tmp13_ = tuba_widgets_account_row_new (_tmp12_, TRUE);
			g_object_ref_sink (_tmp13_);
			_tmp14_ = _tmp13_;
			gtk_list_box_append (_tmp11_, (GtkWidget*) _tmp14_);
			_g_object_unref0 (_tmp14_);
			_g_object_unref0 (acc);
		}
	}
	_g_object_unref0 (self->priv->mutual_accounts);
	self->priv->mutual_accounts = NULL;
	_g_object_unref0 (self->priv->mutuals_listbox);
	self->priv->mutuals_listbox = NULL;
	_tmp15_ = self->priv->mutuals_button;
	g_signal_parse_name ("notify::active", G_TYPE_OBJECT, &_tmp16_, &_tmp17_, TRUE);
	g_signal_handlers_disconnect_matched ((GObject*) _tmp15_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, _tmp17_, NULL, (GCallback) _tuba_widgets_cover_on_mutuals_popover_g_object_notify, self);
}

static gboolean
string_contains (const gchar* self,
                 const gchar* needle)
{
	gchar* _tmp0_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (needle != NULL, FALSE);
	_tmp0_ = strstr ((gchar*) self, (gchar*) needle);
	result = _tmp0_ != NULL;
	return result;
}

static void
_tuba_widgets_cover_on_cache_response_tuba_helper_image_on_item_changed_fn (GdkPaintable* data,
                                                                            gpointer self)
{
	tuba_widgets_cover_on_cache_response ((TubaWidgetsCover*) self, data);
}

static gchar*
string_slice (const gchar* self,
              glong start,
              glong end)
{
	glong string_length = 0L;
	gint _tmp0_;
	gint _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gchar* _tmp4_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = strlen (self);
	_tmp1_ = _tmp0_;
	string_length = (glong) _tmp1_;
	if (start < ((glong) 0)) {
		start = string_length + start;
	}
	if (end < ((glong) 0)) {
		end = string_length + end;
	}
	if (start >= ((glong) 0)) {
		_tmp2_ = start <= string_length;
	} else {
		_tmp2_ = FALSE;
	}
	g_return_val_if_fail (_tmp2_, NULL);
	if (end >= ((glong) 0)) {
		_tmp3_ = end <= string_length;
	} else {
		_tmp3_ = FALSE;
	}
	g_return_val_if_fail (_tmp3_, NULL);
	g_return_val_if_fail (start <= end, NULL);
	_tmp4_ = g_strndup (((gchar*) self) + start, (gsize) (end - start));
	result = _tmp4_;
	return result;
}

static gint
string_last_index_of (const gchar* self,
                      const gchar* needle,
                      gint start_index)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	g_return_val_if_fail (needle != NULL, -1);
	_tmp0_ = g_strrstr (((gchar*) self) + start_index, (gchar*) needle);
	_result_ = _tmp0_;
	_tmp1_ = _result_;
	if (_tmp1_ != NULL) {
		gchar* _tmp2_;
		_tmp2_ = _result_;
		result = (gint) (_tmp2_ - ((gchar*) self));
		return result;
	} else {
		result = -1;
		return result;
	}
}

static gchar*
string_replace (const gchar* self,
                const gchar* old,
                const gchar* replacement)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	GError* _inner_error0_ = NULL;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (old != NULL, NULL);
	g_return_val_if_fail (replacement != NULL, NULL);
	if ((*((gchar*) self)) == '\0') {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = (*((gchar*) old)) == '\0';
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = g_strcmp0 (old, replacement) == 0;
	}
	if (_tmp0_) {
		gchar* _tmp2_;
		_tmp2_ = g_strdup (self);
		result = _tmp2_;
		return result;
	}
	{
		GRegex* regex = NULL;
		gchar* _tmp3_;
		gchar* _tmp4_;
		GRegex* _tmp5_;
		GRegex* _tmp6_;
		gchar* _tmp7_ = NULL;
		GRegex* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		_tmp3_ = g_regex_escape_string (old, -1);
		_tmp4_ = _tmp3_;
		_tmp5_ = g_regex_new (_tmp4_, 0, 0, &_inner_error0_);
		_tmp6_ = _tmp5_;
		_g_free0 (_tmp4_);
		regex = _tmp6_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			if (_inner_error0_->domain == G_REGEX_ERROR) {
				goto __catch0_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return NULL;
		}
		_tmp8_ = regex;
		_tmp9_ = g_regex_replace_literal (_tmp8_, self, (gssize) -1, 0, replacement, 0, &_inner_error0_);
		_tmp7_ = _tmp9_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_regex_unref0 (regex);
			if (_inner_error0_->domain == G_REGEX_ERROR) {
				goto __catch0_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return NULL;
		}
		_tmp10_ = _tmp7_;
		_tmp7_ = NULL;
		result = _tmp10_;
		_g_free0 (_tmp7_);
		_g_regex_unref0 (regex);
		return result;
	}
	goto __finally0;
	__catch0_g_regex_error:
	{
		g_clear_error (&_inner_error0_);
		g_assert_not_reached ();
	}
	__finally0:
	g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
	g_clear_error (&_inner_error0_);
	return NULL;
}

void
tuba_widgets_cover_update_cover_from_profile (TubaWidgetsCover* self,
                                              TubaAPIAccount* profile)
{
	GtkLabel* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	TubaWidgetsEmojiLabel* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	const gchar* _tmp16_ = NULL;
	const gchar* _tmp17_;
	const gchar* _tmp18_;
	TubaWidgetsAvatar* _tmp19_;
	TubaWidgetsAvatar* _tmp20_;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	TubaWidgetsMarkupView* _tmp23_;
	const gchar* _tmp24_;
	const gchar* _tmp25_;
	const gchar* _tmp26_;
	const gchar* _tmp27_;
	GtkImage* _tmp35_;
	gboolean _tmp36_;
	gboolean _tmp37_;
	gboolean _tmp49_ = FALSE;
	GeeArrayList* _tmp50_;
	GeeArrayList* _tmp51_;
	const gchar* _tmp72_;
	const gchar* _tmp73_;
	TubaWidgetsBackground* _tmp83_;
	const gchar* _tmp84_;
	const gchar* _tmp85_;
	gboolean _tmp86_;
	gboolean _tmp87_;
	gboolean _tmp95_ = FALSE;
	GtkFlowBox* _tmp122_;
	gboolean _tmp123_ = FALSE;
	GeeArrayList* _tmp124_;
	GeeArrayList* _tmp125_;
	gboolean _tmp255_ = FALSE;
	gboolean _tmp256_ = FALSE;
	TubaWidgetsCoverProfileStatsButton* _tmp257_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (profile != NULL);
	_tmp0_ = self->priv->handle;
	_tmp1_ = tuba_api_account_get_handle (profile);
	_tmp2_ = _tmp1_;
	_tmp3_ = _tmp2_;
	gtk_label_set_label (_tmp0_, _tmp3_);
	_g_free0 (_tmp3_);
	_tmp4_ = self->priv->display_name;
	_tmp5_ = tuba_widgets_emoji_label_get_content (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = tuba_api_account_get_display_name (profile);
	_tmp8_ = _tmp7_;
	if (g_strcmp0 (_tmp6_, _tmp8_) != 0) {
		TubaWidgetsEmojiLabel* _tmp9_;
		GeeHashMap* _tmp10_;
		GeeHashMap* _tmp11_;
		GeeHashMap* _tmp12_;
		TubaWidgetsEmojiLabel* _tmp13_;
		const gchar* _tmp14_;
		const gchar* _tmp15_;
		_tmp9_ = self->priv->display_name;
		_tmp10_ = tuba_api_account_get_emojis_map (profile);
		_tmp11_ = _tmp10_;
		_tmp12_ = _tmp11_;
		tuba_widgets_emoji_label_set_instance_emojis (_tmp9_, _tmp12_);
		_g_object_unref0 (_tmp12_);
		_tmp13_ = self->priv->display_name;
		_tmp14_ = tuba_api_account_get_display_name (profile);
		_tmp15_ = _tmp14_;
		tuba_widgets_emoji_label_set_content (_tmp13_, _tmp15_);
	}
	_tmp17_ = tuba_api_account_get_avatar (profile);
	_tmp18_ = _tmp17_;
	_tmp16_ = _tmp18_;
	if (_tmp16_ == NULL) {
		_tmp16_ = "";
	}
	tuba_widgets_cover_set_avi_url (self, _tmp16_);
	_tmp19_ = self->priv->avatar;
	tuba_widgets_avatar_set_account (_tmp19_, profile);
	_tmp20_ = self->priv->avatar;
	_tmp21_ = tuba_api_account_get_avatar_description (profile);
	_tmp22_ = _tmp21_;
	tuba_widgets_avatar_set_alternative_text (_tmp20_, _tmp22_);
	_tmp23_ = self->note;
	_tmp24_ = tuba_widgets_markup_view_get_content (_tmp23_);
	_tmp25_ = _tmp24_;
	_tmp26_ = tuba_api_account_get_note (profile);
	_tmp27_ = _tmp26_;
	if (g_strcmp0 (_tmp25_, _tmp27_) != 0) {
		TubaWidgetsMarkupView* _tmp28_;
		GeeHashMap* _tmp29_;
		GeeHashMap* _tmp30_;
		GeeHashMap* _tmp31_;
		TubaWidgetsMarkupView* _tmp32_;
		const gchar* _tmp33_;
		const gchar* _tmp34_;
		_tmp28_ = self->note;
		_tmp29_ = tuba_api_account_get_emojis_map (profile);
		_tmp30_ = _tmp29_;
		_tmp31_ = _tmp30_;
		tuba_widgets_markup_view_set_instance_emojis (_tmp28_, _tmp31_);
		_g_object_unref0 (_tmp31_);
		_tmp32_ = self->note;
		_tmp33_ = tuba_api_account_get_note (profile);
		_tmp34_ = _tmp33_;
		tuba_widgets_markup_view_set_content (_tmp32_, _tmp34_);
	}
	_tmp35_ = self->priv->cover_bot_badge;
	_tmp36_ = tuba_api_account_get_bot (profile);
	_tmp37_ = _tmp36_;
	gtk_widget_set_visible ((GtkWidget*) _tmp35_, _tmp37_);
	tuba_widgets_cover_update_cover_badge (self);
	{
		GtkWidget* w = NULL;
		AdwWrapBox* _tmp38_;
		GtkWidget* _tmp39_;
		GtkWidget* _tmp40_;
		_tmp38_ = self->priv->roles;
		_tmp39_ = gtk_widget_get_first_child ((GtkWidget*) _tmp38_);
		_tmp40_ = _g_object_ref0 (_tmp39_);
		w = _tmp40_;
		while (TRUE) {
			GtkWidget* _tmp41_;
			GtkWidget* w2 = NULL;
			GtkWidget* _tmp42_;
			GtkWidget* _tmp43_;
			GtkWidget* _tmp44_;
			AdwWrapBox* _tmp45_;
			GtkWidget* _tmp46_;
			GtkWidget* _tmp47_;
			GtkWidget* _tmp48_;
			_tmp41_ = w;
			if (!(_tmp41_ != NULL)) {
				break;
			}
			_tmp42_ = w;
			_tmp43_ = gtk_widget_get_next_sibling (_tmp42_);
			_tmp44_ = _g_object_ref0 (_tmp43_);
			w2 = _tmp44_;
			_tmp45_ = self->priv->roles;
			_tmp46_ = w;
			adw_wrap_box_remove (_tmp45_, _tmp46_);
			_tmp47_ = w2;
			_tmp48_ = _g_object_ref0 (_tmp47_);
			_g_object_unref0 (w);
			w = _tmp48_;
			_g_object_unref0 (w2);
		}
		_g_object_unref0 (w);
	}
	_tmp50_ = tuba_api_account_get_roles (profile);
	_tmp51_ = _tmp50_;
	if (_tmp51_ != NULL) {
		GeeArrayList* _tmp52_;
		GeeArrayList* _tmp53_;
		gint _tmp54_;
		gint _tmp55_;
		_tmp52_ = tuba_api_account_get_roles (profile);
		_tmp53_ = _tmp52_;
		_tmp54_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp53_);
		_tmp55_ = _tmp54_;
		_tmp49_ = _tmp55_ > 0;
	} else {
		_tmp49_ = FALSE;
	}
	if (_tmp49_) {
		AdwWrapBox* _tmp56_;
		_tmp56_ = self->priv->roles;
		gtk_widget_set_visible ((GtkWidget*) _tmp56_, TRUE);
		{
			GeeArrayList* _role_list = NULL;
			GeeArrayList* _tmp57_;
			GeeArrayList* _tmp58_;
			gint _role_size = 0;
			GeeArrayList* _tmp59_;
			gint _tmp60_;
			gint _tmp61_;
			gint _role_index = 0;
			_tmp57_ = tuba_api_account_get_roles (profile);
			_tmp58_ = _tmp57_;
			_role_list = _tmp58_;
			_tmp59_ = _role_list;
			_tmp60_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp59_);
			_tmp61_ = _tmp60_;
			_role_size = _tmp61_;
			_role_index = -1;
			while (TRUE) {
				gint _tmp62_;
				gint _tmp63_;
				TubaAPIAccountRole* role = NULL;
				GeeArrayList* _tmp64_;
				gpointer _tmp65_;
				GtkWidget* role_widget = NULL;
				TubaAPIAccountRole* _tmp66_;
				GtkWidget* _tmp67_;
				GtkWidget* _tmp68_;
				AdwWrapBox* _tmp69_;
				GtkWidget* _tmp70_;
				_role_index = _role_index + 1;
				_tmp62_ = _role_index;
				_tmp63_ = _role_size;
				if (!(_tmp62_ < _tmp63_)) {
					break;
				}
				_tmp64_ = _role_list;
				_tmp65_ = gee_abstract_list_get ((GeeAbstractList*) _tmp64_, _role_index);
				role = (TubaAPIAccountRole*) _tmp65_;
				_tmp66_ = role;
				_tmp67_ = tuba_api_account_role_to_widget (_tmp66_);
				role_widget = _tmp67_;
				_tmp68_ = role_widget;
				gtk_widget_add_css_class (_tmp68_, "tuba-circular");
				_tmp69_ = self->priv->roles;
				_tmp70_ = role_widget;
				adw_wrap_box_append (_tmp69_, _tmp70_);
				_g_object_unref0 (role_widget);
				_g_object_unref0 (role);
			}
		}
	} else {
		AdwWrapBox* _tmp71_;
		_tmp71_ = self->priv->roles;
		gtk_widget_set_visible ((GtkWidget*) _tmp71_, FALSE);
	}
	_tmp72_ = tuba_api_account_get_header (profile);
	_tmp73_ = _tmp72_;
	if (string_contains (_tmp73_, "/headers/original/missing.png")) {
		TubaWidgetsBackground* _tmp74_;
		TubaWidgetsAvatar* _tmp75_;
		GdkPaintable* _tmp76_;
		GdkPaintable* _tmp77_;
		tuba_widgets_cover_set_header_url (self, "");
		_tmp74_ = self->priv->background;
		_tmp75_ = self->priv->avatar;
		_tmp76_ = tuba_widgets_avatar_get_custom_image (_tmp75_);
		_tmp77_ = _tmp76_;
		tuba_widgets_background_set_paintable (_tmp74_, _tmp77_);
	} else {
		const gchar* _tmp78_ = NULL;
		const gchar* _tmp79_;
		const gchar* _tmp80_;
		const gchar* _tmp81_;
		const gchar* _tmp82_;
		_tmp79_ = tuba_api_account_get_header (profile);
		_tmp80_ = _tmp79_;
		_tmp78_ = _tmp80_;
		if (_tmp78_ == NULL) {
			_tmp78_ = "";
		}
		tuba_widgets_cover_set_header_url (self, _tmp78_);
		_tmp81_ = tuba_api_account_get_header (profile);
		_tmp82_ = _tmp81_;
		tuba_helper_image_request_paintable (_tmp82_, NULL, FALSE, _tuba_widgets_cover_on_cache_response_tuba_helper_image_on_item_changed_fn, g_object_ref (self), g_object_unref, NULL);
	}
	_tmp83_ = self->priv->background;
	_tmp84_ = tuba_api_account_get_header_description (profile);
	_tmp85_ = _tmp84_;
	tuba_widgets_background_set_alternative_text (_tmp83_, _tmp85_);
	_tmp86_ = tuba_api_account_get_memorial (profile);
	_tmp87_ = _tmp86_;
	if (_tmp87_) {
		GtkLabel* _tmp88_;
		GtkLabel* _tmp89_;
		_tmp88_ = self->priv->our_note;
		gtk_label_set_label (_tmp88_, _ ("In Memoriam"));
		_tmp89_ = self->priv->our_note;
		gtk_widget_set_visible ((GtkWidget*) _tmp89_, TRUE);
	} else {
		gboolean _tmp90_;
		gboolean _tmp91_;
		_tmp90_ = tuba_api_account_get_suspended (profile);
		_tmp91_ = _tmp90_;
		if (_tmp91_) {
			GtkLabel* _tmp92_;
			GtkLabel* _tmp93_;
			_tmp92_ = self->priv->our_note;
			gtk_label_set_label (_tmp92_, _ ("Suspended"));
			_tmp93_ = self->priv->our_note;
			gtk_widget_set_visible ((GtkWidget*) _tmp93_, TRUE);
		} else {
			GtkLabel* _tmp94_;
			_tmp94_ = self->priv->our_note;
			gtk_widget_set_visible ((GtkWidget*) _tmp94_, FALSE);
		}
	}
	if (!self->priv->_mini) {
		TubaAPIAccount* _tmp96_;
		TubaAPIAccount* _tmp97_;
		_tmp96_ = tuba_api_account_get_moved (profile);
		_tmp97_ = _tmp96_;
		_tmp95_ = _tmp97_ != NULL;
	} else {
		_tmp95_ = FALSE;
	}
	if (_tmp95_) {
		GtkButton* _tmp98_;
		GtkButton* _tmp99_;
		gchar* _tmp100_;
		gchar* _tmp101_;
		gchar* _tmp102_;
		const gchar* _tmp103_;
		gchar* _tmp104_;
		gchar* _tmp105_;
		TubaAPIAccount* _tmp106_;
		TubaAPIAccount* _tmp107_;
		gchar* _tmp108_;
		gchar* _tmp109_;
		gchar* _tmp110_;
		const gchar* _tmp111_;
		gchar* _tmp112_;
		gchar* _tmp113_;
		gchar* _tmp114_;
		gchar* _tmp115_;
		GtkLabel* _tmp116_ = NULL;
		GtkLabel* _tmp117_;
		TubaAPIAccount* _tmp118_;
		TubaAPIAccount* _tmp119_;
		TubaAPIAccount* _tmp120_;
		_tmp98_ = self->priv->moved_btn;
		gtk_widget_set_visible ((GtkWidget*) _tmp98_, TRUE);
		_tmp99_ = self->priv->moved_btn;
		_tmp100_ = tuba_api_account_get_full_handle (profile);
		_tmp101_ = _tmp100_;
		_tmp102_ = _tmp101_;
		_tmp103_ = string_to_string (_tmp102_);
		_tmp104_ = g_strconcat ("<b>", _tmp103_, "</b>", NULL);
		_tmp105_ = _tmp104_;
		_tmp106_ = tuba_api_account_get_moved (profile);
		_tmp107_ = _tmp106_;
		_tmp108_ = tuba_api_account_get_full_handle (_tmp107_);
		_tmp109_ = _tmp108_;
		_tmp110_ = _tmp109_;
		_tmp111_ = string_to_string (_tmp110_);
		_tmp112_ = g_strconcat ("<b>", _tmp111_, "</b>", NULL);
		_tmp113_ = _tmp112_;
		_tmp114_ = g_strdup_printf (_ ("%s has moved to %s"), _tmp105_, _tmp113_);
		_tmp115_ = _tmp114_;
		_tmp116_ = (GtkLabel*) gtk_label_new (_tmp115_);
		gtk_label_set_use_markup (_tmp116_, TRUE);
		gtk_label_set_wrap (_tmp116_, TRUE);
		gtk_label_set_wrap_mode (_tmp116_, PANGO_WRAP_CHAR);
		g_object_ref_sink (_tmp116_);
		_tmp117_ = _tmp116_;
		gtk_button_set_child (_tmp99_, (GtkWidget*) _tmp117_);
		_g_object_unref0 (_tmp117_);
		_g_free0 (_tmp115_);
		_g_free0 (_tmp113_);
		_g_free0 (_tmp110_);
		_g_free0 (_tmp105_);
		_g_free0 (_tmp102_);
		_tmp118_ = tuba_api_account_get_moved (profile);
		_tmp119_ = _tmp118_;
		_tmp120_ = _g_object_ref0 (_tmp119_);
		_g_object_unref0 (self->priv->moved_to_account);
		self->priv->moved_to_account = _tmp120_;
	} else {
		GtkButton* _tmp121_;
		_tmp121_ = self->priv->moved_btn;
		gtk_widget_set_visible ((GtkWidget*) _tmp121_, FALSE);
	}
	_tmp122_ = self->priv->fields_box;
	gtk_flow_box_remove_all (_tmp122_);
	self->priv->total_fields = 0;
	_tmp124_ = tuba_api_account_get_fields (profile);
	_tmp125_ = _tmp124_;
	if (_tmp125_ != NULL) {
		_tmp123_ = TRUE;
	} else {
		const gchar* _tmp126_;
		const gchar* _tmp127_;
		_tmp126_ = tuba_api_account_get_created_at (profile);
		_tmp127_ = _tmp126_;
		_tmp123_ = _tmp127_ != NULL;
	}
	if (_tmp123_) {
		GtkSizeGroup* sizegroup = NULL;
		GtkSizeGroup* _tmp128_;
		GeeArrayList* _tmp129_;
		GeeArrayList* _tmp130_;
		gint _tmp131_;
		gint _tmp132_;
		GeeHashMap* profile_emoji_map = NULL;
		GeeHashMap* _tmp133_;
		GeeHashMap* _tmp134_;
		const gchar* _tmp197_;
		const gchar* _tmp198_;
		GtkListBoxRow* _tmp251_;
		GtkListBoxRow* _tmp252_;
		_tmp128_ = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
		sizegroup = _tmp128_;
		_tmp129_ = tuba_api_account_get_fields (profile);
		_tmp130_ = _tmp129_;
		_tmp131_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp130_);
		_tmp132_ = _tmp131_;
		self->priv->total_fields = _tmp132_;
		_tmp133_ = tuba_api_account_get_emojis_map (profile);
		_tmp134_ = _tmp133_;
		profile_emoji_map = _tmp134_;
		{
			GeeArrayList* _f_list = NULL;
			GeeArrayList* _tmp135_;
			GeeArrayList* _tmp136_;
			gint _f_size = 0;
			GeeArrayList* _tmp137_;
			gint _tmp138_;
			gint _tmp139_;
			gint _f_index = 0;
			_tmp135_ = tuba_api_account_get_fields (profile);
			_tmp136_ = _tmp135_;
			_f_list = _tmp136_;
			_tmp137_ = _f_list;
			_tmp138_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp137_);
			_tmp139_ = _tmp138_;
			_f_size = _tmp139_;
			_f_index = -1;
			while (TRUE) {
				gint _tmp140_;
				gint _tmp141_;
				TubaAPIAccountField* f = NULL;
				GeeArrayList* _tmp142_;
				gpointer _tmp143_;
				GtkBox* row = NULL;
				gchar* _tmp144_;
				gchar** _tmp145_;
				GtkBox* _tmp146_ = NULL;
				TubaWidgetsRichLabel* val = NULL;
				TubaAPIAccountField* _tmp147_;
				const gchar* _tmp148_;
				const gchar* _tmp149_;
				gchar* _tmp150_;
				gchar* _tmp151_;
				GeeHashMap* _tmp152_;
				TubaWidgetsRichLabel* _tmp153_ = NULL;
				TubaWidgetsRichLabel* _tmp154_;
				TubaWidgetsEmojiLabel* title_label = NULL;
				gchar* _tmp155_;
				gchar** _tmp156_;
				TubaWidgetsEmojiLabel* _tmp157_ = NULL;
				TubaWidgetsEmojiLabel* _tmp158_;
				GeeHashMap* _tmp159_;
				TubaWidgetsEmojiLabel* _tmp160_;
				TubaAPIAccountField* _tmp161_;
				const gchar* _tmp162_;
				const gchar* _tmp163_;
				GtkFlowBox* _tmp164_;
				GtkBox* _tmp165_;
				GtkSizeGroup* _tmp166_;
				GtkBox* _tmp167_;
				TubaAPIAccountField* _tmp168_;
				const gchar* _tmp169_;
				const gchar* _tmp170_;
				GtkBox* _tmp195_;
				TubaWidgetsRichLabel* _tmp196_;
				_f_index = _f_index + 1;
				_tmp140_ = _f_index;
				_tmp141_ = _f_size;
				if (!(_tmp140_ < _tmp141_)) {
					break;
				}
				_tmp142_ = _f_list;
				_tmp143_ = gee_abstract_list_get ((GeeAbstractList*) _tmp142_, _f_index);
				f = (TubaAPIAccountField*) _tmp143_;
				_tmp144_ = g_strdup ("ttl-profile-field");
				_tmp145_ = g_new0 (gchar*, 1 + 1);
				_tmp145_[0] = _tmp144_;
				_tmp146_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
				gtk_widget_set_css_classes ((GtkWidget*) _tmp146_, _tmp145_);
				_tmp145_ = (_vala_array_free (_tmp145_, 1, (GDestroyNotify) g_free), NULL);
				g_object_ref_sink (_tmp146_);
				row = _tmp146_;
				_tmp147_ = f;
				_tmp148_ = tuba_api_account_field_get_val (_tmp147_);
				_tmp149_ = _tmp148_;
				_tmp150_ = tuba_utils_htmlx_simplify (_tmp149_);
				_tmp151_ = _tmp150_;
				_tmp152_ = profile_emoji_map;
				_tmp153_ = tuba_widgets_rich_label_new_with_emojis (_tmp151_, _tmp152_);
				tuba_widgets_rich_label_set_use_markup (_tmp153_, TRUE);
				tuba_widgets_rich_label_set_xalign (_tmp153_, (gfloat) 0);
				tuba_widgets_rich_label_set_selectable (_tmp153_, TRUE);
				g_object_ref_sink (_tmp153_);
				_tmp154_ = _tmp153_;
				_g_free0 (_tmp151_);
				val = _tmp154_;
				_tmp155_ = g_strdup ("dim-label");
				_tmp156_ = g_new0 (gchar*, 1 + 1);
				_tmp156_[0] = _tmp155_;
				_tmp157_ = tuba_widgets_emoji_label_new (NULL, NULL);
				tuba_widgets_label_with_widgets_set_use_markup ((TubaWidgetsLabelWithWidgets*) _tmp157_, FALSE);
				gtk_widget_set_css_classes ((GtkWidget*) _tmp157_, _tmp156_);
				_tmp156_ = (_vala_array_free (_tmp156_, 1, (GDestroyNotify) g_free), NULL);
				g_object_ref_sink (_tmp157_);
				title_label = _tmp157_;
				_tmp158_ = title_label;
				_tmp159_ = profile_emoji_map;
				tuba_widgets_emoji_label_set_instance_emojis (_tmp158_, _tmp159_);
				_tmp160_ = title_label;
				_tmp161_ = f;
				_tmp162_ = tuba_api_account_field_get_name (_tmp161_);
				_tmp163_ = _tmp162_;
				tuba_widgets_emoji_label_set_content (_tmp160_, _tmp163_);
				_tmp164_ = self->priv->fields_box;
				_tmp165_ = row;
				gtk_flow_box_append (_tmp164_, (GtkWidget*) _tmp165_);
				_tmp166_ = sizegroup;
				_tmp167_ = row;
				gtk_size_group_add_widget (_tmp166_, (GtkWidget*) _tmp167_);
				_tmp168_ = f;
				_tmp169_ = tuba_api_account_field_get_verified_at (_tmp168_);
				_tmp170_ = _tmp169_;
				if (_tmp170_ != NULL) {
					gchar* verified_date = NULL;
					TubaAPIAccountField* _tmp171_;
					const gchar* _tmp172_;
					const gchar* _tmp173_;
					TubaAPIAccountField* _tmp174_;
					const gchar* _tmp175_;
					const gchar* _tmp176_;
					gchar* _tmp177_;
					GtkBox* verified_label_box = NULL;
					GtkBox* _tmp178_;
					GtkImage* verified_checkmark = NULL;
					const gchar* _tmp179_;
					const gchar* _tmp180_;
					gchar* _tmp181_;
					gchar* _tmp182_;
					gchar* _tmp183_;
					GtkImage* _tmp184_ = NULL;
					GtkImage* _tmp185_;
					GtkBox* _tmp186_;
					TubaWidgetsEmojiLabel* _tmp187_;
					GtkBox* _tmp188_;
					GtkImage* _tmp189_;
					GtkBox* _tmp190_;
					GtkBox* _tmp191_;
					GtkBox* _tmp192_;
					_tmp171_ = f;
					_tmp172_ = tuba_api_account_field_get_verified_at (_tmp171_);
					_tmp173_ = _tmp172_;
					_tmp174_ = f;
					_tmp175_ = tuba_api_account_field_get_verified_at (_tmp174_);
					_tmp176_ = _tmp175_;
					_tmp177_ = string_slice (_tmp173_, (glong) 0, (glong) string_last_index_of (_tmp176_, "T", 0));
					verified_date = _tmp177_;
					_tmp178_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
					g_object_ref_sink (_tmp178_);
					verified_label_box = _tmp178_;
					_tmp179_ = verified_date;
					_tmp180_ = string_to_string (_tmp179_);
					_tmp181_ = g_strconcat ("Ownership of this link was checked on ", _tmp180_, NULL);
					_tmp182_ = _tmp181_;
					_tmp183_ = g_strdup (_ (_tmp182_));
					_tmp184_ = (GtkImage*) gtk_image_new_from_icon_name ("tuba-verified-checkmark-symbolic");
					gtk_widget_set_tooltip_text ((GtkWidget*) _tmp184_, _tmp183_);
					_g_free0 (_tmp183_);
					g_object_ref_sink (_tmp184_);
					_tmp185_ = _tmp184_;
					_g_free0 (_tmp182_);
					verified_checkmark = _tmp185_;
					_tmp186_ = verified_label_box;
					_tmp187_ = title_label;
					gtk_box_append (_tmp186_, (GtkWidget*) _tmp187_);
					_tmp188_ = verified_label_box;
					_tmp189_ = verified_checkmark;
					gtk_box_append (_tmp188_, (GtkWidget*) _tmp189_);
					_tmp190_ = row;
					_tmp191_ = verified_label_box;
					gtk_box_append (_tmp190_, (GtkWidget*) _tmp191_);
					_tmp192_ = row;
					gtk_widget_add_css_class ((GtkWidget*) _tmp192_, "ttl-verified-field");
					_g_object_unref0 (verified_checkmark);
					_g_object_unref0 (verified_label_box);
					_g_free0 (verified_date);
				} else {
					GtkBox* _tmp193_;
					TubaWidgetsEmojiLabel* _tmp194_;
					_tmp193_ = row;
					_tmp194_ = title_label;
					gtk_box_append (_tmp193_, (GtkWidget*) _tmp194_);
				}
				_tmp195_ = row;
				_tmp196_ = val;
				gtk_box_append (_tmp195_, (GtkWidget*) _tmp196_);
				_g_object_unref0 (title_label);
				_g_object_unref0 (val);
				_g_object_unref0 (row);
				_g_object_unref0 (f);
			}
		}
		_tmp197_ = tuba_api_account_get_created_at (profile);
		_tmp198_ = _tmp197_;
		if (_tmp198_ != NULL) {
			GtkBox* row = NULL;
			gchar* _tmp199_;
			gchar** _tmp200_;
			GtkBox* _tmp201_ = NULL;
			GDateTime* parsed_date = NULL;
			const gchar* _tmp202_;
			const gchar* _tmp203_;
			GDateTime* _tmp204_;
			GDateTime* _tmp205_;
			GTimeZone* _tmp206_;
			GTimeZone* _tmp207_;
			GDateTime* _tmp208_;
			gchar* date_local = NULL;
			gchar* _tmp209_;
			GtkLabel* val = NULL;
			GDateTime* _tmp210_;
			const gchar* _tmp211_;
			gchar* _tmp212_;
			gchar* _tmp213_;
			gchar* _tmp214_;
			gchar* _tmp215_;
			GDateTime* _tmp216_;
			gchar* _tmp217_;
			GtkLabel* _tmp218_ = NULL;
			GtkLabel* _tmp219_;
			GDateTime* creation_date_time = NULL;
			const gchar* _tmp220_;
			const gchar* _tmp221_;
			GDateTime* _tmp222_;
			GDateTime* today_date_time = NULL;
			GDateTime* _tmp223_;
			gboolean _tmp224_ = FALSE;
			GDateTime* _tmp225_;
			GDateTime* _tmp226_;
			gboolean is_birthday = FALSE;
			GtkBox* title_box = NULL;
			GtkBox* _tmp229_;
			GtkBox* _tmp230_;
			gchar* _tmp231_;
			gchar** _tmp232_;
			GtkLabel* _tmp233_ = NULL;
			GtkLabel* _tmp234_;
			GtkBox* _tmp243_;
			GtkBox* _tmp244_;
			GtkBox* _tmp245_;
			GtkLabel* _tmp246_;
			GtkFlowBox* _tmp247_;
			GtkBox* _tmp248_;
			GtkSizeGroup* _tmp249_;
			GtkBox* _tmp250_;
			self->priv->total_fields = self->priv->total_fields + 1;
			_tmp199_ = g_strdup ("ttl-profile-field");
			_tmp200_ = g_new0 (gchar*, 1 + 1);
			_tmp200_[0] = _tmp199_;
			_tmp201_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
			gtk_widget_set_css_classes ((GtkWidget*) _tmp201_, _tmp200_);
			_tmp200_ = (_vala_array_free (_tmp200_, 1, (GDestroyNotify) g_free), NULL);
			g_object_ref_sink (_tmp201_);
			row = _tmp201_;
			_tmp202_ = tuba_api_account_get_created_at (profile);
			_tmp203_ = _tmp202_;
			_tmp204_ = g_date_time_new_from_iso8601 (_tmp203_, NULL);
			parsed_date = _tmp204_;
			_tmp205_ = parsed_date;
			_tmp206_ = g_time_zone_new_local ();
			_tmp207_ = _tmp206_;
			_tmp208_ = g_date_time_to_timezone (_tmp205_, _tmp207_);
			_g_date_time_unref0 (parsed_date);
			parsed_date = _tmp208_;
			_g_time_zone_unref0 (_tmp207_);
			_tmp209_ = g_strdup (_ ("%B %e, %Y"));
			date_local = _tmp209_;
			_tmp210_ = parsed_date;
			_tmp211_ = date_local;
			_tmp212_ = g_date_time_format (_tmp210_, _tmp211_);
			_tmp213_ = _tmp212_;
			_tmp214_ = string_replace (_tmp213_, " ", "");
			_tmp215_ = _tmp214_;
			_tmp216_ = parsed_date;
			_tmp217_ = g_date_time_format (_tmp216_, "%F");
			_tmp218_ = (GtkLabel*) gtk_label_new (_tmp215_);
			gtk_label_set_wrap (_tmp218_, TRUE);
			gtk_label_set_xalign (_tmp218_, (gfloat) 0);
			gtk_widget_set_hexpand ((GtkWidget*) _tmp218_, TRUE);
			gtk_widget_set_tooltip_text ((GtkWidget*) _tmp218_, _tmp217_);
			_g_free0 (_tmp217_);
			gtk_label_set_selectable (_tmp218_, TRUE);
			g_object_ref_sink (_tmp218_);
			_tmp219_ = _tmp218_;
			_g_free0 (_tmp215_);
			_g_free0 (_tmp213_);
			val = _tmp219_;
			_tmp220_ = tuba_api_account_get_created_at (profile);
			_tmp221_ = _tmp220_;
			_tmp222_ = g_date_time_new_from_iso8601 (_tmp221_, NULL);
			creation_date_time = _tmp222_;
			_tmp223_ = g_date_time_new_now_local ();
			today_date_time = _tmp223_;
			_tmp225_ = creation_date_time;
			_tmp226_ = today_date_time;
			if (g_date_time_get_month (_tmp225_) == g_date_time_get_month (_tmp226_)) {
				GDateTime* _tmp227_;
				GDateTime* _tmp228_;
				_tmp227_ = creation_date_time;
				_tmp228_ = today_date_time;
				_tmp224_ = g_date_time_get_day_of_month (_tmp227_) == g_date_time_get_day_of_month (_tmp228_);
			} else {
				_tmp224_ = FALSE;
			}
			is_birthday = _tmp224_;
			_tmp229_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
			g_object_ref_sink (_tmp229_);
			title_box = _tmp229_;
			_tmp230_ = title_box;
			_tmp231_ = g_strdup ("dim-label");
			_tmp232_ = g_new0 (gchar*, 1 + 1);
			_tmp232_[0] = _tmp231_;
			_tmp233_ = (GtkLabel*) gtk_label_new (_ ("Joined"));
			gtk_widget_set_css_classes ((GtkWidget*) _tmp233_, _tmp232_);
			_tmp232_ = (_vala_array_free (_tmp232_, 1, (GDestroyNotify) g_free), NULL);
			g_object_ref_sink (_tmp233_);
			_tmp234_ = _tmp233_;
			gtk_box_append (_tmp230_, (GtkWidget*) _tmp234_);
			_g_object_unref0 (_tmp234_);
			if (is_birthday) {
				GtkBox* _tmp237_;
				GtkImage* _tmp238_;
				GtkImage* _tmp239_;
				if (self->priv->total_fields == 1) {
					GtkFlowBox* _tmp235_;
					_tmp235_ = self->priv->fields_box;
					gtk_widget_add_css_class ((GtkWidget*) _tmp235_, "ttl-birthday-field");
				} else {
					GtkBox* _tmp236_;
					_tmp236_ = row;
					gtk_widget_add_css_class ((GtkWidget*) _tmp236_, "ttl-birthday-field");
				}
				_tmp237_ = title_box;
				_tmp238_ = (GtkImage*) gtk_image_new_from_icon_name ("tuba-birthday-symbolic");
				g_object_ref_sink (_tmp238_);
				_tmp239_ = _tmp238_;
				gtk_box_prepend (_tmp237_, (GtkWidget*) _tmp239_);
				_g_object_unref0 (_tmp239_);
			} else {
				GtkBox* _tmp240_;
				GtkImage* _tmp241_;
				GtkImage* _tmp242_;
				_tmp240_ = title_box;
				_tmp241_ = (GtkImage*) gtk_image_new_from_icon_name ("contact-new-symbolic");
				g_object_ref_sink (_tmp241_);
				_tmp242_ = _tmp241_;
				gtk_box_prepend (_tmp240_, (GtkWidget*) _tmp242_);
				_g_object_unref0 (_tmp242_);
			}
			_tmp243_ = row;
			_tmp244_ = title_box;
			gtk_box_append (_tmp243_, (GtkWidget*) _tmp244_);
			_tmp245_ = row;
			_tmp246_ = val;
			gtk_box_append (_tmp245_, (GtkWidget*) _tmp246_);
			_tmp247_ = self->priv->fields_box;
			_tmp248_ = row;
			gtk_flow_box_append (_tmp247_, (GtkWidget*) _tmp248_);
			_tmp249_ = sizegroup;
			_tmp250_ = row;
			gtk_size_group_add_widget (_tmp249_, (GtkWidget*) _tmp250_);
			_g_object_unref0 (title_box);
			_g_date_time_unref0 (today_date_time);
			_g_date_time_unref0 (creation_date_time);
			_g_object_unref0 (val);
			_g_free0 (date_local);
			_g_date_time_unref0 (parsed_date);
			_g_object_unref0 (row);
		}
		_tmp251_ = self->priv->fields_box_row;
		gtk_widget_remove_css_class ((GtkWidget*) _tmp251_, "odd");
		_tmp252_ = self->priv->fields_box_row;
		gtk_widget_remove_css_class ((GtkWidget*) _tmp252_, "signle");
		if ((self->priv->total_fields % 2) != 0) {
			GtkListBoxRow* _tmp253_;
			_tmp253_ = self->priv->fields_box_row;
			gtk_widget_add_css_class ((GtkWidget*) _tmp253_, "odd");
		}
		if (self->priv->total_fields == 1) {
			GtkListBoxRow* _tmp254_;
			_tmp254_ = self->priv->fields_box_row;
			gtk_widget_add_css_class ((GtkWidget*) _tmp254_, "single");
		}
		_g_object_unref0 (profile_emoji_map);
		_g_object_unref0 (sizegroup);
	}
	_tmp257_ = self->priv->posts_btn;
	if (_tmp257_ != NULL) {
		TubaWidgetsCoverProfileStatsButton* _tmp258_;
		_tmp258_ = self->priv->following_btn;
		_tmp256_ = _tmp258_ != NULL;
	} else {
		_tmp256_ = FALSE;
	}
	if (_tmp256_) {
		TubaWidgetsCoverProfileStatsButton* _tmp259_;
		_tmp259_ = self->priv->followers_btn;
		_tmp255_ = _tmp259_ != NULL;
	} else {
		_tmp255_ = FALSE;
	}
	if (_tmp255_) {
		TubaWidgetsCoverProfileStatsButton* _tmp260_;
		gint64 _tmp261_;
		gint64 _tmp262_;
		TubaWidgetsCoverProfileStatsButton* _tmp263_;
		gint64 _tmp264_;
		gint64 _tmp265_;
		TubaWidgetsCoverProfileStatsButton* _tmp266_;
		TubaWidgetsCoverProfileStatsButton* _tmp267_;
		gint64 _tmp268_;
		gint64 _tmp269_;
		TubaWidgetsCoverProfileStatsButton* _tmp270_;
		gint64 _tmp271_;
		gint64 _tmp272_;
		TubaWidgetsCoverProfileStatsButton* _tmp273_;
		gint64 _tmp274_;
		gint64 _tmp275_;
		_tmp260_ = self->priv->posts_btn;
		_tmp261_ = tuba_api_account_get_statuses_count (profile);
		_tmp262_ = _tmp261_;
		tuba_widgets_cover_profile_stats_button_set_label_template (_tmp260_, ngettext ("%s Post", "%s Posts", (gulong) _tmp262_));
		_tmp263_ = self->priv->posts_btn;
		_tmp264_ = tuba_api_account_get_statuses_count (profile);
		_tmp265_ = _tmp264_;
		tuba_widgets_cover_profile_stats_button_set_amount (_tmp263_, _tmp265_);
		_tmp266_ = self->priv->following_btn;
		tuba_widgets_cover_profile_stats_button_set_label_template (_tmp266_, _ ("%s Following"));
		_tmp267_ = self->priv->following_btn;
		_tmp268_ = tuba_api_account_get_following_count (profile);
		_tmp269_ = _tmp268_;
		tuba_widgets_cover_profile_stats_button_set_amount (_tmp267_, _tmp269_);
		_tmp270_ = self->priv->followers_btn;
		_tmp271_ = tuba_api_account_get_followers_count (profile);
		_tmp272_ = _tmp271_;
		tuba_widgets_cover_profile_stats_button_set_label_template (_tmp270_, ngettext ("%s Follower", "%s Followers", (gulong) _tmp272_));
		_tmp273_ = self->priv->followers_btn;
		_tmp274_ = tuba_api_account_get_followers_count (profile);
		_tmp275_ = _tmp274_;
		tuba_widgets_cover_profile_stats_button_set_amount (_tmp273_, _tmp275_);
	}
	tuba_widgets_cover_update_aria (self);
}

static void
tuba_widgets_cover_on_rs_invalidation (TubaWidgetsCover* self,
                                       TubaAPIRelationship* rs)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_ = FALSE;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	AdwActionRow* _tmp7_;
	AdwActionRow* _tmp8_;
	gboolean _tmp9_;
	gboolean _tmp10_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (rs != NULL);
	_tmp0_ = tuba_api_relationship_to_string (rs);
	_tmp1_ = _tmp0_;
	tuba_widgets_cover_set_cover_badge_label (self, _tmp1_);
	_g_free0 (_tmp1_);
	_tmp3_ = tuba_api_relationship_get_note (rs);
	_tmp4_ = _tmp3_;
	if (_tmp4_ != NULL) {
		const gchar* _tmp5_;
		const gchar* _tmp6_;
		_tmp5_ = tuba_api_relationship_get_note (rs);
		_tmp6_ = _tmp5_;
		_tmp2_ = g_strcmp0 (_tmp6_, "") != 0;
	} else {
		_tmp2_ = FALSE;
	}
	_tmp7_ = self->priv->note_row;
	gtk_widget_set_visible ((GtkWidget*) _tmp7_, _tmp2_);
	_tmp8_ = self->priv->note_row;
	_tmp9_ = gtk_widget_get_visible ((GtkWidget*) _tmp8_);
	_tmp10_ = _tmp9_;
	if (_tmp10_) {
		AdwActionRow* _tmp11_;
		const gchar* _tmp12_;
		const gchar* _tmp13_;
		_tmp11_ = self->priv->note_row;
		_tmp12_ = tuba_api_relationship_get_note (rs);
		_tmp13_ = _tmp12_;
		adw_action_row_set_subtitle (_tmp11_, _tmp13_);
	}
	if (!self->priv->_mini) {
		TubaApplication* _tmp14_;
		_tmp14_ = tuba_app;
		g_signal_emit_by_name (_tmp14_, "relationship-invalidated", rs);
	}
	g_signal_emit (self, tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_RS_INVALIDATED_SIGNAL], 0);
	tuba_widgets_cover_update_aria (self);
}

static void
tuba_widgets_cover_update_fields_max_columns (TubaWidgetsCover* self)
{
	gint _tmp0_ = 0;
	TubaApplication* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	GtkFlowBox* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp1_ = tuba_app;
	_tmp2_ = tuba_application_get_is_mobile (_tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		_tmp0_ = 1;
	} else {
		_tmp0_ = 2;
	}
	_tmp4_ = self->priv->fields_box;
	gtk_flow_box_set_max_children_per_line (_tmp4_, (guint) _tmp0_);
}

static void
tuba_widgets_cover_on_moved_btn_clicked (TubaWidgetsCover* self)
{
	TubaAPIAccount* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->moved_to_account;
	if (_tmp0_ != NULL) {
		TubaAPIAccount* _tmp1_;
		_tmp1_ = self->priv->moved_to_account;
		tuba_widgetizable_open ((TubaWidgetizable*) _tmp1_);
	}
}

static void
__lambda145_ (TubaWidgetsCover* self)
{
	g_signal_emit (self, tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_TIMELINE_CHANGE_SIGNAL], 0, "statuses-like");
}

static void
___lambda145__gtk_button_clicked (GtkButton* _sender,
                                  gpointer self)
{
	__lambda145_ ((TubaWidgetsCover*) self);
}

static void
__lambda146_ (TubaWidgetsCover* self)
{
	g_signal_emit (self, tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_TIMELINE_CHANGE_SIGNAL], 0, "following");
}

static void
___lambda146__gtk_button_clicked (GtkButton* _sender,
                                  gpointer self)
{
	__lambda146_ ((TubaWidgetsCover*) self);
}

static void
__lambda147_ (TubaWidgetsCover* self)
{
	g_signal_emit (self, tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_TIMELINE_CHANGE_SIGNAL], 0, "followers");
}

static void
___lambda147__gtk_button_clicked (GtkButton* _sender,
                                  gpointer self)
{
	__lambda147_ ((TubaWidgetsCover*) self);
}

void
tuba_widgets_cover_build_profile_stats (TubaWidgetsCover* self,
                                        TubaAPIAccount* account)
{
	GtkListBoxRow* row = NULL;
	GtkListBoxRow* _tmp0_;
	GtkBox* box = NULL;
	GtkBox* _tmp1_;
	GtkSizeGroup* sizegroup = NULL;
	GtkSizeGroup* _tmp2_;
	TubaWidgetsCoverProfileStatsButton* _tmp3_;
	TubaWidgetsCoverProfileStatsButton* _tmp4_;
	TubaWidgetsCoverProfileStatsButton* _tmp5_;
	TubaWidgetsCoverProfileStatsButton* _tmp6_;
	GtkSeparator* separator = NULL;
	GtkSeparator* _tmp7_;
	GtkSeparator* _tmp8_;
	TubaWidgetsCoverProfileStatsButton* _tmp9_;
	TubaWidgetsCoverProfileStatsButton* _tmp10_;
	TubaWidgetsCoverProfileStatsButton* _tmp11_;
	TubaWidgetsCoverProfileStatsButton* _tmp12_;
	GtkSeparator* _tmp13_;
	GtkSeparator* _tmp14_;
	TubaWidgetsCoverProfileStatsButton* _tmp15_;
	TubaWidgetsCoverProfileStatsButton* _tmp16_;
	TubaWidgetsCoverProfileStatsButton* _tmp17_;
	TubaWidgetsCoverProfileStatsButton* _tmp18_;
	GtkListBox* _tmp19_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (account != NULL);
	_tmp0_ = (GtkListBoxRow*) gtk_list_box_row_new ();
	g_object_ref_sink (_tmp0_);
	row = _tmp0_;
	_tmp1_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
	g_object_ref_sink (_tmp1_);
	box = _tmp1_;
	_tmp2_ = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
	sizegroup = _tmp2_;
	_tmp3_ = tuba_widgets_cover_profile_stats_button_new ();
	g_object_ref_sink (_tmp3_);
	_g_object_unref0 (self->priv->posts_btn);
	self->priv->posts_btn = _tmp3_;
	_tmp4_ = self->priv->posts_btn;
	g_signal_connect_object ((GtkButton*) _tmp4_, "clicked", (GCallback) ___lambda145__gtk_button_clicked, self, 0);
	_tmp5_ = self->priv->posts_btn;
	gtk_size_group_add_widget (sizegroup, (GtkWidget*) _tmp5_);
	_tmp6_ = self->priv->posts_btn;
	gtk_box_append (box, (GtkWidget*) _tmp6_);
	_tmp7_ = (GtkSeparator*) gtk_separator_new (GTK_ORIENTATION_VERTICAL);
	g_object_ref_sink (_tmp7_);
	separator = _tmp7_;
	_tmp8_ = separator;
	gtk_box_append (box, (GtkWidget*) _tmp8_);
	_tmp9_ = tuba_widgets_cover_profile_stats_button_new ();
	g_object_ref_sink (_tmp9_);
	_g_object_unref0 (self->priv->following_btn);
	self->priv->following_btn = _tmp9_;
	_tmp10_ = self->priv->following_btn;
	g_signal_connect_object ((GtkButton*) _tmp10_, "clicked", (GCallback) ___lambda146__gtk_button_clicked, self, 0);
	_tmp11_ = self->priv->following_btn;
	gtk_size_group_add_widget (sizegroup, (GtkWidget*) _tmp11_);
	_tmp12_ = self->priv->following_btn;
	gtk_box_append (box, (GtkWidget*) _tmp12_);
	_tmp13_ = (GtkSeparator*) gtk_separator_new (GTK_ORIENTATION_VERTICAL);
	g_object_ref_sink (_tmp13_);
	_g_object_unref0 (separator);
	separator = _tmp13_;
	_tmp14_ = separator;
	gtk_box_append (box, (GtkWidget*) _tmp14_);
	_tmp15_ = tuba_widgets_cover_profile_stats_button_new ();
	g_object_ref_sink (_tmp15_);
	_g_object_unref0 (self->priv->followers_btn);
	self->priv->followers_btn = _tmp15_;
	_tmp16_ = self->priv->followers_btn;
	g_signal_connect_object ((GtkButton*) _tmp16_, "clicked", (GCallback) ___lambda147__gtk_button_clicked, self, 0);
	_tmp17_ = self->priv->followers_btn;
	gtk_size_group_add_widget (sizegroup, (GtkWidget*) _tmp17_);
	_tmp18_ = self->priv->followers_btn;
	gtk_box_append (box, (GtkWidget*) _tmp18_);
	gtk_list_box_row_set_activatable (row, FALSE);
	gtk_widget_set_focusable ((GtkWidget*) row, FALSE);
	gtk_list_box_row_set_child (row, (GtkWidget*) box);
	_tmp19_ = self->priv->info;
	gtk_list_box_append (_tmp19_, (GtkWidget*) row);
	_g_object_unref0 (separator);
	_g_object_unref0 (sizegroup);
	_g_object_unref0 (box);
	_g_object_unref0 (row);
}

static void
tuba_widgets_cover_on_cache_response (TubaWidgetsCover* self,
                                      GdkPaintable* data)
{
	TubaWidgetsBackground* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->background;
	tuba_widgets_background_set_paintable (_tmp0_, data);
}

static void
tuba_widgets_cover_on_edit_note (TubaWidgetsCover* self)
{
	gboolean _tmp0_ = FALSE;
	AdwActionRow* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->note_row;
	_tmp2_ = gtk_widget_get_visible ((GtkWidget*) _tmp1_);
	_tmp3_ = _tmp2_;
	if (!_tmp3_) {
		_tmp0_ = TRUE;
	} else {
		AdwActionRow* _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
		_tmp4_ = self->priv->note_row;
		_tmp5_ = gtk_widget_get_can_target ((GtkWidget*) _tmp4_);
		_tmp6_ = _tmp5_;
		_tmp0_ = !_tmp6_;
	}
	if (_tmp0_) {
		return;
	}
	g_signal_emit (self, tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_EDIT_NOTE_SIGNAL], 0);
}

static void
_tuba_widgets_cover_on_edit_note_gtk_button_clicked (GtkButton* _sender,
                                                     gpointer self)
{
	tuba_widgets_cover_on_edit_note ((TubaWidgetsCover*) self);
}

TubaAPIRelationship*
tuba_widgets_cover_get_rs (TubaWidgetsCover* self)
{
	TubaAPIRelationship* result;
	TubaAPIRelationship* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_rs;
	result = _tmp0_;
	return result;
}

void
tuba_widgets_cover_set_rs (TubaWidgetsCover* self,
                           TubaAPIRelationship* value)
{
	TubaAPIRelationship* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_widgets_cover_get_rs (self);
	if (old_value != value) {
		TubaAPIRelationship* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_rs);
		self->priv->_rs = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_widgets_cover_properties[TUBA_WIDGETS_COVER_RS_PROPERTY]);
	}
}

const gchar*
tuba_widgets_cover_get_cover_badge_label (TubaWidgetsCover* self)
{
	const gchar* result;
	GtkLabel* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->cover_badge;
	_tmp1_ = gtk_label_get_label (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_cover_set_cover_badge_label (TubaWidgetsCover* self,
                                          const gchar* value)
{
	gboolean has_label = FALSE;
	GtkLabel* _tmp0_;
	GtkLabel* _tmp1_;
	g_return_if_fail (self != NULL);
	has_label = g_strcmp0 (value, "") != 0;
	_tmp0_ = self->priv->cover_badge;
	gtk_widget_set_visible ((GtkWidget*) _tmp0_, has_label);
	_tmp1_ = self->priv->cover_badge;
	gtk_label_set_label (_tmp1_, value);
	tuba_widgets_cover_update_cover_badge (self);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_cover_properties[TUBA_WIDGETS_COVER_COVER_BADGE_LABEL_PROPERTY]);
}

gboolean
tuba_widgets_cover_get_is_bot (TubaWidgetsCover* self)
{
	gboolean result;
	GtkImage* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->cover_bot_badge;
	_tmp1_ = gtk_widget_get_visible ((GtkWidget*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_cover_set_is_bot (TubaWidgetsCover* self,
                               gboolean value)
{
	GtkImage* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->cover_bot_badge;
	gtk_widget_set_visible ((GtkWidget*) _tmp0_, value);
	tuba_widgets_cover_update_cover_badge (self);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_cover_properties[TUBA_WIDGETS_COVER_IS_BOT_PROPERTY]);
}

static const gchar*
tuba_widgets_cover_get_avi_url (TubaWidgetsCover* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_avi_url;
	result = _tmp0_;
	return result;
}

static void
tuba_widgets_cover_set_avi_url (TubaWidgetsCover* self,
                                const gchar* value)
{
	gchar* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup (value);
	_g_free0 (self->priv->_avi_url);
	self->priv->_avi_url = _tmp0_;
}

static const gchar*
tuba_widgets_cover_get_header_url (TubaWidgetsCover* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_header_url;
	result = _tmp0_;
	return result;
}

static void
tuba_widgets_cover_set_header_url (TubaWidgetsCover* self,
                                   const gchar* value)
{
	gchar* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup (value);
	_g_free0 (self->priv->_header_url);
	self->priv->_header_url = _tmp0_;
}

static inline gpointer
tuba_widgets_cover_mutuals_button_content_get_instance_private (TubaWidgetsCoverMutualsButtonContent* self)
{
	return G_STRUCT_MEMBER_P (self, TubaWidgetsCoverMutualsButtonContent_private_offset);
}

static Block96Data*
block96_data_ref (Block96Data* _data96_)
{
	g_atomic_int_inc (&_data96_->_ref_count_);
	return _data96_;
}

static void
block96_data_unref (void * _userdata_)
{
	Block96Data* _data96_;
	_data96_ = (Block96Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data96_->_ref_count_)) {
		TubaWidgetsCoverMutualsButtonContent* self;
		self = _data96_->self;
		_g_object_unref0 (_data96_->total_custom_emojis);
		_g_object_unref0 (self);
		g_slice_free (Block96Data, _data96_);
	}
}

static Block97Data*
block97_data_ref (Block97Data* _data97_)
{
	g_atomic_int_inc (&_data97_->_ref_count_);
	return _data97_;
}

static void
block97_data_unref (void * _userdata_)
{
	Block97Data* _data97_;
	_data97_ = (Block97Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data97_->_ref_count_)) {
		TubaWidgetsCoverMutualsButtonContent* self;
		self = _data97_->_data96_->self;
		block96_data_unref (_data97_->_data96_);
		_data97_->_data96_ = NULL;
		g_slice_free (Block97Data, _data97_);
	}
}

static Block98Data*
block98_data_ref (Block98Data* _data98_)
{
	g_atomic_int_inc (&_data98_->_ref_count_);
	return _data98_;
}

static void
block98_data_unref (void * _userdata_)
{
	Block98Data* _data98_;
	_data98_ = (Block98Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data98_->_ref_count_)) {
		TubaWidgetsCoverMutualsButtonContent* self;
		self = _data98_->_data97_->_data96_->self;
		_g_free0 (_data98_->display_name);
		block97_data_unref (_data98_->_data97_);
		_data98_->_data97_ = NULL;
		g_slice_free (Block98Data, _data98_);
	}
}

static gint
string_index_of_char (const gchar* self,
                      gunichar c,
                      gint start_index)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	_tmp0_ = g_utf8_strchr (((gchar*) self) + start_index, (gssize) -1, c);
	_result_ = _tmp0_;
	_tmp1_ = _result_;
	if (_tmp1_ != NULL) {
		gchar* _tmp2_;
		_tmp2_ = _result_;
		result = (gint) (_tmp2_ - ((gchar*) self));
		return result;
	} else {
		result = -1;
		return result;
	}
}

static gboolean
______lambda144_ (Block98Data* _data98_,
                  GeeMapEntry* e)
{
	Block97Data* _data97_;
	Block96Data* _data96_;
	TubaWidgetsCoverMutualsButtonContent* self;
	gchar* new_moji_name = NULL;
	gconstpointer _tmp0_;
	gconstpointer _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	gconstpointer _tmp8_;
	gconstpointer _tmp9_;
	const gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	const gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	GeeHashMap* _tmp17_;
	gconstpointer _tmp18_;
	gconstpointer _tmp19_;
	gboolean result;
	_data97_ = _data98_->_data97_;
	_data96_ = _data97_->_data96_;
	self = _data96_->self;
	g_return_val_if_fail (e != NULL, FALSE);
	_tmp0_ = gee_map_entry_get_key (e);
	_tmp1_ = _tmp0_;
	_tmp2_ = string_to_string ((const gchar*) _tmp1_);
	_tmp3_ = g_strdup_printf ("%i", _data97_->i);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_strconcat (_tmp2_, "_", _tmp4_, NULL);
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	new_moji_name = _tmp6_;
	_tmp7_ = _data98_->display_name;
	_tmp8_ = gee_map_entry_get_key (e);
	_tmp9_ = _tmp8_;
	_tmp10_ = string_to_string ((const gchar*) _tmp9_);
	_tmp11_ = g_strconcat (":", _tmp10_, ":", NULL);
	_tmp12_ = _tmp11_;
	_tmp13_ = string_to_string (new_moji_name);
	_tmp14_ = g_strconcat (":", _tmp13_, ":", NULL);
	_tmp15_ = _tmp14_;
	_tmp16_ = string_replace (_tmp7_, _tmp12_, _tmp15_);
	_g_free0 (_data98_->display_name);
	_data98_->display_name = _tmp16_;
	_g_free0 (_tmp15_);
	_g_free0 (_tmp12_);
	_tmp17_ = _data96_->total_custom_emojis;
	_tmp18_ = gee_map_entry_get_value (e);
	_tmp19_ = _tmp18_;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp17_, new_moji_name, (const gchar*) _tmp19_);
	result = TRUE;
	_g_free0 (new_moji_name);
	_g_object_unref0 (e);
	return result;
}

static gboolean
_______lambda144__gee_forall_func (gpointer g,
                                   gpointer self)
{
	gboolean result;
	result = ______lambda144_ (self, (GeeMapEntry*) g);
	return result;
}

static void
_vala_array_add145 (gchar** * array,
                    gint* length,
                    gint* size,
                    gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

TubaWidgetsCoverMutualsButtonContent*
tuba_widgets_cover_mutuals_button_content_construct (GType object_type,
                                                     GeeArrayList* mutual_accounts)
{
	TubaWidgetsCoverMutualsButtonContent * self = NULL;
	Block96Data* _data96_;
	GeeHashMap* _tmp0_;
	gchar** display_named = NULL;
	gchar** _tmp1_;
	gint display_named_length1;
	gint _display_named_size_;
	gint max_accs = 0;
	gint _tmp2_;
	gint _tmp3_;
	TubaWidgetsEmojiLabel* _tmp28_;
	GeeHashMap* _tmp29_;
	gint others_count = 0;
	gint _tmp30_;
	gint _tmp31_;
	g_return_val_if_fail (mutual_accounts != NULL, NULL);
	_data96_ = g_slice_new0 (Block96Data);
	_data96_->_ref_count_ = 1;
	self = (TubaWidgetsCoverMutualsButtonContent*) g_object_new (object_type, NULL);
	_data96_->self = g_object_ref (self);
	_tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	_data96_->total_custom_emojis = _tmp0_;
	_tmp1_ = g_new0 (gchar*, 0 + 1);
	display_named = _tmp1_;
	display_named_length1 = 0;
	_display_named_size_ = display_named_length1;
	max_accs = 3;
	_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) mutual_accounts);
	_tmp3_ = _tmp2_;
	if (_tmp3_ == (max_accs + 1)) {
		max_accs = max_accs + 1;
	}
	{
		Block97Data* _data97_;
		_data97_ = g_slice_new0 (Block97Data);
		_data97_->_ref_count_ = 1;
		_data97_->_data96_ = block96_data_ref (_data96_);
		_data97_->i = 0;
		{
			gboolean _tmp4_ = FALSE;
			_tmp4_ = TRUE;
			while (TRUE) {
				Block98Data* _data98_;
				gint _tmp6_;
				gint _tmp7_;
				TubaAPIAccount* acc = NULL;
				gpointer _tmp8_;
				TubaAPIAccount* _tmp9_;
				const gchar* _tmp10_;
				const gchar* _tmp11_;
				gchar* _tmp12_;
				const gchar* _tmp13_;
				TubaWidgetsAvatar* avi = NULL;
				TubaAPIAccount* _tmp18_;
				TubaAPIAccount* _tmp19_;
				TubaWidgetsAvatar* _tmp20_ = NULL;
				TubaWidgetsAvatar* _tmp22_;
				TubaWidgetsAvatar* _tmp23_;
				GtkBox* _tmp24_;
				TubaWidgetsAvatar* _tmp25_;
				const gchar* _tmp26_;
				gchar* _tmp27_;
				_data98_ = g_slice_new0 (Block98Data);
				_data98_->_ref_count_ = 1;
				_data98_->_data97_ = block97_data_ref (_data97_);
				if (!_tmp4_) {
					gint _tmp5_;
					_tmp5_ = _data97_->i;
					_data97_->i = _tmp5_ + 1;
				}
				_tmp4_ = FALSE;
				_tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) mutual_accounts);
				_tmp7_ = _tmp6_;
				if (!(_data97_->i < MIN (max_accs, _tmp7_))) {
					block98_data_unref (_data98_);
					_data98_ = NULL;
					break;
				}
				_tmp8_ = gee_abstract_list_get ((GeeAbstractList*) mutual_accounts, _data97_->i);
				acc = (TubaAPIAccount*) _tmp8_;
				_tmp9_ = acc;
				_tmp10_ = tuba_api_account_get_display_name (_tmp9_);
				_tmp11_ = _tmp10_;
				_tmp12_ = g_strdup (_tmp11_);
				_data98_->display_name = _tmp12_;
				_tmp13_ = _data98_->display_name;
				if (string_index_of_char (_tmp13_, (gunichar) ':', 0) >= 0) {
					TubaAPIAccount* _tmp14_;
					GeeHashMap* _tmp15_;
					GeeHashMap* _tmp16_;
					GeeHashMap* _tmp17_;
					_tmp14_ = acc;
					_tmp15_ = tuba_api_account_get_emojis_map (_tmp14_);
					_tmp16_ = _tmp15_;
					_tmp17_ = _tmp16_;
					gee_abstract_map_foreach ((GeeAbstractMap*) _tmp17_, _______lambda144__gee_forall_func, _data98_);
					_g_object_unref0 (_tmp17_);
				}
				_tmp18_ = acc;
				_tmp19_ = _g_object_ref0 (_tmp18_);
				_tmp20_ = tuba_widgets_avatar_new ();
				tuba_widgets_avatar_set_account (_tmp20_, _tmp19_);
				_g_object_unref0 (_tmp19_);
				tuba_widgets_avatar_set_size (_tmp20_, 24);
				g_object_ref_sink (_tmp20_);
				avi = _tmp20_;
				if (_data97_->i == 0) {
					TubaWidgetsAvatar* _tmp21_;
					_tmp21_ = avi;
					gtk_widget_add_css_class ((GtkWidget*) _tmp21_, "first-avi");
				}
				_tmp22_ = avi;
				gtk_widget_add_css_class ((GtkWidget*) _tmp22_, "no-min-size");
				_tmp23_ = avi;
				gtk_widget_add_css_class ((GtkWidget*) _tmp23_, "mutual-avi");
				_tmp24_ = self->priv->avi_box;
				_tmp25_ = avi;
				gtk_box_append (_tmp24_, (GtkWidget*) _tmp25_);
				_tmp26_ = _data98_->display_name;
				_tmp27_ = g_strdup (_tmp26_);
				_vala_array_add145 (&display_named, &display_named_length1, &_display_named_size_, _tmp27_);
				_g_object_unref0 (avi);
				_g_object_unref0 (acc);
				block98_data_unref (_data98_);
				_data98_ = NULL;
			}
		}
		block97_data_unref (_data97_);
		_data97_ = NULL;
	}
	_tmp28_ = self->priv->emoji_label;
	_tmp29_ = _data96_->total_custom_emojis;
	tuba_widgets_emoji_label_set_instance_emojis (_tmp28_, _tmp29_);
	_tmp30_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) mutual_accounts);
	_tmp31_ = _tmp30_;
	others_count = _tmp31_ - max_accs;
	if (others_count > 0) {
		TubaWidgetsEmojiLabel* _tmp32_;
		gchar** _tmp33_;
		gint _tmp33__length1;
		gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		gchar* _tmp37_;
		gchar* _tmp38_;
		gchar* _tmp39_;
		_tmp32_ = self->priv->emoji_label;
		_tmp33_ = display_named;
		_tmp33__length1 = display_named_length1;
		_tmp34_ = _vala_g_strjoinv (", ", _tmp33_, (gint) _tmp33__length1);
		_tmp35_ = _tmp34_;
		_tmp36_ = tuba_utils_units_shorten ((gint64) others_count);
		_tmp37_ = _tmp36_;
		_tmp38_ = g_strdup_printf (ngettext ("Followed by %s & %s Other", "Followed by %s & %s Others", (gulong) others_count), _tmp35_, _tmp37_);
		_tmp39_ = _tmp38_;
		tuba_widgets_emoji_label_set_content (_tmp32_, _tmp39_);
		gtk_widget_set_tooltip_text ((GtkWidget*) self, _tmp39_);
		_g_free0 (_tmp39_);
		_g_free0 (_tmp37_);
		_g_free0 (_tmp35_);
	} else {
		gchar* display_name_list = NULL;
		gchar** _tmp40_;
		gint _tmp40__length1;
		TubaWidgetsEmojiLabel* _tmp53_;
		const gchar* _tmp54_;
		gchar* _tmp55_;
		gchar* _tmp56_;
		_tmp40_ = display_named;
		_tmp40__length1 = display_named_length1;
		switch (_tmp40__length1) {
			case 1:
			{
				gchar** _tmp41_;
				gint _tmp41__length1;
				const gchar* _tmp42_;
				gchar* _tmp43_;
				_tmp41_ = display_named;
				_tmp41__length1 = display_named_length1;
				_tmp42_ = _tmp41_[0];
				_tmp43_ = g_strdup (_tmp42_);
				_g_free0 (display_name_list);
				display_name_list = _tmp43_;
				break;
			}
			default:
			{
				gint last_index = 0;
				gchar** _tmp44_;
				gint _tmp44__length1;
				gchar** _tmp45_;
				gint _tmp45__length1;
				gchar* _tmp46_;
				gchar* _tmp47_;
				const gchar* _tmp48_;
				gchar** _tmp49_;
				gint _tmp49__length1;
				const gchar* _tmp50_;
				const gchar* _tmp51_;
				gchar* _tmp52_;
				_tmp44_ = display_named;
				_tmp44__length1 = display_named_length1;
				last_index = _tmp44__length1 - 1;
				_tmp45_ = display_named;
				_tmp45__length1 = display_named_length1;
				_tmp46_ = _vala_g_strjoinv (", ", _tmp45_ + 0, (gint) (last_index - 0));
				_tmp47_ = _tmp46_;
				_tmp48_ = string_to_string (_tmp47_);
				_tmp49_ = display_named;
				_tmp49__length1 = display_named_length1;
				_tmp50_ = _tmp49_[last_index];
				_tmp51_ = string_to_string (_tmp50_);
				_tmp52_ = g_strconcat (_tmp48_, " & ", _tmp51_, NULL);
				_g_free0 (display_name_list);
				display_name_list = _tmp52_;
				_g_free0 (_tmp47_);
				break;
			}
		}
		_tmp53_ = self->priv->emoji_label;
		_tmp54_ = display_name_list;
		_tmp55_ = g_strdup_printf (_ ("Followed by %s"), _tmp54_);
		_tmp56_ = _tmp55_;
		tuba_widgets_emoji_label_set_content (_tmp53_, _tmp56_);
		gtk_widget_set_tooltip_text ((GtkWidget*) self, _tmp56_);
		_g_free0 (_tmp56_);
		_g_free0 (display_name_list);
	}
	display_named = (_vala_array_free (display_named, display_named_length1, (GDestroyNotify) g_free), NULL);
	block96_data_unref (_data96_);
	_data96_ = NULL;
	return self;
}

TubaWidgetsCoverMutualsButtonContent*
tuba_widgets_cover_mutuals_button_content_new (GeeArrayList* mutual_accounts)
{
	return tuba_widgets_cover_mutuals_button_content_construct (TUBA_WIDGETS_COVER_TYPE_MUTUALS_BUTTON_CONTENT, mutual_accounts);
}

static GObject *
tuba_widgets_cover_mutuals_button_content_constructor (GType type,
                                                       guint n_construct_properties,
                                                       GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	TubaWidgetsCoverMutualsButtonContent * self;
	GtkBox* _tmp0_;
	TubaWidgetsEmojiLabel* _tmp1_ = NULL;
	TubaWidgetsEmojiLabel* _tmp2_;
	GtkBox* _tmp3_;
	TubaWidgetsEmojiLabel* _tmp4_;
	parent_class = G_OBJECT_CLASS (tuba_widgets_cover_mutuals_button_content_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_WIDGETS_COVER_TYPE_MUTUALS_BUTTON_CONTENT, TubaWidgetsCoverMutualsButtonContent);
	gtk_orientable_set_orientation ((GtkOrientable*) self, GTK_ORIENTATION_HORIZONTAL);
	gtk_box_set_spacing ((GtkBox*) self, 6);
	_tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->avi_box);
	self->priv->avi_box = _tmp0_;
	_tmp1_ = tuba_widgets_emoji_label_new (NULL, NULL);
	tuba_widgets_label_with_widgets_set_use_markup ((TubaWidgetsLabelWithWidgets*) _tmp1_, FALSE);
	tuba_widgets_label_with_widgets_set_ellipsize ((TubaWidgetsLabelWithWidgets*) _tmp1_, TRUE);
	gtk_widget_set_valign ((GtkWidget*) _tmp1_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp1_);
	_g_object_unref0 (self->priv->emoji_label);
	self->priv->emoji_label = _tmp1_;
	_tmp2_ = self->priv->emoji_label;
	gtk_widget_add_css_class ((GtkWidget*) _tmp2_, "dim-label");
	_tmp3_ = self->priv->avi_box;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp3_);
	_tmp4_ = self->priv->emoji_label;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp4_);
	return obj;
}

static void
tuba_widgets_cover_mutuals_button_content_class_init (TubaWidgetsCoverMutualsButtonContentClass * klass,
                                                      gpointer klass_data)
{
	tuba_widgets_cover_mutuals_button_content_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaWidgetsCoverMutualsButtonContent_private_offset);
	G_OBJECT_CLASS (klass)->constructor = tuba_widgets_cover_mutuals_button_content_constructor;
	G_OBJECT_CLASS (klass)->finalize = tuba_widgets_cover_mutuals_button_content_finalize;
}

static void
tuba_widgets_cover_mutuals_button_content_instance_init (TubaWidgetsCoverMutualsButtonContent * self,
                                                         gpointer klass)
{
	self->priv = tuba_widgets_cover_mutuals_button_content_get_instance_private (self);
}

static void
tuba_widgets_cover_mutuals_button_content_finalize (GObject * obj)
{
	TubaWidgetsCoverMutualsButtonContent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_WIDGETS_COVER_TYPE_MUTUALS_BUTTON_CONTENT, TubaWidgetsCoverMutualsButtonContent);
	_g_object_unref0 (self->priv->avi_box);
	_g_object_unref0 (self->priv->emoji_label);
	G_OBJECT_CLASS (tuba_widgets_cover_mutuals_button_content_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_widgets_cover_mutuals_button_content_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaWidgetsCoverMutualsButtonContentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_widgets_cover_mutuals_button_content_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaWidgetsCoverMutualsButtonContent), 0, (GInstanceInitFunc) tuba_widgets_cover_mutuals_button_content_instance_init, NULL };
	GType tuba_widgets_cover_mutuals_button_content_type_id;
	tuba_widgets_cover_mutuals_button_content_type_id = g_type_register_static (gtk_box_get_type (), "TubaWidgetsCoverMutualsButtonContent", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaWidgetsCoverMutualsButtonContent_private_offset = g_type_add_instance_private (tuba_widgets_cover_mutuals_button_content_type_id, sizeof (TubaWidgetsCoverMutualsButtonContentPrivate));
	return tuba_widgets_cover_mutuals_button_content_type_id;
}

GType
tuba_widgets_cover_mutuals_button_content_get_type (void)
{
	static GType tuba_widgets_cover_mutuals_button_content_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_widgets_cover_mutuals_button_content_type_id__once)) {
		GType tuba_widgets_cover_mutuals_button_content_type_id;
		tuba_widgets_cover_mutuals_button_content_type_id = tuba_widgets_cover_mutuals_button_content_get_type_once ();
		g_once_init_leave_pointer (&tuba_widgets_cover_mutuals_button_content_type_id__once, tuba_widgets_cover_mutuals_button_content_type_id);
	}
	return tuba_widgets_cover_mutuals_button_content_type_id__once;
}

static inline gpointer
tuba_widgets_cover_profile_stats_button_get_instance_private (TubaWidgetsCoverProfileStatsButton* self)
{
	return G_STRUCT_MEMBER_P (self, TubaWidgetsCoverProfileStatsButton_private_offset);
}

TubaWidgetsCoverProfileStatsButton*
tuba_widgets_cover_profile_stats_button_construct (GType object_type)
{
	TubaWidgetsCoverProfileStatsButton * self = NULL;
	self = (TubaWidgetsCoverProfileStatsButton*) g_object_new (object_type, NULL);
	return self;
}

TubaWidgetsCoverProfileStatsButton*
tuba_widgets_cover_profile_stats_button_new (void)
{
	return tuba_widgets_cover_profile_stats_button_construct (TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON);
}

const gchar*
tuba_widgets_cover_profile_stats_button_get_label_template (TubaWidgetsCoverProfileStatsButton* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_label_template;
	result = _tmp0_;
	return result;
}

void
tuba_widgets_cover_profile_stats_button_set_label_template (TubaWidgetsCoverProfileStatsButton* self,
                                                            const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_widgets_cover_profile_stats_button_get_label_template (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_label_template);
		self->priv->_label_template = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_widgets_cover_profile_stats_button_properties[TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_LABEL_TEMPLATE_PROPERTY]);
	}
}

static gchar*
string_strip (const gchar* self)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup (self);
	_result_ = _tmp0_;
	g_strstrip (_result_);
	result = _result_;
	return result;
}

void
tuba_widgets_cover_profile_stats_button_set_amount (TubaWidgetsCoverProfileStatsButton* self,
                                                    gint64 value)
{
	g_return_if_fail (self != NULL);
	if (value == ((gint64) -1)) {
		const gchar* _tmp0_;
		gchar* _tmp1_;
		gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		const gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		_tmp0_ = self->priv->_label_template;
		_tmp1_ = g_strdup_printf (_tmp0_, "");
		_tmp2_ = _tmp1_;
		_tmp3_ = string_strip (_tmp2_);
		_tmp4_ = _tmp3_;
		gtk_button_set_label ((GtkButton*) self, _tmp4_);
		_g_free0 (_tmp4_);
		_g_free0 (_tmp2_);
		_tmp5_ = self->priv->_label_template;
		_tmp6_ = g_strdup_printf (_tmp5_, _ ("Hidden"));
		_tmp7_ = _tmp6_;
		gtk_widget_set_tooltip_text ((GtkWidget*) self, _tmp7_);
		_g_free0 (_tmp7_);
	} else {
		const gchar* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		const gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		_tmp8_ = self->priv->_label_template;
		_tmp9_ = tuba_utils_units_shorten (value);
		_tmp10_ = _tmp9_;
		_tmp11_ = g_strdup_printf (_tmp8_, _tmp10_);
		_tmp12_ = _tmp11_;
		gtk_button_set_label ((GtkButton*) self, _tmp12_);
		_g_free0 (_tmp12_);
		_g_free0 (_tmp10_);
		_tmp13_ = self->priv->_label_template;
		_tmp14_ = g_strdup_printf ("%" G_GINT64_FORMAT, value);
		_tmp15_ = _tmp14_;
		_tmp16_ = g_strdup_printf (_tmp13_, _tmp15_);
		_tmp17_ = _tmp16_;
		gtk_widget_set_tooltip_text ((GtkWidget*) self, _tmp17_);
		_g_free0 (_tmp17_);
		_g_free0 (_tmp15_);
	}
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_cover_profile_stats_button_properties[TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_AMOUNT_PROPERTY]);
}

static GObject *
tuba_widgets_cover_profile_stats_button_constructor (GType type,
                                                     guint n_construct_properties,
                                                     GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	TubaWidgetsCoverProfileStatsButton * self;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar** _tmp2_;
	gchar** _tmp3_;
	gint _tmp3__length1;
	GtkLabel* child_label = NULL;
	GtkWidget* _tmp4_;
	GtkWidget* _tmp5_;
	GtkLabel* _tmp6_;
	GtkLabel* _tmp7_;
	GtkLabel* _tmp8_;
	GtkLabel* _tmp9_;
	parent_class = G_OBJECT_CLASS (tuba_widgets_cover_profile_stats_button_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON, TubaWidgetsCoverProfileStatsButton);
	_tmp0_ = g_strdup ("flat");
	_tmp1_ = g_strdup ("ttl-profile-stat-button");
	_tmp2_ = g_new0 (gchar*, 2 + 1);
	_tmp2_[0] = _tmp0_;
	_tmp2_[1] = _tmp1_;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 2;
	gtk_widget_set_css_classes ((GtkWidget*) self, _tmp3_);
	_tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
	gtk_widget_set_hexpand ((GtkWidget*) self, TRUE);
	gtk_button_set_label ((GtkButton*) self, "");
	_tmp4_ = gtk_button_get_child ((GtkButton*) self);
	_tmp5_ = _tmp4_;
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp5_) : NULL);
	child_label = _tmp6_;
	_tmp7_ = child_label;
	gtk_label_set_wrap (_tmp7_, TRUE);
	_tmp8_ = child_label;
	gtk_label_set_justify (_tmp8_, GTK_JUSTIFY_CENTER);
	_tmp9_ = child_label;
	gtk_label_set_wrap_mode (_tmp9_, PANGO_WRAP_WORD_CHAR);
	_g_object_unref0 (child_label);
	return obj;
}

static void
tuba_widgets_cover_profile_stats_button_class_init (TubaWidgetsCoverProfileStatsButtonClass * klass,
                                                    gpointer klass_data)
{
	tuba_widgets_cover_profile_stats_button_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaWidgetsCoverProfileStatsButton_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_widgets_cover_profile_stats_button_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_widgets_cover_profile_stats_button_set_property;
	G_OBJECT_CLASS (klass)->constructor = tuba_widgets_cover_profile_stats_button_constructor;
	G_OBJECT_CLASS (klass)->finalize = tuba_widgets_cover_profile_stats_button_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_LABEL_TEMPLATE_PROPERTY, tuba_widgets_cover_profile_stats_button_properties[TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_LABEL_TEMPLATE_PROPERTY] = g_param_spec_string ("label-template", "label-template", "label-template", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_AMOUNT_PROPERTY, tuba_widgets_cover_profile_stats_button_properties[TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_AMOUNT_PROPERTY] = g_param_spec_int64 ("amount", "amount", "amount", G_MININT64, G_MAXINT64, 0, G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE));
}

static void
tuba_widgets_cover_profile_stats_button_instance_init (TubaWidgetsCoverProfileStatsButton * self,
                                                       gpointer klass)
{
	gchar* _tmp0_;
	self->priv = tuba_widgets_cover_profile_stats_button_get_instance_private (self);
	_tmp0_ = g_strdup ("%s");
	self->priv->_label_template = _tmp0_;
}

static void
tuba_widgets_cover_profile_stats_button_finalize (GObject * obj)
{
	TubaWidgetsCoverProfileStatsButton * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON, TubaWidgetsCoverProfileStatsButton);
	_g_free0 (self->priv->_label_template);
	G_OBJECT_CLASS (tuba_widgets_cover_profile_stats_button_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_widgets_cover_profile_stats_button_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaWidgetsCoverProfileStatsButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_widgets_cover_profile_stats_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaWidgetsCoverProfileStatsButton), 0, (GInstanceInitFunc) tuba_widgets_cover_profile_stats_button_instance_init, NULL };
	GType tuba_widgets_cover_profile_stats_button_type_id;
	tuba_widgets_cover_profile_stats_button_type_id = g_type_register_static (gtk_button_get_type (), "TubaWidgetsCoverProfileStatsButton", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaWidgetsCoverProfileStatsButton_private_offset = g_type_add_instance_private (tuba_widgets_cover_profile_stats_button_type_id, sizeof (TubaWidgetsCoverProfileStatsButtonPrivate));
	return tuba_widgets_cover_profile_stats_button_type_id;
}

GType
tuba_widgets_cover_profile_stats_button_get_type (void)
{
	static GType tuba_widgets_cover_profile_stats_button_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_widgets_cover_profile_stats_button_type_id__once)) {
		GType tuba_widgets_cover_profile_stats_button_type_id;
		tuba_widgets_cover_profile_stats_button_type_id = tuba_widgets_cover_profile_stats_button_get_type_once ();
		g_once_init_leave_pointer (&tuba_widgets_cover_profile_stats_button_type_id__once, tuba_widgets_cover_profile_stats_button_type_id);
	}
	return tuba_widgets_cover_profile_stats_button_type_id__once;
}

static void
_vala_tuba_widgets_cover_profile_stats_button_get_property (GObject * object,
                                                            guint property_id,
                                                            GValue * value,
                                                            GParamSpec * pspec)
{
	TubaWidgetsCoverProfileStatsButton * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON, TubaWidgetsCoverProfileStatsButton);
	switch (property_id) {
		case TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_LABEL_TEMPLATE_PROPERTY:
		g_value_set_string (value, tuba_widgets_cover_profile_stats_button_get_label_template (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_widgets_cover_profile_stats_button_set_property (GObject * object,
                                                            guint property_id,
                                                            const GValue * value,
                                                            GParamSpec * pspec)
{
	TubaWidgetsCoverProfileStatsButton * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_WIDGETS_COVER_TYPE_PROFILE_STATS_BUTTON, TubaWidgetsCoverProfileStatsButton);
	switch (property_id) {
		case TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_LABEL_TEMPLATE_PROPERTY:
		tuba_widgets_cover_profile_stats_button_set_label_template (self, g_value_get_string (value));
		break;
		case TUBA_WIDGETS_COVER_PROFILE_STATS_BUTTON_AMOUNT_PROPERTY:
		tuba_widgets_cover_profile_stats_button_set_amount (self, g_value_get_int64 (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
tuba_widgets_cover_class_init (TubaWidgetsCoverClass * klass,
                               gpointer klass_data)
{
	tuba_widgets_cover_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaWidgetsCover_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_widgets_cover_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_widgets_cover_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_widgets_cover_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_COVER_RS_PROPERTY, tuba_widgets_cover_properties[TUBA_WIDGETS_COVER_RS_PROPERTY] = g_param_spec_object ("rs", "rs", "rs", TUBA_API_TYPE_RELATIONSHIP, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_COVER_COVER_BADGE_LABEL_PROPERTY, tuba_widgets_cover_properties[TUBA_WIDGETS_COVER_COVER_BADGE_LABEL_PROPERTY] = g_param_spec_string ("cover-badge-label", "cover-badge-label", "cover-badge-label", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_COVER_IS_BOT_PROPERTY, tuba_widgets_cover_properties[TUBA_WIDGETS_COVER_IS_BOT_PROPERTY] = g_param_spec_boolean ("is-bot", "is-bot", "is-bot", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/dev/geopjr/Tuba/ui/views/profile_header.ui");
	tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_RS_INVALIDATED_SIGNAL] = g_signal_new ("rs-invalidated", TUBA_WIDGETS_TYPE_COVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_TIMELINE_CHANGE_SIGNAL] = g_signal_new ("timeline-change", TUBA_WIDGETS_TYPE_COVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_ARIA_UPDATED_SIGNAL] = g_signal_new ("aria-updated", TUBA_WIDGETS_TYPE_COVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_EDIT_NOTE_SIGNAL] = g_signal_new ("edit-note", TUBA_WIDGETS_TYPE_COVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	tuba_widgets_cover_signals[TUBA_WIDGETS_COVER_AVATAR_CLICKED_SIGNAL] = g_signal_new ("avatar-clicked", TUBA_WIDGETS_TYPE_COVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "roles", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, roles));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "background", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, background));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "cover_badge", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, cover_badge));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "cover_bot_badge", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, cover_bot_badge));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "cover_badge_box", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, cover_badge_box));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "info", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, info));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "display_name", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, display_name));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "handle", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, handle));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "avatar", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, avatar));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "our_note", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, our_note));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "moved_btn", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, moved_btn));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "note", FALSE, G_STRUCT_OFFSET (TubaWidgetsCover, note));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "rsbtn", FALSE, G_STRUCT_OFFSET (TubaWidgetsCover, rsbtn));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "mutuals_button", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, mutuals_button));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "note_row", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, note_row));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "supporter_icon", FALSE, TubaWidgetsCover_private_offset + G_STRUCT_OFFSET (TubaWidgetsCoverPrivate, supporter_icon));
	gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "on_edit_note", G_CALLBACK(_tuba_widgets_cover_on_edit_note_gtk_button_clicked));
	g_type_ensure (TUBA_WIDGETS_TYPE_BACKGROUND);
	g_type_ensure (TUBA_WIDGETS_TYPE_AVATAR);
	g_type_ensure (TUBA_WIDGETS_TYPE_RELATIONSHIP_BUTTON);
	g_type_ensure (TUBA_WIDGETS_TYPE_EMOJI_LABEL);
	g_type_ensure (TUBA_WIDGETS_TYPE_MARKUP_VIEW);
}

static void
tuba_widgets_cover_instance_init (TubaWidgetsCover * self,
                                  gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	self->priv = tuba_widgets_cover_get_instance_private (self);
	_tmp0_ = g_strdup ("");
	self->priv->_avi_url = _tmp0_;
	_tmp1_ = g_strdup ("");
	self->priv->_header_url = _tmp1_;
	self->priv->moved_to_account = NULL;
	self->priv->_mini = FALSE;
	self->priv->total_fields = 0;
	_tmp2_ = g_strdup ("");
	self->priv->stats_string = _tmp2_;
	self->priv->mutual_accounts = NULL;
	self->priv->mutuals_listbox = NULL;
	g_type_ensure (TUBA_WIDGETS_TYPE_BACKGROUND);
	g_type_ensure (TUBA_WIDGETS_TYPE_EMOJI_LABEL);
	g_type_ensure (TUBA_WIDGETS_TYPE_AVATAR);
	g_type_ensure (TUBA_WIDGETS_TYPE_MARKUP_VIEW);
	g_type_ensure (TUBA_WIDGETS_TYPE_RELATIONSHIP_BUTTON);
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
tuba_widgets_cover_finalize (GObject * obj)
{
	TubaWidgetsCover * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_WIDGETS_TYPE_COVER, TubaWidgetsCover);
	g_debug ("ProfileCover.vala:122: Destroying Profile Cover");
	_g_object_unref0 (self->priv->_rs);
	_g_free0 (self->priv->_avi_url);
	_g_free0 (self->priv->_header_url);
	_g_object_unref0 (self->priv->moved_to_account);
	_g_object_unref0 (self->priv->fields_box);
	_g_object_unref0 (self->priv->fields_box_row);
	_g_free0 (self->priv->stats_string);
	_g_free0 (self->priv->profile_id);
	_g_object_unref0 (self->priv->mutual_accounts);
	_g_object_unref0 (self->priv->mutuals_listbox);
	_g_object_unref0 (self->priv->posts_btn);
	_g_object_unref0 (self->priv->followers_btn);
	_g_object_unref0 (self->priv->following_btn);
	G_OBJECT_CLASS (tuba_widgets_cover_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_widgets_cover_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaWidgetsCoverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_widgets_cover_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaWidgetsCover), 0, (GInstanceInitFunc) tuba_widgets_cover_instance_init, NULL };
	GType tuba_widgets_cover_type_id;
	tuba_widgets_cover_type_id = g_type_register_static (gtk_box_get_type (), "TubaWidgetsCover", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaWidgetsCover_private_offset = g_type_add_instance_private (tuba_widgets_cover_type_id, sizeof (TubaWidgetsCoverPrivate));
	return tuba_widgets_cover_type_id;
}

GType
tuba_widgets_cover_get_type (void)
{
	static GType tuba_widgets_cover_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_widgets_cover_type_id__once)) {
		GType tuba_widgets_cover_type_id;
		tuba_widgets_cover_type_id = tuba_widgets_cover_get_type_once ();
		g_once_init_leave_pointer (&tuba_widgets_cover_type_id__once, tuba_widgets_cover_type_id);
	}
	return tuba_widgets_cover_type_id__once;
}

static void
_vala_tuba_widgets_cover_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec)
{
	TubaWidgetsCover * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_WIDGETS_TYPE_COVER, TubaWidgetsCover);
	switch (property_id) {
		case TUBA_WIDGETS_COVER_RS_PROPERTY:
		g_value_set_object (value, tuba_widgets_cover_get_rs (self));
		break;
		case TUBA_WIDGETS_COVER_COVER_BADGE_LABEL_PROPERTY:
		g_value_set_string (value, tuba_widgets_cover_get_cover_badge_label (self));
		break;
		case TUBA_WIDGETS_COVER_IS_BOT_PROPERTY:
		g_value_set_boolean (value, tuba_widgets_cover_get_is_bot (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_widgets_cover_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec)
{
	TubaWidgetsCover * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_WIDGETS_TYPE_COVER, TubaWidgetsCover);
	switch (property_id) {
		case TUBA_WIDGETS_COVER_RS_PROPERTY:
		tuba_widgets_cover_set_rs (self, g_value_get_object (value));
		break;
		case TUBA_WIDGETS_COVER_COVER_BADGE_LABEL_PROPERTY:
		tuba_widgets_cover_set_cover_badge_label (self, g_value_get_string (value));
		break;
		case TUBA_WIDGETS_COVER_IS_BOT_PROPERTY:
		tuba_widgets_cover_set_is_bot (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

