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

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

#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_MAX_TAGS 4
#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_DIALOGS_TYPE_HASHTAG_LIST (tuba_dialogs_hashtag_list_get_type ())
#define TUBA_DIALOGS_HASHTAG_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_HASHTAG_LIST, TubaDialogsHashtagList))
#define TUBA_DIALOGS_HASHTAG_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_TYPE_HASHTAG_LIST, TubaDialogsHashtagListClass))
#define TUBA_DIALOGS_IS_HASHTAG_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_HASHTAG_LIST))
#define TUBA_DIALOGS_IS_HASHTAG_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_TYPE_HASHTAG_LIST))
#define TUBA_DIALOGS_HASHTAG_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_TYPE_HASHTAG_LIST, TubaDialogsHashtagListClass))

typedef struct _TubaDialogsHashtagList TubaDialogsHashtagList;
typedef struct _TubaDialogsHashtagListClass TubaDialogsHashtagListClass;
typedef struct _TubaDialogsHashtagListPrivate TubaDialogsHashtagListPrivate;

#define TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP (tuba_dialogs_hashtag_list_hashtag_group_get_type ())
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP, TubaDialogsHashtagListHashtagGroup))
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP, TubaDialogsHashtagListHashtagGroupClass))
#define TUBA_DIALOGS_HASHTAG_LIST_IS_HASHTAG_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP))
#define TUBA_DIALOGS_HASHTAG_LIST_IS_HASHTAG_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP))
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP, TubaDialogsHashtagListHashtagGroupClass))

typedef struct _TubaDialogsHashtagListHashtagGroup TubaDialogsHashtagListHashtagGroup;
typedef struct _TubaDialogsHashtagListHashtagGroupClass TubaDialogsHashtagListHashtagGroupClass;
enum  {
	TUBA_DIALOGS_HASHTAG_LIST_0_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_NUM_PROPERTIES
};
static GParamSpec* tuba_dialogs_hashtag_list_properties[TUBA_DIALOGS_HASHTAG_LIST_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_DIALOGS_HASHTAG_LIST_TYPE_DATA (tuba_dialogs_hashtag_list_data_get_type ())
#define TUBA_DIALOGS_HASHTAG_LIST_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA, TubaDialogsHashtagListData))
#define TUBA_DIALOGS_HASHTAG_LIST_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA, TubaDialogsHashtagListDataClass))
#define TUBA_DIALOGS_HASHTAG_LIST_IS_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA))
#define TUBA_DIALOGS_HASHTAG_LIST_IS_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA))
#define TUBA_DIALOGS_HASHTAG_LIST_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA, TubaDialogsHashtagListDataClass))

typedef struct _TubaDialogsHashtagListData TubaDialogsHashtagListData;
typedef struct _TubaDialogsHashtagListDataClass TubaDialogsHashtagListDataClass;
typedef struct _Block27Data Block27Data;

#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;
typedef struct _TubaDialogsHashtagListDataPrivate TubaDialogsHashtagListDataPrivate;
enum  {
	TUBA_DIALOGS_HASHTAG_LIST_DATA_0_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_DATA_TITLE_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_DATA_UUID_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_DATA_NUM_PROPERTIES
};
static GParamSpec* tuba_dialogs_hashtag_list_data_properties[TUBA_DIALOGS_HASHTAG_LIST_DATA_NUM_PROPERTIES];

#define TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH (tuba_dialogs_hashtag_list_hashtag_search_get_type ())
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH, TubaDialogsHashtagListHashtagSearch))
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH, TubaDialogsHashtagListHashtagSearchClass))
#define TUBA_DIALOGS_HASHTAG_LIST_IS_HASHTAG_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH))
#define TUBA_DIALOGS_HASHTAG_LIST_IS_HASHTAG_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH))
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH, TubaDialogsHashtagListHashtagSearchClass))

typedef struct _TubaDialogsHashtagListHashtagSearch TubaDialogsHashtagListHashtagSearch;
typedef struct _TubaDialogsHashtagListHashtagSearchClass TubaDialogsHashtagListHashtagSearchClass;
typedef struct _TubaDialogsHashtagListHashtagSearchPrivate TubaDialogsHashtagListHashtagSearchPrivate;

#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;
enum  {
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_0_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_NUM_PROPERTIES
};
static GParamSpec* tuba_dialogs_hashtag_list_hashtag_search_properties[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_NUM_PROPERTIES];

#define TUBA_TYPE_OOPSIE (tuba_oopsie_get_type ())

#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_SEARCH_RESULTS (tuba_api_search_results_get_type ())
#define TUBA_API_SEARCH_RESULTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_SEARCH_RESULTS, TubaAPISearchResults))
#define TUBA_API_SEARCH_RESULTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_SEARCH_RESULTS, TubaAPISearchResultsClass))
#define TUBA_API_IS_SEARCH_RESULTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_SEARCH_RESULTS))
#define TUBA_API_IS_SEARCH_RESULTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_SEARCH_RESULTS))
#define TUBA_API_SEARCH_RESULTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_SEARCH_RESULTS, TubaAPISearchResultsClass))

typedef struct _TubaAPISearchResults TubaAPISearchResults;
typedef struct _TubaAPISearchResultsClass TubaAPISearchResultsClass;

#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)))
typedef struct _Block28Data Block28Data;

#define TUBA_API_TYPE_TAG (tuba_api_tag_get_type ())
#define TUBA_API_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_TAG, TubaAPITag))
#define TUBA_API_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_TAG, TubaAPITagClass))
#define TUBA_API_IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_TAG))
#define TUBA_API_IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_TAG))
#define TUBA_API_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_TAG, TubaAPITagClass))

typedef struct _TubaAPITag TubaAPITag;
typedef struct _TubaAPITagClass TubaAPITagClass;

#define TUBA_WIDGETS_TYPE_TAG (tuba_widgets_tag_get_type ())
#define TUBA_WIDGETS_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_TAG, TubaWidgetsTag))
#define TUBA_WIDGETS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_TAG, TubaWidgetsTagClass))
#define TUBA_WIDGETS_IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_TAG))
#define TUBA_WIDGETS_IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_TAG))
#define TUBA_WIDGETS_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_TAG, TubaWidgetsTagClass))

typedef struct _TubaWidgetsTag TubaWidgetsTag;
typedef struct _TubaWidgetsTagClass TubaWidgetsTagClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _TubaDialogsHashtagListHashtagSearchSearchRealData TubaDialogsHashtagListHashtagSearchSearchRealData;
enum  {
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_TAG_PICKED_SIGNAL,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_ERRORED_SIGNAL,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_NUM_SIGNALS
};
static guint tuba_dialogs_hashtag_list_hashtag_search_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_NUM_SIGNALS] = {0};
typedef struct _TubaDialogsHashtagListHashtagGroupPrivate TubaDialogsHashtagListHashtagGroupPrivate;
enum  {
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_0_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAGS_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_EMPTY_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_NUM_PROPERTIES
};
static GParamSpec* tuba_dialogs_hashtag_list_hashtag_group_properties[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_NUM_PROPERTIES];

#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW (tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_type ())
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW, TubaDialogsHashtagListHashtagGroupTagRow))
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW, TubaDialogsHashtagListHashtagGroupTagRowClass))
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_IS_TAG_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW))
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_IS_TAG_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW))
#define TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW, TubaDialogsHashtagListHashtagGroupTagRowClass))

typedef struct _TubaDialogsHashtagListHashtagGroupTagRow TubaDialogsHashtagListHashtagGroupTagRow;
typedef struct _TubaDialogsHashtagListHashtagGroupTagRowClass TubaDialogsHashtagListHashtagGroupTagRowClass;
typedef struct _TubaDialogsHashtagListHashtagGroupTagRowPrivate TubaDialogsHashtagListHashtagGroupTagRowPrivate;
enum  {
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_0_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_TAG_PROPERTY,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_NUM_PROPERTIES
};
static GParamSpec* tuba_dialogs_hashtag_list_hashtag_group_tag_row_properties[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_NUM_PROPERTIES];
enum  {
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_DELETED_SIGNAL,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_NUM_SIGNALS
};
static guint tuba_dialogs_hashtag_list_hashtag_group_tag_row_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_NUM_SIGNALS] = {0};
enum  {
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_ERRORED_SIGNAL,
	TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_NUM_SIGNALS
};
static guint tuba_dialogs_hashtag_list_hashtag_group_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_NUM_SIGNALS] = {0};
enum  {
	TUBA_DIALOGS_HASHTAG_LIST_CREATED_SIGNAL,
	TUBA_DIALOGS_HASHTAG_LIST_NUM_SIGNALS
};
static guint tuba_dialogs_hashtag_list_signals[TUBA_DIALOGS_HASHTAG_LIST_NUM_SIGNALS] = {0};

struct _TubaDialogsHashtagList {
	AdwPreferencesDialog parent_instance;
	TubaDialogsHashtagListPrivate * priv;
};

struct _TubaDialogsHashtagListClass {
	AdwPreferencesDialogClass parent_class;
};

struct _TubaDialogsHashtagListPrivate {
	AdwEntryRow* name_row;
	TubaDialogsHashtagListHashtagGroup* all;
	TubaDialogsHashtagListHashtagGroup* any;
	TubaDialogsHashtagListHashtagGroup* none;
	gchar* editing_uuid;
};

struct _Block27Data {
	int _ref_count_;
	TubaDialogsHashtagList* self;
	gchar* title;
	AdwAlertDialog* dlg;
};

struct _TubaDialogsHashtagListData {
	GObject parent_instance;
	TubaDialogsHashtagListDataPrivate * priv;
};

struct _TubaDialogsHashtagListDataClass {
	GObjectClass parent_class;
};

struct _TubaDialogsHashtagListDataPrivate {
	gchar* _title;
	gchar* _uuid;
	gchar** any;
	gint any_length1;
	gint _any_size_;
	gchar** all;
	gint all_length1;
	gint _all_size_;
	gchar** none;
	gint none_length1;
	gint _none_size_;
};

struct _TubaDialogsHashtagListHashtagSearch {
	GtkPopover parent_instance;
	TubaDialogsHashtagListHashtagSearchPrivate * priv;
};

struct _TubaDialogsHashtagListHashtagSearchClass {
	GtkPopoverClass parent_class;
};

struct _TubaDialogsHashtagListHashtagSearchPrivate {
	GtkSearchEntry* entry;
	GtkListBox* result_box;
	GtkScrolledWindow* sw;
	TubaRequestV2* last_req;
};

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 _Block28Data {
	int _ref_count_;
	TubaDialogsHashtagListHashtagSearch* self;
	gint i;
};

struct _TubaDialogsHashtagListHashtagSearchSearchRealData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaDialogsHashtagListHashtagSearch* self;
	gchar* query;
	GtkListBox* _tmp0_;
	GtkScrolledWindow* _tmp1_;
	TubaRequestV2* _tmp2_;
	TubaRequestV2* _tmp3_;
	GCancellable* _tmp4_;
	GCancellable* _tmp5_;
	TubaRequestV2* _tmp6_;
	TubaRequestV2* _tmp7_;
	TubaRequestV2* _tmp8_;
	GInputStream* in_stream;
	TubaRequestV2* _tmp9_;
	GInputStream* _tmp10_;
	gboolean _tmp11_;
	TubaRequestV2* _tmp12_;
	TubaRequestV2* _tmp13_;
	GCancellable* _tmp14_;
	GCancellable* _tmp15_;
	JsonParser* parser;
	GInputStream* _tmp16_;
	JsonParser* _tmp17_;
	TubaAPISearchResults* results;
	TubaNetwork* _tmp18_;
	JsonParser* _tmp19_;
	JsonNode* _tmp20_;
	JsonNode* _tmp21_;
	TubaAPISearchResults* _tmp22_;
	TubaAPISearchResults* _tmp23_;
	TubaAPISearchResults* _tmp24_;
	Block28Data* _data28_;
	TubaAPISearchResults* _tmp25_;
	GeeArrayList* _tmp26_;
	GeeArrayList* _tmp27_;
	GtkScrolledWindow* _tmp28_;
	GError* e;
	GError* _tmp29_;
	const gchar* _tmp30_;
	const gchar* _tmp31_;
	GError* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	GError* _tmp35_;
	const gchar* _tmp36_;
	const gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	GError* _inner_error0_;
};

struct _TubaDialogsHashtagListHashtagGroup {
	AdwPreferencesGroup parent_instance;
	TubaDialogsHashtagListHashtagGroupPrivate * priv;
};

struct _TubaDialogsHashtagListHashtagGroupClass {
	AdwPreferencesGroupClass parent_class;
};

struct _TubaDialogsHashtagListHashtagGroupPrivate {
	GtkMenuButton* menu_button;
	GeeArrayList* _tags;
};

struct _TubaDialogsHashtagListHashtagGroupTagRow {
	AdwActionRow parent_instance;
	TubaDialogsHashtagListHashtagGroupTagRowPrivate * priv;
};

struct _TubaDialogsHashtagListHashtagGroupTagRowClass {
	AdwActionRowClass parent_class;
};

struct _TubaDialogsHashtagListHashtagGroupTagRowPrivate {
	gchar* _tag;
};

static gint TubaDialogsHashtagList_private_offset;
static gpointer tuba_dialogs_hashtag_list_parent_class = NULL;
VALA_EXTERN TubaSettings* tuba_settings;
static gint TubaDialogsHashtagListData_private_offset;
static gpointer tuba_dialogs_hashtag_list_data_parent_class = NULL;
static gint TubaDialogsHashtagListHashtagSearch_private_offset;
static gpointer tuba_dialogs_hashtag_list_hashtag_search_parent_class = NULL;
VALA_EXTERN TubaNetwork* tuba_network;
static gint TubaDialogsHashtagListHashtagGroup_private_offset;
static gpointer tuba_dialogs_hashtag_list_hashtag_group_parent_class = NULL;
static gint TubaDialogsHashtagListHashtagGroupTagRow_private_offset;
static gpointer tuba_dialogs_hashtag_list_hashtag_group_tag_row_parent_class = NULL;

VALA_EXTERN GType tuba_dialogs_hashtag_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsHashtagList, g_object_unref)
static GType tuba_dialogs_hashtag_list_hashtag_group_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsHashtagListHashtagGroup, g_object_unref)
VALA_EXTERN GType tuba_dialogs_hashtag_list_data_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsHashtagListData, g_object_unref)
VALA_EXTERN TubaDialogsHashtagList* tuba_dialogs_hashtag_list_new (TubaDialogsHashtagListData* data);
VALA_EXTERN TubaDialogsHashtagList* tuba_dialogs_hashtag_list_construct (GType object_type,
                                                             TubaDialogsHashtagListData* data);
VALA_EXTERN const gchar* tuba_dialogs_hashtag_list_data_get_title (TubaDialogsHashtagListData* self);
static void tuba_dialogs_hashtag_list_on_close_attempt (TubaDialogsHashtagList* self);
static void _tuba_dialogs_hashtag_list_on_close_attempt_adw_dialog_close_attempt (AdwDialog* _sender,
                                                                           gpointer self);
VALA_EXTERN const gchar* tuba_dialogs_hashtag_list_data_get_uuid (TubaDialogsHashtagListData* self);
static TubaDialogsHashtagListHashtagGroup* tuba_dialogs_hashtag_list_hashtag_group_new (const gchar* title,
                                                                                 const gchar* description);
static TubaDialogsHashtagListHashtagGroup* tuba_dialogs_hashtag_list_hashtag_group_construct (GType object_type,
                                                                                       const gchar* title,
                                                                                       const gchar* description);
static void tuba_dialogs_hashtag_list_hashtag_group_fill_from_array (TubaDialogsHashtagListHashtagGroup* self,
                                                              gchar** tags,
                                                              gint tags_length1);
VALA_EXTERN gchar** tuba_dialogs_hashtag_list_data_get_any (TubaDialogsHashtagListData* self,
                                                gint* result_length1);
static void tuba_dialogs_hashtag_list_on_error (TubaDialogsHashtagList* self,
                                         const gchar* _error_);
static void _tuba_dialogs_hashtag_list_on_error_tuba_dialogs_hashtag_list_hashtag_group_errored (TubaDialogsHashtagListHashtagGroup* _sender,
                                                                                          const gchar* error_msg,
                                                                                          gpointer self);
VALA_EXTERN gchar** tuba_dialogs_hashtag_list_data_get_all (TubaDialogsHashtagListData* self,
                                                gint* result_length1);
VALA_EXTERN gchar** tuba_dialogs_hashtag_list_data_get_none (TubaDialogsHashtagListData* self,
                                                 gint* result_length1);
static Block27Data* block27_data_ref (Block27Data* _data27_);
static void block27_data_unref (void * _userdata_);
static gboolean tuba_dialogs_hashtag_list_hashtag_group_get_empty (TubaDialogsHashtagListHashtagGroup* self);
static void __lambda139_ (Block27Data* _data27_,
                   GObject* obj,
                   GAsyncResult* res);
static void tuba_dialogs_hashtag_list_create_list_and_close (TubaDialogsHashtagList* self,
                                                      const gchar* title);
static void ___lambda139__gasync_ready_callback (GObject* source_object,
                                          GAsyncResult* res,
                                          gpointer self);
static void tuba_dialogs_hashtag_list_save_hashtag_list (TubaDialogsHashtagList* self,
                                                  TubaDialogsHashtagListData* data);
static gchar** tuba_dialogs_hashtag_list_hashtag_group_get_tags (TubaDialogsHashtagListHashtagGroup* self,
                                                          gint* result_length1);
VALA_EXTERN TubaDialogsHashtagListData* tuba_dialogs_hashtag_list_data_new (const gchar* title,
                                                                gchar** any,
                                                                gint any_length1,
                                                                gchar** all,
                                                                gint all_length1,
                                                                gchar** none,
                                                                gint none_length1,
                                                                const gchar* uuid);
VALA_EXTERN TubaDialogsHashtagListData* tuba_dialogs_hashtag_list_data_construct (GType object_type,
                                                                      const gchar* title,
                                                                      gchar** any,
                                                                      gint any_length1,
                                                                      gchar** all,
                                                                      gint all_length1,
                                                                      gchar** none,
                                                                      gint none_length1,
                                                                      const gchar* uuid);
VALA_EXTERN GType tuba_settings_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaSettings, g_object_unref)
VALA_EXTERN gchar** tuba_settings_get_hashtag_lists (TubaSettings* self,
                                         gint* result_length1);
VALA_EXTERN gchar* tuba_dialogs_hashtag_list_data_to_string (TubaDialogsHashtagListData* self);
static void _vala_array_add17 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add18 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add19 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
VALA_EXTERN void tuba_settings_set_hashtag_lists (TubaSettings* self,
                                      gchar** value,
                                      gint value_length1);
VALA_EXTERN void tuba_dialogs_hashtag_list_remove_hashtag_list (const gchar* uuid);
static void _vala_array_add20 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static gchar** _vala_array_dup11 (gchar** self,
                           gssize length);
static gchar** _vala_array_dup12 (gchar** self,
                           gssize length);
static gchar** _vala_array_dup13 (gchar** self,
                           gssize length);
static void tuba_dialogs_hashtag_list_data_set_title (TubaDialogsHashtagListData* self,
                                               const gchar* value);
static gchar** _vala_array_dup14 (gchar** self,
                           gssize length);
static gchar** _vala_array_dup15 (gchar** self,
                           gssize length);
static gchar** _vala_array_dup16 (gchar** self,
                           gssize length);
static void tuba_dialogs_hashtag_list_data_set_uuid (TubaDialogsHashtagListData* self,
                                              const gchar* value);
VALA_EXTERN TubaDialogsHashtagListData* tuba_dialogs_hashtag_list_data_new_from_string (const gchar* data_string);
VALA_EXTERN TubaDialogsHashtagListData* tuba_dialogs_hashtag_list_data_construct_from_string (GType object_type,
                                                                                  const gchar* data_string);
static void _vala_array_add21 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add22 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add23 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add24 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add25 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add26 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
VALA_EXTERN gchar* tuba_dialogs_hashtag_list_data_to_uri_part (TubaDialogsHashtagListData* self);
static void _vala_array_add27 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add28 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add29 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
VALA_EXTERN gchar* tuba_dialogs_hashtag_list_data_to_sub (TubaDialogsHashtagListData* self);
static void _vala_array_add30 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add31 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add32 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void tuba_dialogs_hashtag_list_data_finalize (GObject * obj);
static GType tuba_dialogs_hashtag_list_data_get_type_once (void);
static void _vala_tuba_dialogs_hashtag_list_data_get_property (GObject * object,
                                                        guint property_id,
                                                        GValue * value,
                                                        GParamSpec * pspec);
static void _vala_tuba_dialogs_hashtag_list_data_set_property (GObject * object,
                                                        guint property_id,
                                                        const GValue * value,
                                                        GParamSpec * pspec);
VALA_EXTERN GType tuba_dialogs_hashtag_list_hashtag_search_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsHashtagListHashtagSearch, g_object_unref)
VALA_EXTERN GType tuba_request_v2_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaRequestV2, g_object_unref)
VALA_EXTERN void tuba_dialogs_hashtag_list_hashtag_search_on_close (TubaDialogsHashtagListHashtagSearch* self);
static void tuba_dialogs_hashtag_list_hashtag_search_search (TubaDialogsHashtagListHashtagSearch* self);
static void tuba_dialogs_hashtag_list_hashtag_search_search_real (TubaDialogsHashtagListHashtagSearch* self,
                                                           const gchar* query,
                                                           GAsyncReadyCallback _callback_,
                                                           gpointer _user_data_);
static void tuba_dialogs_hashtag_list_hashtag_search_search_real_finish (TubaDialogsHashtagListHashtagSearch* self,
                                                                  GAsyncResult* _res_);
static void tuba_dialogs_hashtag_list_hashtag_search_search_real_data_free (gpointer _data);
static gboolean tuba_dialogs_hashtag_list_hashtag_search_search_real_co (TubaDialogsHashtagListHashtagSearchSearchRealData* _data_);
VALA_EXTERN GCancellable* tuba_request_v2_get_cancellable (TubaRequestV2* self);
VALA_EXTERN TubaRequestV2* tuba_api_tag_search (const gchar* query,
                                    GError** error);
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_dialogs_hashtag_list_hashtag_search_search_real_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_entity_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaEntity, g_object_unref)
VALA_EXTERN GType tuba_api_search_results_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPISearchResults, g_object_unref)
VALA_EXTERN TubaAPISearchResults* tuba_api_search_results_from (JsonNode* node,
                                                    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);
static Block28Data* block28_data_ref (Block28Data* _data28_);
static void block28_data_unref (void * _userdata_);
VALA_EXTERN GType tuba_api_tag_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPITag, g_object_unref)
VALA_EXTERN GeeArrayList* tuba_api_search_results_get_hashtags (TubaAPISearchResults* self);
static gboolean ____lambda138_ (Block28Data* _data28_,
                         TubaAPITag* tag);
VALA_EXTERN GType tuba_widgets_tag_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsTag, g_object_unref)
VALA_EXTERN TubaWidgetsTag* tuba_widgets_tag_new (TubaAPITag* tag);
VALA_EXTERN TubaWidgetsTag* tuba_widgets_tag_construct (GType object_type,
                                            TubaAPITag* tag);
VALA_EXTERN void tuba_dialogs_hashtag_list_hashtag_search_on_tag_chosen (TubaDialogsHashtagListHashtagSearch* self,
                                                             AdwActionRow* tag);
static void _tuba_dialogs_hashtag_list_hashtag_search_on_tag_chosen_adw_action_row_activated (AdwActionRow* _sender,
                                                                                       gpointer self);
static gboolean _____lambda138__gee_forall_func (gpointer g,
                                          gpointer self);
VALA_EXTERN const gchar* tuba_widgets_tag_get_name (TubaWidgetsTag* self);
static void tuba_dialogs_hashtag_list_hashtag_search_real_show (GtkWidget* base);
VALA_EXTERN TubaDialogsHashtagListHashtagSearch* tuba_dialogs_hashtag_list_hashtag_search_new (void);
VALA_EXTERN TubaDialogsHashtagListHashtagSearch* tuba_dialogs_hashtag_list_hashtag_search_construct (GType object_type);
static GObject * tuba_dialogs_hashtag_list_hashtag_search_constructor (GType type,
                                                                guint n_construct_properties,
                                                                GObjectConstructParam * construct_properties);
static void _tuba_dialogs_hashtag_list_hashtag_search_search_gtk_search_entry_activate (GtkSearchEntry* _sender,
                                                                                 gpointer self);
static void _tuba_dialogs_hashtag_list_hashtag_search_search_gtk_search_entry_search_changed (GtkSearchEntry* _sender,
                                                                                       gpointer self);
static void _tuba_dialogs_hashtag_list_hashtag_search_on_close_gtk_search_entry_stop_search (GtkSearchEntry* _sender,
                                                                                      gpointer self);
static void tuba_dialogs_hashtag_list_hashtag_search_finalize (GObject * obj);
static GType tuba_dialogs_hashtag_list_hashtag_search_get_type_once (void);
static void tuba_dialogs_hashtag_list_hashtag_group_add_row (TubaDialogsHashtagListHashtagGroup* self,
                                                      const gchar* tag);
static void _tuba_dialogs_hashtag_list_hashtag_group_add_row_tuba_dialogs_hashtag_list_hashtag_search_tag_picked (TubaDialogsHashtagListHashtagSearch* _sender,
                                                                                                           const gchar* tag,
                                                                                                           gpointer self);
static void tuba_dialogs_hashtag_list_hashtag_group_on_error (TubaDialogsHashtagListHashtagGroup* self,
                                                       const gchar* _error_);
static void _tuba_dialogs_hashtag_list_hashtag_group_on_error_tuba_dialogs_hashtag_list_hashtag_search_errored (TubaDialogsHashtagListHashtagSearch* _sender,
                                                                                                         const gchar* error_msg,
                                                                                                         gpointer self);
static GType tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsHashtagListHashtagGroupTagRow, g_object_unref)
static TubaDialogsHashtagListHashtagGroupTagRow* tuba_dialogs_hashtag_list_hashtag_group_tag_row_new (const gchar* tag);
static TubaDialogsHashtagListHashtagGroupTagRow* tuba_dialogs_hashtag_list_hashtag_group_tag_row_construct (GType object_type,
                                                                                                     const gchar* tag);
static const gchar* tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_tag (TubaDialogsHashtagListHashtagGroupTagRow* self);
static void tuba_dialogs_hashtag_list_hashtag_group_on_delete (TubaDialogsHashtagListHashtagGroup* self,
                                                        TubaDialogsHashtagListHashtagGroupTagRow* row);
static void _tuba_dialogs_hashtag_list_hashtag_group_on_delete_tuba_dialogs_hashtag_list_hashtag_group_tag_row_deleted (TubaDialogsHashtagListHashtagGroupTagRow* _sender,
                                                                                                                 gpointer self);
static void tuba_dialogs_hashtag_list_hashtag_group_tag_row_set_tag (TubaDialogsHashtagListHashtagGroupTagRow* self,
                                                              const gchar* value);
static void tuba_dialogs_hashtag_list_hashtag_group_tag_row_on_delete (TubaDialogsHashtagListHashtagGroupTagRow* self);
static void _tuba_dialogs_hashtag_list_hashtag_group_tag_row_on_delete_gtk_button_clicked (GtkButton* _sender,
                                                                                    gpointer self);
static void tuba_dialogs_hashtag_list_hashtag_group_tag_row_finalize (GObject * obj);
static GType tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_type_once (void);
static void _vala_tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_property (GObject * object,
                                                                         guint property_id,
                                                                         GValue * value,
                                                                         GParamSpec * pspec);
static void _vala_tuba_dialogs_hashtag_list_hashtag_group_tag_row_set_property (GObject * object,
                                                                         guint property_id,
                                                                         const GValue * value,
                                                                         GParamSpec * pspec);
static void tuba_dialogs_hashtag_list_hashtag_group_finalize (GObject * obj);
static GType tuba_dialogs_hashtag_list_hashtag_group_get_type_once (void);
static void _vala_tuba_dialogs_hashtag_list_hashtag_group_get_property (GObject * object,
                                                                 guint property_id,
                                                                 GValue * value,
                                                                 GParamSpec * pspec);
static void tuba_dialogs_hashtag_list_finalize (GObject * obj);
static GType tuba_dialogs_hashtag_list_get_type_once (void);
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 gssize _vala_array_length (gpointer array);

static inline gpointer
tuba_dialogs_hashtag_list_get_instance_private (TubaDialogsHashtagList* self)
{
	return G_STRUCT_MEMBER_P (self, TubaDialogsHashtagList_private_offset);
}

static void
_tuba_dialogs_hashtag_list_on_close_attempt_adw_dialog_close_attempt (AdwDialog* _sender,
                                                                      gpointer self)
{
	tuba_dialogs_hashtag_list_on_close_attempt ((TubaDialogsHashtagList*) self);
}

static void
_tuba_dialogs_hashtag_list_on_error_tuba_dialogs_hashtag_list_hashtag_group_errored (TubaDialogsHashtagListHashtagGroup* _sender,
                                                                                     const gchar* error_msg,
                                                                                     gpointer self)
{
	tuba_dialogs_hashtag_list_on_error ((TubaDialogsHashtagList*) self, error_msg);
}

TubaDialogsHashtagList*
tuba_dialogs_hashtag_list_construct (GType object_type,
                                     TubaDialogsHashtagListData* data)
{
	TubaDialogsHashtagList * self = NULL;
	const gchar* _tmp0_ = NULL;
	AdwPreferencesPage* general_page = NULL;
	gchar* _tmp6_;
	gchar* _tmp7_;
	AdwPreferencesPage* _tmp8_ = NULL;
	AdwPreferencesGroup* name_group = NULL;
	AdwPreferencesGroup* _tmp9_;
	gchar* _tmp10_;
	AdwEntryRow* _tmp11_ = NULL;
	AdwPreferencesGroup* _tmp15_;
	AdwEntryRow* _tmp16_;
	AdwPreferencesPage* _tmp17_;
	AdwPreferencesGroup* _tmp18_;
	TubaDialogsHashtagListHashtagGroup* _tmp19_;
	TubaDialogsHashtagListHashtagGroup* _tmp24_;
	AdwPreferencesPage* _tmp25_;
	TubaDialogsHashtagListHashtagGroup* _tmp26_;
	TubaDialogsHashtagListHashtagGroup* _tmp27_;
	TubaDialogsHashtagListHashtagGroup* _tmp32_;
	AdwPreferencesPage* _tmp33_;
	TubaDialogsHashtagListHashtagGroup* _tmp34_;
	TubaDialogsHashtagListHashtagGroup* _tmp35_;
	TubaDialogsHashtagListHashtagGroup* _tmp40_;
	AdwPreferencesPage* _tmp41_;
	TubaDialogsHashtagListHashtagGroup* _tmp42_;
	AdwPreferencesPage* _tmp43_;
	self = (TubaDialogsHashtagList*) g_object_new (object_type, NULL);
	if (data == NULL) {
		_tmp0_ = _ ("Hashtag List");
	} else {
		const gchar* _tmp1_;
		const gchar* _tmp2_;
		_tmp1_ = tuba_dialogs_hashtag_list_data_get_title (data);
		_tmp2_ = _tmp1_;
		_tmp0_ = _tmp2_;
	}
	adw_dialog_set_title ((AdwDialog*) self, _tmp0_);
	adw_dialog_set_content_width ((AdwDialog*) self, 500);
	adw_dialog_set_content_height ((AdwDialog*) self, 450);
	adw_dialog_set_can_close ((AdwDialog*) self, FALSE);
	g_signal_connect_object ((AdwDialog*) self, "close-attempt", (GCallback) _tuba_dialogs_hashtag_list_on_close_attempt_adw_dialog_close_attempt, self, 0);
	if (data != NULL) {
		const gchar* _tmp3_;
		const gchar* _tmp4_;
		gchar* _tmp5_;
		_tmp3_ = tuba_dialogs_hashtag_list_data_get_uuid (data);
		_tmp4_ = _tmp3_;
		_tmp5_ = g_strdup (_tmp4_);
		_g_free0 (self->priv->editing_uuid);
		self->priv->editing_uuid = _tmp5_;
	}
	_tmp6_ = g_strdup (_ ("Hashtag List"));
	_tmp7_ = g_strdup ("tuba-hashtag-symbolic");
	_tmp8_ = (AdwPreferencesPage*) adw_preferences_page_new ();
	adw_preferences_page_set_title (_tmp8_, _tmp6_);
	_g_free0 (_tmp6_);
	adw_preferences_page_set_icon_name (_tmp8_, _tmp7_);
	_g_free0 (_tmp7_);
	g_object_ref_sink (_tmp8_);
	general_page = _tmp8_;
	_tmp9_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp9_);
	name_group = _tmp9_;
	_tmp10_ = g_strdup (_ ("Title"));
	_tmp11_ = (AdwEntryRow*) adw_entry_row_new ();
	adw_preferences_row_set_title ((AdwPreferencesRow*) _tmp11_, _tmp10_);
	_g_free0 (_tmp10_);
	g_object_ref_sink (_tmp11_);
	_g_object_unref0 (self->priv->name_row);
	self->priv->name_row = _tmp11_;
	if (data != NULL) {
		AdwEntryRow* _tmp12_;
		const gchar* _tmp13_;
		const gchar* _tmp14_;
		_tmp12_ = self->priv->name_row;
		_tmp13_ = tuba_dialogs_hashtag_list_data_get_title (data);
		_tmp14_ = _tmp13_;
		gtk_editable_set_text ((GtkEditable*) _tmp12_, _tmp14_);
	}
	_tmp15_ = name_group;
	_tmp16_ = self->priv->name_row;
	adw_preferences_group_add (_tmp15_, (GtkWidget*) _tmp16_);
	_tmp17_ = general_page;
	_tmp18_ = name_group;
	adw_preferences_page_add (_tmp17_, _tmp18_);
	_tmp19_ = tuba_dialogs_hashtag_list_hashtag_group_new (_ ("Any"), _ ("Include posts that contain any of these tags."));
	g_object_ref_sink (_tmp19_);
	_g_object_unref0 (self->priv->any);
	self->priv->any = _tmp19_;
	if (data != NULL) {
		TubaDialogsHashtagListHashtagGroup* _tmp20_;
		gint _tmp21_ = 0;
		gchar** _tmp22_;
		gchar** _tmp23_;
		gint _tmp23__length1;
		_tmp20_ = self->priv->any;
		_tmp22_ = tuba_dialogs_hashtag_list_data_get_any (data, &_tmp21_);
		_tmp23_ = _tmp22_;
		_tmp23__length1 = _tmp21_;
		tuba_dialogs_hashtag_list_hashtag_group_fill_from_array (_tmp20_, _tmp23_, (gint) _tmp21_);
		_tmp23_ = (_vala_array_free (_tmp23_, _tmp23__length1, (GDestroyNotify) g_free), NULL);
	}
	_tmp24_ = self->priv->any;
	g_signal_connect_object (_tmp24_, "errored", (GCallback) _tuba_dialogs_hashtag_list_on_error_tuba_dialogs_hashtag_list_hashtag_group_errored, self, 0);
	_tmp25_ = general_page;
	_tmp26_ = self->priv->any;
	adw_preferences_page_add (_tmp25_, (AdwPreferencesGroup*) _tmp26_);
	_tmp27_ = tuba_dialogs_hashtag_list_hashtag_group_new (_ ("All"), _ ("Include posts that contain all of these tags."));
	g_object_ref_sink (_tmp27_);
	_g_object_unref0 (self->priv->all);
	self->priv->all = _tmp27_;
	if (data != NULL) {
		TubaDialogsHashtagListHashtagGroup* _tmp28_;
		gint _tmp29_ = 0;
		gchar** _tmp30_;
		gchar** _tmp31_;
		gint _tmp31__length1;
		_tmp28_ = self->priv->all;
		_tmp30_ = tuba_dialogs_hashtag_list_data_get_all (data, &_tmp29_);
		_tmp31_ = _tmp30_;
		_tmp31__length1 = _tmp29_;
		tuba_dialogs_hashtag_list_hashtag_group_fill_from_array (_tmp28_, _tmp31_, (gint) _tmp29_);
		_tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
	}
	_tmp32_ = self->priv->all;
	g_signal_connect_object (_tmp32_, "errored", (GCallback) _tuba_dialogs_hashtag_list_on_error_tuba_dialogs_hashtag_list_hashtag_group_errored, self, 0);
	_tmp33_ = general_page;
	_tmp34_ = self->priv->all;
	adw_preferences_page_add (_tmp33_, (AdwPreferencesGroup*) _tmp34_);
	_tmp35_ = tuba_dialogs_hashtag_list_hashtag_group_new (_ ("None"), _ ("Don't include posts that contain any of these tags."));
	g_object_ref_sink (_tmp35_);
	_g_object_unref0 (self->priv->none);
	self->priv->none = _tmp35_;
	if (data != NULL) {
		TubaDialogsHashtagListHashtagGroup* _tmp36_;
		gint _tmp37_ = 0;
		gchar** _tmp38_;
		gchar** _tmp39_;
		gint _tmp39__length1;
		_tmp36_ = self->priv->none;
		_tmp38_ = tuba_dialogs_hashtag_list_data_get_none (data, &_tmp37_);
		_tmp39_ = _tmp38_;
		_tmp39__length1 = _tmp37_;
		tuba_dialogs_hashtag_list_hashtag_group_fill_from_array (_tmp36_, _tmp39_, (gint) _tmp37_);
		_tmp39_ = (_vala_array_free (_tmp39_, _tmp39__length1, (GDestroyNotify) g_free), NULL);
	}
	_tmp40_ = self->priv->none;
	g_signal_connect_object (_tmp40_, "errored", (GCallback) _tuba_dialogs_hashtag_list_on_error_tuba_dialogs_hashtag_list_hashtag_group_errored, self, 0);
	_tmp41_ = general_page;
	_tmp42_ = self->priv->none;
	adw_preferences_page_add (_tmp41_, (AdwPreferencesGroup*) _tmp42_);
	_tmp43_ = general_page;
	adw_preferences_dialog_add ((AdwPreferencesDialog*) self, _tmp43_);
	_g_object_unref0 (name_group);
	_g_object_unref0 (general_page);
	return self;
}

TubaDialogsHashtagList*
tuba_dialogs_hashtag_list_new (TubaDialogsHashtagListData* data)
{
	return tuba_dialogs_hashtag_list_construct (TUBA_DIALOGS_TYPE_HASHTAG_LIST, data);
}

static void
tuba_dialogs_hashtag_list_on_error (TubaDialogsHashtagList* self,
                                    const gchar* _error_)
{
	AdwToast* _tmp0_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (_error_ != NULL);
	_tmp0_ = adw_toast_new (_error_);
	adw_toast_set_timeout (_tmp0_, (guint) 5);
	adw_preferences_dialog_add_toast ((AdwPreferencesDialog*) self, _tmp0_);
}

static Block27Data*
block27_data_ref (Block27Data* _data27_)
{
	g_atomic_int_inc (&_data27_->_ref_count_);
	return _data27_;
}

static void
block27_data_unref (void * _userdata_)
{
	Block27Data* _data27_;
	_data27_ = (Block27Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data27_->_ref_count_)) {
		TubaDialogsHashtagList* self;
		self = _data27_->self;
		_g_object_unref0 (_data27_->dlg);
		_g_free0 (_data27_->title);
		_g_object_unref0 (self);
		g_slice_free (Block27Data, _data27_);
	}
}

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;
}

static void
__lambda139_ (Block27Data* _data27_,
              GObject* obj,
              GAsyncResult* res)
{
	TubaDialogsHashtagList* self;
	AdwAlertDialog* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	GQuark _tmp4_ = 0U;
	static GQuark _tmp3_label0 = 0;
	static GQuark _tmp3_label1 = 0;
	self = _data27_->self;
	g_return_if_fail (res != NULL);
	_tmp0_ = _data27_->dlg;
	_tmp1_ = adw_alert_dialog_choose_finish (_tmp0_, res);
	_tmp2_ = _tmp1_;
	_tmp4_ = (NULL == _tmp2_) ? 0 : g_quark_from_string (_tmp2_);
	if (_tmp4_ == ((0 != _tmp3_label0) ? _tmp3_label0 : (_tmp3_label0 = g_quark_from_static_string ("discard")))) {
		switch (0) {
			default:
			{
				adw_dialog_force_close ((AdwDialog*) self);
				break;
			}
		}
	} else if (_tmp4_ == ((0 != _tmp3_label1) ? _tmp3_label1 : (_tmp3_label1 = g_quark_from_static_string ("create")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp5_;
				_tmp5_ = _data27_->title;
				tuba_dialogs_hashtag_list_create_list_and_close (self, _tmp5_);
				break;
			}
		}
	}
}

static void
___lambda139__gasync_ready_callback (GObject* source_object,
                                     GAsyncResult* res,
                                     gpointer self)
{
	__lambda139_ (self, source_object, res);
	block27_data_unref (self);
}

static void
tuba_dialogs_hashtag_list_on_close_attempt (TubaDialogsHashtagList* self)
{
	Block27Data* _data27_;
	AdwEntryRow* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gboolean _tmp4_ = FALSE;
	gboolean _tmp5_ = FALSE;
	const gchar* _tmp6_;
	const gchar* _tmp13_ = NULL;
	const gchar* _tmp14_;
	AdwAlertDialog* _tmp15_;
	AdwAlertDialog* _tmp16_;
	AdwAlertDialog* _tmp17_;
	AdwAlertDialog* _tmp18_;
	AdwAlertDialog* _tmp19_;
	const gchar* _tmp20_ = NULL;
	const gchar* _tmp21_;
	AdwAlertDialog* _tmp22_;
	AdwAlertDialog* _tmp23_;
	AdwAlertDialog* _tmp24_;
	AdwAlertDialog* _tmp25_;
	g_return_if_fail (self != NULL);
	_data27_ = g_slice_new0 (Block27Data);
	_data27_->_ref_count_ = 1;
	_data27_->self = g_object_ref (self);
	_tmp0_ = self->priv->name_row;
	_tmp1_ = gtk_editable_get_text ((GtkEditable*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = string_strip (_tmp2_);
	_data27_->title = _tmp3_;
	_tmp6_ = _data27_->title;
	if (g_strcmp0 (_tmp6_, "") == 0) {
		TubaDialogsHashtagListHashtagGroup* _tmp7_;
		gboolean _tmp8_;
		gboolean _tmp9_;
		_tmp7_ = self->priv->any;
		_tmp8_ = tuba_dialogs_hashtag_list_hashtag_group_get_empty (_tmp7_);
		_tmp9_ = _tmp8_;
		_tmp5_ = _tmp9_;
	} else {
		_tmp5_ = FALSE;
	}
	if (_tmp5_) {
		TubaDialogsHashtagListHashtagGroup* _tmp10_;
		gboolean _tmp11_;
		gboolean _tmp12_;
		_tmp10_ = self->priv->all;
		_tmp11_ = tuba_dialogs_hashtag_list_hashtag_group_get_empty (_tmp10_);
		_tmp12_ = _tmp11_;
		_tmp4_ = _tmp12_;
	} else {
		_tmp4_ = FALSE;
	}
	if (_tmp4_) {
		adw_dialog_force_close ((AdwDialog*) self);
		block27_data_unref (_data27_);
		_data27_ = NULL;
		return;
	}
	_tmp14_ = self->priv->editing_uuid;
	if (_tmp14_ == NULL) {
		_tmp13_ = _ ("Create Hashtag List?");
	} else {
		_tmp13_ = _ ("Save Hashtag List?");
	}
	_tmp15_ = (AdwAlertDialog*) adw_alert_dialog_new (_tmp13_, NULL);
	g_object_ref_sink (_tmp15_);
	_data27_->dlg = _tmp15_;
	_tmp16_ = _data27_->dlg;
	adw_alert_dialog_add_response (_tmp16_, "cancel", _ ("Cancel"));
	_tmp17_ = _data27_->dlg;
	adw_alert_dialog_set_response_appearance (_tmp17_, "cancel", ADW_RESPONSE_DEFAULT);
	_tmp18_ = _data27_->dlg;
	adw_alert_dialog_add_response (_tmp18_, "discard", _ ("Discard"));
	_tmp19_ = _data27_->dlg;
	adw_alert_dialog_set_response_appearance (_tmp19_, "discard", ADW_RESPONSE_DESTRUCTIVE);
	_tmp21_ = self->priv->editing_uuid;
	if (_tmp21_ == NULL) {
		_tmp20_ = _ ("Create");
	} else {
		_tmp20_ = _ ("Save");
	}
	_tmp22_ = _data27_->dlg;
	adw_alert_dialog_add_response (_tmp22_, "create", _tmp20_);
	_tmp23_ = _data27_->dlg;
	adw_alert_dialog_set_response_appearance (_tmp23_, "create", ADW_RESPONSE_SUGGESTED);
	_tmp24_ = _data27_->dlg;
	adw_alert_dialog_set_default_response (_tmp24_, "cancel");
	_tmp25_ = _data27_->dlg;
	adw_alert_dialog_choose (_tmp25_, (GtkWidget*) self, NULL, ___lambda139__gasync_ready_callback, block27_data_ref (_data27_));
	block27_data_unref (_data27_);
	_data27_ = NULL;
}

static void
tuba_dialogs_hashtag_list_create_list_and_close (TubaDialogsHashtagList* self,
                                                 const gchar* title)
{
	TubaDialogsHashtagListHashtagGroup* _tmp9_;
	gchar** _tmp10_;
	gint _tmp10__length1;
	gint _tmp11_ = 0;
	gchar** _tmp12_;
	gint _tmp12__length1;
	gchar** _tmp13_;
	gint _tmp13__length1;
	TubaDialogsHashtagListHashtagGroup* _tmp14_;
	gchar** _tmp15_;
	gint _tmp15__length1;
	gint _tmp16_ = 0;
	gchar** _tmp17_;
	gint _tmp17__length1;
	gchar** _tmp18_;
	gint _tmp18__length1;
	TubaDialogsHashtagListHashtagGroup* _tmp19_;
	gchar** _tmp20_;
	gint _tmp20__length1;
	gint _tmp21_ = 0;
	gchar** _tmp22_;
	gint _tmp22__length1;
	gchar** _tmp23_;
	gint _tmp23__length1;
	const gchar* _tmp24_;
	TubaDialogsHashtagListData* _tmp25_;
	TubaDialogsHashtagListData* _tmp26_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (title != NULL);
	if (g_strcmp0 (title, "") == 0) {
		AdwToast* _tmp0_ = NULL;
		_tmp0_ = adw_toast_new (_ ("Name cannot be empty"));
		adw_toast_set_timeout (_tmp0_, (guint) 5);
		adw_preferences_dialog_add_toast ((AdwPreferencesDialog*) self, _tmp0_);
		return;
	} else {
		gboolean _tmp1_ = FALSE;
		TubaDialogsHashtagListHashtagGroup* _tmp2_;
		gboolean _tmp3_;
		gboolean _tmp4_;
		_tmp2_ = self->priv->any;
		_tmp3_ = tuba_dialogs_hashtag_list_hashtag_group_get_empty (_tmp2_);
		_tmp4_ = _tmp3_;
		if (_tmp4_) {
			TubaDialogsHashtagListHashtagGroup* _tmp5_;
			gboolean _tmp6_;
			gboolean _tmp7_;
			_tmp5_ = self->priv->all;
			_tmp6_ = tuba_dialogs_hashtag_list_hashtag_group_get_empty (_tmp5_);
			_tmp7_ = _tmp6_;
			_tmp1_ = _tmp7_;
		} else {
			_tmp1_ = FALSE;
		}
		if (_tmp1_) {
			AdwToast* _tmp8_ = NULL;
			_tmp8_ = adw_toast_new (_ ("\"Any\" or \"All\" cannot be empty"));
			adw_toast_set_timeout (_tmp8_, (guint) 5);
			adw_preferences_dialog_add_toast ((AdwPreferencesDialog*) self, _tmp8_);
			return;
		}
	}
	_tmp9_ = self->priv->any;
	_tmp10_ = tuba_dialogs_hashtag_list_hashtag_group_get_tags (_tmp9_, &_tmp11_);
	_tmp10__length1 = _tmp11_;
	_tmp12_ = _tmp10_;
	_tmp12__length1 = _tmp10__length1;
	_tmp13_ = _tmp12_;
	_tmp13__length1 = _tmp12__length1;
	_tmp14_ = self->priv->all;
	_tmp15_ = tuba_dialogs_hashtag_list_hashtag_group_get_tags (_tmp14_, &_tmp16_);
	_tmp15__length1 = _tmp16_;
	_tmp17_ = _tmp15_;
	_tmp17__length1 = _tmp15__length1;
	_tmp18_ = _tmp17_;
	_tmp18__length1 = _tmp17__length1;
	_tmp19_ = self->priv->none;
	_tmp20_ = tuba_dialogs_hashtag_list_hashtag_group_get_tags (_tmp19_, &_tmp21_);
	_tmp20__length1 = _tmp21_;
	_tmp22_ = _tmp20_;
	_tmp22__length1 = _tmp20__length1;
	_tmp23_ = _tmp22_;
	_tmp23__length1 = _tmp22__length1;
	_tmp24_ = self->priv->editing_uuid;
	_tmp25_ = tuba_dialogs_hashtag_list_data_new (title, _tmp13_, _tmp12__length1, _tmp18_, _tmp17__length1, _tmp23_, _tmp22__length1, _tmp24_);
	_tmp26_ = _tmp25_;
	tuba_dialogs_hashtag_list_save_hashtag_list (self, _tmp26_);
	_g_object_unref0 (_tmp26_);
	_tmp23_ = (_vala_array_free (_tmp23_, _tmp23__length1, (GDestroyNotify) g_free), NULL);
	_tmp18_ = (_vala_array_free (_tmp18_, _tmp18__length1, (GDestroyNotify) g_free), NULL);
	_tmp13_ = (_vala_array_free (_tmp13_, _tmp13__length1, (GDestroyNotify) g_free), NULL);
	g_signal_emit (self, tuba_dialogs_hashtag_list_signals[TUBA_DIALOGS_HASHTAG_LIST_CREATED_SIGNAL], 0);
	adw_dialog_force_close ((AdwDialog*) self);
}

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

static void
_vala_array_add17 (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_add18 (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_add19 (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
tuba_dialogs_hashtag_list_save_hashtag_list (TubaDialogsHashtagList* self,
                                             TubaDialogsHashtagListData* data)
{
	gchar** new_tag_lists = NULL;
	gchar** _tmp0_;
	gint new_tag_lists_length1;
	gint _new_tag_lists_size_;
	gchar* uuid_prefix = NULL;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gboolean updated = FALSE;
	TubaSettings* _tmp5_;
	gchar** _tmp6_;
	gint _tmp6__length1;
	gint _tmp7_ = 0;
	gchar** _tmp8_;
	gint _tmp8__length1;
	TubaSettings* _tmp16_;
	gchar** _tmp17_;
	gint _tmp17__length1;
	g_return_if_fail (self != NULL);
	g_return_if_fail (data != NULL);
	_tmp0_ = g_new0 (gchar*, 0 + 1);
	new_tag_lists = _tmp0_;
	new_tag_lists_length1 = 0;
	_new_tag_lists_size_ = new_tag_lists_length1;
	_tmp1_ = tuba_dialogs_hashtag_list_data_get_uuid (data);
	_tmp2_ = _tmp1_;
	_tmp3_ = string_to_string (_tmp2_);
	_tmp4_ = g_strconcat (_tmp3_, ":", NULL);
	uuid_prefix = _tmp4_;
	updated = FALSE;
	_tmp5_ = tuba_settings;
	_tmp6_ = tuba_settings_get_hashtag_lists (_tmp5_, &_tmp7_);
	_tmp6__length1 = _tmp7_;
	_tmp8_ = _tmp6_;
	_tmp8__length1 = _tmp6__length1;
	{
		gchar** tag_list_collection = NULL;
		gint tag_list_collection_length1 = 0;
		gint _tag_list_collection_size_ = 0;
		gint tag_list_it = 0;
		tag_list_collection = _tmp8_;
		tag_list_collection_length1 = _tmp8__length1;
		for (tag_list_it = 0; tag_list_it < tag_list_collection_length1; tag_list_it = tag_list_it + 1) {
			gchar* _tmp9_;
			gchar* tag_list = NULL;
			_tmp9_ = g_strdup (tag_list_collection[tag_list_it]);
			tag_list = _tmp9_;
			{
				const gchar* _tmp10_;
				const gchar* _tmp11_;
				_tmp10_ = tag_list;
				_tmp11_ = uuid_prefix;
				if (g_str_has_prefix (_tmp10_, _tmp11_)) {
					gchar* _tmp12_;
					updated = TRUE;
					_tmp12_ = tuba_dialogs_hashtag_list_data_to_string (data);
					_vala_array_add17 (&new_tag_lists, &new_tag_lists_length1, &_new_tag_lists_size_, _tmp12_);
				} else {
					const gchar* _tmp13_;
					gchar* _tmp14_;
					_tmp13_ = tag_list;
					_tmp14_ = g_strdup (_tmp13_);
					_vala_array_add18 (&new_tag_lists, &new_tag_lists_length1, &_new_tag_lists_size_, _tmp14_);
				}
				_g_free0 (tag_list);
			}
		}
	}
	if (!updated) {
		gchar* _tmp15_;
		_tmp15_ = tuba_dialogs_hashtag_list_data_to_string (data);
		_vala_array_add19 (&new_tag_lists, &new_tag_lists_length1, &_new_tag_lists_size_, _tmp15_);
	}
	_tmp16_ = tuba_settings;
	_tmp17_ = new_tag_lists;
	_tmp17__length1 = new_tag_lists_length1;
	tuba_settings_set_hashtag_lists (_tmp16_, _tmp17_, _tmp17__length1);
	_g_free0 (uuid_prefix);
	new_tag_lists = (_vala_array_free (new_tag_lists, new_tag_lists_length1, (GDestroyNotify) g_free), NULL);
}

static void
_vala_array_add20 (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;
}

void
tuba_dialogs_hashtag_list_remove_hashtag_list (const gchar* uuid)
{
	gchar** new_tag_lists = NULL;
	gchar** _tmp0_;
	gint new_tag_lists_length1;
	gint _new_tag_lists_size_;
	gchar* uuid_prefix = NULL;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	TubaSettings* _tmp3_;
	gchar** _tmp4_;
	gint _tmp4__length1;
	gint _tmp5_ = 0;
	gchar** _tmp6_;
	gint _tmp6__length1;
	TubaSettings* _tmp12_;
	gchar** _tmp13_;
	gint _tmp13__length1;
	g_return_if_fail (uuid != NULL);
	_tmp0_ = g_new0 (gchar*, 0 + 1);
	new_tag_lists = _tmp0_;
	new_tag_lists_length1 = 0;
	_new_tag_lists_size_ = new_tag_lists_length1;
	_tmp1_ = string_to_string (uuid);
	_tmp2_ = g_strconcat (_tmp1_, ":", NULL);
	uuid_prefix = _tmp2_;
	_tmp3_ = tuba_settings;
	_tmp4_ = tuba_settings_get_hashtag_lists (_tmp3_, &_tmp5_);
	_tmp4__length1 = _tmp5_;
	_tmp6_ = _tmp4_;
	_tmp6__length1 = _tmp4__length1;
	{
		gchar** tag_list_collection = NULL;
		gint tag_list_collection_length1 = 0;
		gint _tag_list_collection_size_ = 0;
		gint tag_list_it = 0;
		tag_list_collection = _tmp6_;
		tag_list_collection_length1 = _tmp6__length1;
		for (tag_list_it = 0; tag_list_it < tag_list_collection_length1; tag_list_it = tag_list_it + 1) {
			gchar* _tmp7_;
			gchar* tag_list = NULL;
			_tmp7_ = g_strdup (tag_list_collection[tag_list_it]);
			tag_list = _tmp7_;
			{
				const gchar* _tmp8_;
				const gchar* _tmp9_;
				_tmp8_ = tag_list;
				_tmp9_ = uuid_prefix;
				if (!g_str_has_prefix (_tmp8_, _tmp9_)) {
					const gchar* _tmp10_;
					gchar* _tmp11_;
					_tmp10_ = tag_list;
					_tmp11_ = g_strdup (_tmp10_);
					_vala_array_add20 (&new_tag_lists, &new_tag_lists_length1, &_new_tag_lists_size_, _tmp11_);
				}
				_g_free0 (tag_list);
			}
		}
	}
	_tmp12_ = tuba_settings;
	_tmp13_ = new_tag_lists;
	_tmp13__length1 = new_tag_lists_length1;
	tuba_settings_set_hashtag_lists (_tmp12_, _tmp13_, _tmp13__length1);
	_g_free0 (uuid_prefix);
	new_tag_lists = (_vala_array_free (new_tag_lists, new_tag_lists_length1, (GDestroyNotify) g_free), NULL);
}

static inline gpointer
tuba_dialogs_hashtag_list_data_get_instance_private (TubaDialogsHashtagListData* self)
{
	return G_STRUCT_MEMBER_P (self, TubaDialogsHashtagListData_private_offset);
}

static gchar**
_vala_array_dup11 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

gchar**
tuba_dialogs_hashtag_list_data_get_any (TubaDialogsHashtagListData* self,
                                        gint* result_length1)
{
	gchar** _tmp0_;
	gint _tmp0__length1;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gchar** result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->any;
	_tmp0__length1 = self->priv->any_length1;
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup11 (_tmp0_, _tmp0__length1) : _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = _tmp1__length1;
	if (result_length1) {
		*result_length1 = _tmp2__length1;
	}
	result = _tmp2_;
	return result;
}

static gchar**
_vala_array_dup12 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

gchar**
tuba_dialogs_hashtag_list_data_get_all (TubaDialogsHashtagListData* self,
                                        gint* result_length1)
{
	gchar** _tmp0_;
	gint _tmp0__length1;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gchar** result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->all;
	_tmp0__length1 = self->priv->all_length1;
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup12 (_tmp0_, _tmp0__length1) : _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = _tmp1__length1;
	if (result_length1) {
		*result_length1 = _tmp2__length1;
	}
	result = _tmp2_;
	return result;
}

static gchar**
_vala_array_dup13 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

gchar**
tuba_dialogs_hashtag_list_data_get_none (TubaDialogsHashtagListData* self,
                                         gint* result_length1)
{
	gchar** _tmp0_;
	gint _tmp0__length1;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gchar** result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->none;
	_tmp0__length1 = self->priv->none_length1;
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup13 (_tmp0_, _tmp0__length1) : _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = _tmp1__length1;
	if (result_length1) {
		*result_length1 = _tmp2__length1;
	}
	result = _tmp2_;
	return result;
}

static gchar**
_vala_array_dup14 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gchar**
_vala_array_dup15 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gchar**
_vala_array_dup16 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

TubaDialogsHashtagListData*
tuba_dialogs_hashtag_list_data_construct (GType object_type,
                                          const gchar* title,
                                          gchar** any,
                                          gint any_length1,
                                          gchar** all,
                                          gint all_length1,
                                          gchar** none,
                                          gint none_length1,
                                          const gchar* uuid)
{
	TubaDialogsHashtagListData * self = NULL;
	gchar** _tmp0_;
	gint _tmp0__length1;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gchar* _tmp3_ = NULL;
	g_return_val_if_fail (title != NULL, NULL);
	self = (TubaDialogsHashtagListData*) g_object_new (object_type, NULL);
	tuba_dialogs_hashtag_list_data_set_title (self, title);
	_tmp0_ = (any != NULL) ? _vala_array_dup14 (any, any_length1) : any;
	_tmp0__length1 = any_length1;
	self->priv->any = (_vala_array_free (self->priv->any, self->priv->any_length1, (GDestroyNotify) g_free), NULL);
	self->priv->any = _tmp0_;
	self->priv->any_length1 = _tmp0__length1;
	self->priv->_any_size_ = self->priv->any_length1;
	_tmp1_ = (all != NULL) ? _vala_array_dup15 (all, all_length1) : all;
	_tmp1__length1 = all_length1;
	self->priv->all = (_vala_array_free (self->priv->all, self->priv->all_length1, (GDestroyNotify) g_free), NULL);
	self->priv->all = _tmp1_;
	self->priv->all_length1 = _tmp1__length1;
	self->priv->_all_size_ = self->priv->all_length1;
	_tmp2_ = (none != NULL) ? _vala_array_dup16 (none, none_length1) : none;
	_tmp2__length1 = none_length1;
	self->priv->none = (_vala_array_free (self->priv->none, self->priv->none_length1, (GDestroyNotify) g_free), NULL);
	self->priv->none = _tmp2_;
	self->priv->none_length1 = _tmp2__length1;
	self->priv->_none_size_ = self->priv->none_length1;
	if (uuid == NULL) {
		gchar* _tmp4_;
		_tmp4_ = g_uuid_string_random ();
		_g_free0 (_tmp3_);
		_tmp3_ = _tmp4_;
	} else {
		gchar* _tmp5_;
		_tmp5_ = g_strdup (uuid);
		_g_free0 (_tmp3_);
		_tmp3_ = _tmp5_;
	}
	tuba_dialogs_hashtag_list_data_set_uuid (self, _tmp3_);
	_g_free0 (_tmp3_);
	return self;
}

TubaDialogsHashtagListData*
tuba_dialogs_hashtag_list_data_new (const gchar* title,
                                    gchar** any,
                                    gint any_length1,
                                    gchar** all,
                                    gint all_length1,
                                    gchar** none,
                                    gint none_length1,
                                    const gchar* uuid)
{
	return tuba_dialogs_hashtag_list_data_construct (TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA, title, any, any_length1, all, all_length1, none, none_length1, uuid);
}

static void
_vala_array_add21 (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_add22 (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_add23 (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;
}

TubaDialogsHashtagListData*
tuba_dialogs_hashtag_list_data_construct_from_string (GType object_type,
                                                      const gchar* data_string)
{
	TubaDialogsHashtagListData * self = NULL;
	gchar** parts = NULL;
	gchar** _tmp0_;
	gchar** _tmp1_;
	gint parts_length1;
	gint _parts_size_;
	gchar** _tmp2_;
	gchar** _tmp3_;
	gchar** _tmp4_;
	const gchar* _tmp33_;
	g_return_val_if_fail (data_string != NULL, NULL);
	self = (TubaDialogsHashtagListData*) g_object_new (object_type, NULL);
	_tmp1_ = _tmp0_ = g_strsplit (data_string, ":", 0);
	parts = _tmp1_;
	parts_length1 = _vala_array_length (_tmp0_);
	_parts_size_ = parts_length1;
	tuba_dialogs_hashtag_list_data_set_title (self, "");
	_tmp2_ = g_new0 (gchar*, 0 + 1);
	self->priv->any = (_vala_array_free (self->priv->any, self->priv->any_length1, (GDestroyNotify) g_free), NULL);
	self->priv->any = _tmp2_;
	self->priv->any_length1 = 0;
	self->priv->_any_size_ = self->priv->any_length1;
	_tmp3_ = g_new0 (gchar*, 0 + 1);
	self->priv->all = (_vala_array_free (self->priv->all, self->priv->all_length1, (GDestroyNotify) g_free), NULL);
	self->priv->all = _tmp3_;
	self->priv->all_length1 = 0;
	self->priv->_all_size_ = self->priv->all_length1;
	_tmp4_ = g_new0 (gchar*, 0 + 1);
	self->priv->none = (_vala_array_free (self->priv->none, self->priv->none_length1, (GDestroyNotify) g_free), NULL);
	self->priv->none = _tmp4_;
	self->priv->none_length1 = 0;
	self->priv->_none_size_ = self->priv->none_length1;
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp5_ = FALSE;
			_tmp5_ = TRUE;
			while (TRUE) {
				gchar** _tmp7_;
				gint _tmp7__length1;
				if (!_tmp5_) {
					gint _tmp6_;
					_tmp6_ = i;
					i = _tmp6_ + 1;
				}
				_tmp5_ = FALSE;
				_tmp7_ = parts;
				_tmp7__length1 = parts_length1;
				if (!(i < _tmp7__length1)) {
					break;
				}
				switch (i) {
					case 0:
					{
						gchar** _tmp8_;
						gint _tmp8__length1;
						const gchar* _tmp9_;
						_tmp8_ = parts;
						_tmp8__length1 = parts_length1;
						_tmp9_ = _tmp8_[i];
						tuba_dialogs_hashtag_list_data_set_uuid (self, _tmp9_);
						break;
					}
					case 1:
					{
						gchar** _tmp10_;
						gint _tmp10__length1;
						const gchar* _tmp11_;
						gchar* _tmp12_;
						gchar* _tmp13_;
						_tmp10_ = parts;
						_tmp10__length1 = parts_length1;
						_tmp11_ = _tmp10_[i];
						_tmp12_ = g_uri_unescape_string (_tmp11_, NULL);
						_tmp13_ = _tmp12_;
						tuba_dialogs_hashtag_list_data_set_title (self, _tmp13_);
						_g_free0 (_tmp13_);
						break;
					}
					default:
					{
						gchar** sub_parts = NULL;
						gchar** _tmp14_;
						gint _tmp14__length1;
						const gchar* _tmp15_;
						gchar** _tmp16_;
						gchar** _tmp17_;
						gint sub_parts_length1;
						gint _sub_parts_size_;
						gchar** _tmp18_;
						gint _tmp18__length1;
						_tmp14_ = parts;
						_tmp14__length1 = parts_length1;
						_tmp15_ = _tmp14_[i];
						_tmp17_ = _tmp16_ = g_strsplit (_tmp15_, ";", 0);
						sub_parts = _tmp17_;
						sub_parts_length1 = _vala_array_length (_tmp16_);
						_sub_parts_size_ = sub_parts_length1;
						_tmp18_ = sub_parts;
						_tmp18__length1 = sub_parts_length1;
						if (_tmp18__length1 == 2) {
							gchar* tag = NULL;
							gchar** _tmp19_;
							gint _tmp19__length1;
							const gchar* _tmp20_;
							gchar* _tmp21_;
							gchar** _tmp22_;
							gint _tmp22__length1;
							const gchar* _tmp23_;
							const gchar* _tmp24_;
							GQuark _tmp26_ = 0U;
							static GQuark _tmp25_label0 = 0;
							static GQuark _tmp25_label1 = 0;
							static GQuark _tmp25_label2 = 0;
							_tmp19_ = sub_parts;
							_tmp19__length1 = sub_parts_length1;
							_tmp20_ = _tmp19_[0];
							_tmp21_ = g_uri_unescape_string (_tmp20_, NULL);
							tag = _tmp21_;
							_tmp22_ = sub_parts;
							_tmp22__length1 = sub_parts_length1;
							_tmp23_ = _tmp22_[1];
							_tmp24_ = _tmp23_;
							_tmp26_ = (NULL == _tmp24_) ? 0 : g_quark_from_string (_tmp24_);
							if (_tmp26_ == ((0 != _tmp25_label0) ? _tmp25_label0 : (_tmp25_label0 = g_quark_from_static_string ("any")))) {
								switch (0) {
									default:
									{
										const gchar* _tmp27_;
										gchar* _tmp28_;
										_tmp27_ = tag;
										_tmp28_ = g_strdup (_tmp27_);
										_vala_array_add21 (&self->priv->any, &self->priv->any_length1, &self->priv->_any_size_, _tmp28_);
										break;
									}
								}
							} else if (_tmp26_ == ((0 != _tmp25_label1) ? _tmp25_label1 : (_tmp25_label1 = g_quark_from_static_string ("all")))) {
								switch (0) {
									default:
									{
										const gchar* _tmp29_;
										gchar* _tmp30_;
										_tmp29_ = tag;
										_tmp30_ = g_strdup (_tmp29_);
										_vala_array_add22 (&self->priv->all, &self->priv->all_length1, &self->priv->_all_size_, _tmp30_);
										break;
									}
								}
							} else if (_tmp26_ == ((0 != _tmp25_label2) ? _tmp25_label2 : (_tmp25_label2 = g_quark_from_static_string ("none")))) {
								switch (0) {
									default:
									{
										const gchar* _tmp31_;
										gchar* _tmp32_;
										_tmp31_ = tag;
										_tmp32_ = g_strdup (_tmp31_);
										_vala_array_add23 (&self->priv->none, &self->priv->none_length1, &self->priv->_none_size_, _tmp32_);
										break;
									}
								}
							}
							_g_free0 (tag);
						}
						sub_parts = (_vala_array_free (sub_parts, sub_parts_length1, (GDestroyNotify) g_free), NULL);
						break;
					}
				}
			}
		}
	}
	_tmp33_ = self->priv->_uuid;
	if (_tmp33_ == NULL) {
		gchar* _tmp34_;
		gchar* _tmp35_;
		_tmp34_ = g_uuid_string_random ();
		_tmp35_ = _tmp34_;
		tuba_dialogs_hashtag_list_data_set_uuid (self, _tmp35_);
		_g_free0 (_tmp35_);
	}
	parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
	return self;
}

TubaDialogsHashtagListData*
tuba_dialogs_hashtag_list_data_new_from_string (const gchar* data_string)
{
	return tuba_dialogs_hashtag_list_data_construct_from_string (TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA, data_string);
}

static void
_vala_array_add24 (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_add25 (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_add26 (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;
	}
}

gchar*
tuba_dialogs_hashtag_list_data_to_string (TubaDialogsHashtagListData* self)
{
	gchar** final_strings = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar** _tmp4_;
	gint final_strings_length1;
	gint _final_strings_size_;
	gchar** _tmp5_;
	gint _tmp5__length1;
	gchar** _tmp12_;
	gint _tmp12__length1;
	gchar** _tmp19_;
	gint _tmp19__length1;
	gchar** _tmp26_;
	gint _tmp26__length1;
	gchar* _tmp27_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_uuid;
	_tmp1_ = g_strdup (_tmp0_);
	_tmp2_ = self->priv->_title;
	_tmp3_ = g_uri_escape_string (_tmp2_, NULL, TRUE);
	_tmp4_ = g_new0 (gchar*, 2 + 1);
	_tmp4_[0] = _tmp1_;
	_tmp4_[1] = _tmp3_;
	final_strings = _tmp4_;
	final_strings_length1 = 2;
	_final_strings_size_ = final_strings_length1;
	_tmp5_ = self->priv->any;
	_tmp5__length1 = self->priv->any_length1;
	{
		gchar** tag_collection = NULL;
		gint tag_collection_length1 = 0;
		gint _tag_collection_size_ = 0;
		gint tag_it = 0;
		tag_collection = _tmp5_;
		tag_collection_length1 = _tmp5__length1;
		for (tag_it = 0; tag_it < tag_collection_length1; tag_it = tag_it + 1) {
			gchar* _tmp6_;
			gchar* tag = NULL;
			_tmp6_ = g_strdup (tag_collection[tag_it]);
			tag = _tmp6_;
			{
				const gchar* _tmp7_;
				gchar* _tmp8_;
				gchar* _tmp9_;
				const gchar* _tmp10_;
				gchar* _tmp11_;
				_tmp7_ = tag;
				_tmp8_ = g_uri_escape_string (_tmp7_, NULL, TRUE);
				_tmp9_ = _tmp8_;
				_tmp10_ = string_to_string (_tmp9_);
				_tmp11_ = g_strconcat (_tmp10_, ";any", NULL);
				_vala_array_add24 (&final_strings, &final_strings_length1, &_final_strings_size_, _tmp11_);
				_g_free0 (_tmp9_);
				_g_free0 (tag);
			}
		}
	}
	_tmp12_ = self->priv->all;
	_tmp12__length1 = self->priv->all_length1;
	{
		gchar** tag_collection = NULL;
		gint tag_collection_length1 = 0;
		gint _tag_collection_size_ = 0;
		gint tag_it = 0;
		tag_collection = _tmp12_;
		tag_collection_length1 = _tmp12__length1;
		for (tag_it = 0; tag_it < tag_collection_length1; tag_it = tag_it + 1) {
			gchar* _tmp13_;
			gchar* tag = NULL;
			_tmp13_ = g_strdup (tag_collection[tag_it]);
			tag = _tmp13_;
			{
				const gchar* _tmp14_;
				gchar* _tmp15_;
				gchar* _tmp16_;
				const gchar* _tmp17_;
				gchar* _tmp18_;
				_tmp14_ = tag;
				_tmp15_ = g_uri_escape_string (_tmp14_, NULL, TRUE);
				_tmp16_ = _tmp15_;
				_tmp17_ = string_to_string (_tmp16_);
				_tmp18_ = g_strconcat (_tmp17_, ";all", NULL);
				_vala_array_add25 (&final_strings, &final_strings_length1, &_final_strings_size_, _tmp18_);
				_g_free0 (_tmp16_);
				_g_free0 (tag);
			}
		}
	}
	_tmp19_ = self->priv->none;
	_tmp19__length1 = self->priv->none_length1;
	{
		gchar** tag_collection = NULL;
		gint tag_collection_length1 = 0;
		gint _tag_collection_size_ = 0;
		gint tag_it = 0;
		tag_collection = _tmp19_;
		tag_collection_length1 = _tmp19__length1;
		for (tag_it = 0; tag_it < tag_collection_length1; tag_it = tag_it + 1) {
			gchar* _tmp20_;
			gchar* tag = NULL;
			_tmp20_ = g_strdup (tag_collection[tag_it]);
			tag = _tmp20_;
			{
				const gchar* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				const gchar* _tmp24_;
				gchar* _tmp25_;
				_tmp21_ = tag;
				_tmp22_ = g_uri_escape_string (_tmp21_, NULL, TRUE);
				_tmp23_ = _tmp22_;
				_tmp24_ = string_to_string (_tmp23_);
				_tmp25_ = g_strconcat (_tmp24_, ";none", NULL);
				_vala_array_add26 (&final_strings, &final_strings_length1, &_final_strings_size_, _tmp25_);
				_g_free0 (_tmp23_);
				_g_free0 (tag);
			}
		}
	}
	_tmp26_ = final_strings;
	_tmp26__length1 = final_strings_length1;
	_tmp27_ = _vala_g_strjoinv (":", _tmp26_, (gint) _tmp26__length1);
	result = _tmp27_;
	final_strings = (_vala_array_free (final_strings, final_strings_length1, (GDestroyNotify) g_free), NULL);
	return result;
}

static void
_vala_array_add27 (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_add28 (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_add29 (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;
}

gchar*
tuba_dialogs_hashtag_list_data_to_uri_part (TubaDialogsHashtagListData* self)
{
	gchar* main = NULL;
	gchar* _tmp0_;
	gint start_any = 0;
	gint start_all = 0;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gchar** final_params = NULL;
	gchar** _tmp8_;
	gint final_params_length1;
	gint _final_params_size_;
	gchar* brackets_encoded = NULL;
	gchar* _tmp9_;
	gchar** _tmp32_;
	gint _tmp32__length1;
	const gchar* _tmp41_;
	const gchar* _tmp42_;
	gchar** _tmp43_;
	gint _tmp43__length1;
	gchar* _tmp44_;
	gchar* _tmp45_;
	const gchar* _tmp46_;
	gchar* _tmp47_;
	gchar* _tmp48_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup ("");
	main = _tmp0_;
	start_any = 0;
	start_all = 0;
	_tmp1_ = self->priv->all;
	_tmp1__length1 = self->priv->all_length1;
	if (_tmp1__length1 > 0) {
		gchar** _tmp2_;
		gint _tmp2__length1;
		const gchar* _tmp3_;
		gchar* _tmp4_;
		_tmp2_ = self->priv->all;
		_tmp2__length1 = self->priv->all_length1;
		_tmp3_ = _tmp2_[0];
		_tmp4_ = g_uri_escape_string (_tmp3_, NULL, TRUE);
		_g_free0 (main);
		main = _tmp4_;
	} else {
		gchar** _tmp5_;
		gint _tmp5__length1;
		const gchar* _tmp6_;
		gchar* _tmp7_;
		_tmp5_ = self->priv->any;
		_tmp5__length1 = self->priv->any_length1;
		_tmp6_ = _tmp5_[0];
		_tmp7_ = g_uri_escape_string (_tmp6_, NULL, TRUE);
		_g_free0 (main);
		main = _tmp7_;
	}
	_tmp8_ = g_new0 (gchar*, 0 + 1);
	final_params = _tmp8_;
	final_params_length1 = 0;
	_final_params_size_ = final_params_length1;
	_tmp9_ = g_uri_escape_string ("[]", NULL, TRUE);
	brackets_encoded = _tmp9_;
	{
		gint i = 0;
		i = start_any;
		{
			gboolean _tmp10_ = FALSE;
			_tmp10_ = TRUE;
			while (TRUE) {
				gchar** _tmp12_;
				gint _tmp12__length1;
				const gchar* _tmp13_;
				const gchar* _tmp14_;
				gchar** _tmp15_;
				gint _tmp15__length1;
				const gchar* _tmp16_;
				gchar* _tmp17_;
				gchar* _tmp18_;
				const gchar* _tmp19_;
				gchar* _tmp20_;
				if (!_tmp10_) {
					gint _tmp11_;
					_tmp11_ = i;
					i = _tmp11_ + 1;
				}
				_tmp10_ = FALSE;
				_tmp12_ = self->priv->any;
				_tmp12__length1 = self->priv->any_length1;
				if (!(i < _tmp12__length1)) {
					break;
				}
				_tmp13_ = brackets_encoded;
				_tmp14_ = string_to_string (_tmp13_);
				_tmp15_ = self->priv->any;
				_tmp15__length1 = self->priv->any_length1;
				_tmp16_ = _tmp15_[i];
				_tmp17_ = g_uri_escape_string (_tmp16_, NULL, TRUE);
				_tmp18_ = _tmp17_;
				_tmp19_ = string_to_string (_tmp18_);
				_tmp20_ = g_strconcat ("any", _tmp14_, "=", _tmp19_, NULL);
				_vala_array_add27 (&final_params, &final_params_length1, &_final_params_size_, _tmp20_);
				_g_free0 (_tmp18_);
			}
		}
	}
	{
		gint i = 0;
		i = start_all;
		{
			gboolean _tmp21_ = FALSE;
			_tmp21_ = TRUE;
			while (TRUE) {
				gchar** _tmp23_;
				gint _tmp23__length1;
				const gchar* _tmp24_;
				const gchar* _tmp25_;
				gchar** _tmp26_;
				gint _tmp26__length1;
				const gchar* _tmp27_;
				gchar* _tmp28_;
				gchar* _tmp29_;
				const gchar* _tmp30_;
				gchar* _tmp31_;
				if (!_tmp21_) {
					gint _tmp22_;
					_tmp22_ = i;
					i = _tmp22_ + 1;
				}
				_tmp21_ = FALSE;
				_tmp23_ = self->priv->all;
				_tmp23__length1 = self->priv->all_length1;
				if (!(i < _tmp23__length1)) {
					break;
				}
				_tmp24_ = brackets_encoded;
				_tmp25_ = string_to_string (_tmp24_);
				_tmp26_ = self->priv->all;
				_tmp26__length1 = self->priv->all_length1;
				_tmp27_ = _tmp26_[i];
				_tmp28_ = g_uri_escape_string (_tmp27_, NULL, TRUE);
				_tmp29_ = _tmp28_;
				_tmp30_ = string_to_string (_tmp29_);
				_tmp31_ = g_strconcat ("all", _tmp25_, "=", _tmp30_, NULL);
				_vala_array_add28 (&final_params, &final_params_length1, &_final_params_size_, _tmp31_);
				_g_free0 (_tmp29_);
			}
		}
	}
	_tmp32_ = self->priv->none;
	_tmp32__length1 = self->priv->none_length1;
	{
		gchar** tag_collection = NULL;
		gint tag_collection_length1 = 0;
		gint _tag_collection_size_ = 0;
		gint tag_it = 0;
		tag_collection = _tmp32_;
		tag_collection_length1 = _tmp32__length1;
		for (tag_it = 0; tag_it < tag_collection_length1; tag_it = tag_it + 1) {
			gchar* _tmp33_;
			gchar* tag = NULL;
			_tmp33_ = g_strdup (tag_collection[tag_it]);
			tag = _tmp33_;
			{
				const gchar* _tmp34_;
				const gchar* _tmp35_;
				const gchar* _tmp36_;
				gchar* _tmp37_;
				gchar* _tmp38_;
				const gchar* _tmp39_;
				gchar* _tmp40_;
				_tmp34_ = brackets_encoded;
				_tmp35_ = string_to_string (_tmp34_);
				_tmp36_ = tag;
				_tmp37_ = g_uri_escape_string (_tmp36_, NULL, TRUE);
				_tmp38_ = _tmp37_;
				_tmp39_ = string_to_string (_tmp38_);
				_tmp40_ = g_strconcat ("none", _tmp35_, "=", _tmp39_, NULL);
				_vala_array_add29 (&final_params, &final_params_length1, &_final_params_size_, _tmp40_);
				_g_free0 (_tmp38_);
				_g_free0 (tag);
			}
		}
	}
	_tmp41_ = main;
	_tmp42_ = string_to_string (_tmp41_);
	_tmp43_ = final_params;
	_tmp43__length1 = final_params_length1;
	_tmp44_ = _vala_g_strjoinv ("&", _tmp43_, (gint) _tmp43__length1);
	_tmp45_ = _tmp44_;
	_tmp46_ = string_to_string (_tmp45_);
	_tmp47_ = g_strconcat (_tmp42_, "?", _tmp46_, NULL);
	_tmp48_ = _tmp47_;
	_g_free0 (_tmp45_);
	result = _tmp48_;
	_g_free0 (brackets_encoded);
	final_params = (_vala_array_free (final_params, final_params_length1, (GDestroyNotify) g_free), NULL);
	_g_free0 (main);
	return result;
}

static void
_vala_array_add30 (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_add31 (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_add32 (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;
}

gchar*
tuba_dialogs_hashtag_list_data_to_sub (TubaDialogsHashtagListData* self)
{
	gchar** sub = NULL;
	gchar** _tmp0_;
	gint sub_length1;
	gint _sub_size_;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gchar** _tmp8_;
	gint _tmp8__length1;
	gchar** _tmp15_;
	gint _tmp15__length1;
	gchar** _tmp22_;
	gint _tmp22__length1;
	gchar* _tmp23_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_new0 (gchar*, 0 + 1);
	sub = _tmp0_;
	sub_length1 = 0;
	_sub_size_ = sub_length1;
	_tmp1_ = self->priv->any;
	_tmp1__length1 = self->priv->any_length1;
	if (_tmp1__length1 > 0) {
		const gchar* _tmp2_;
		gchar** _tmp3_;
		gint _tmp3__length1;
		gchar* _tmp4_;
		gchar* _tmp5_;
		const gchar* _tmp6_;
		gchar* _tmp7_;
		_tmp2_ = string_to_string (_ ("Any"));
		_tmp3_ = self->priv->any;
		_tmp3__length1 = self->priv->any_length1;
		_tmp4_ = _vala_g_strjoinv (", ", _tmp3_, (gint) _tmp3__length1);
		_tmp5_ = _tmp4_;
		_tmp6_ = string_to_string (_tmp5_);
		_tmp7_ = g_strconcat (_tmp2_, ": ", _tmp6_, NULL);
		_vala_array_add30 (&sub, &sub_length1, &_sub_size_, _tmp7_);
		_g_free0 (_tmp5_);
	}
	_tmp8_ = self->priv->all;
	_tmp8__length1 = self->priv->all_length1;
	if (_tmp8__length1 > 0) {
		const gchar* _tmp9_;
		gchar** _tmp10_;
		gint _tmp10__length1;
		gchar* _tmp11_;
		gchar* _tmp12_;
		const gchar* _tmp13_;
		gchar* _tmp14_;
		_tmp9_ = string_to_string (_ ("All"));
		_tmp10_ = self->priv->all;
		_tmp10__length1 = self->priv->all_length1;
		_tmp11_ = _vala_g_strjoinv (", ", _tmp10_, (gint) _tmp10__length1);
		_tmp12_ = _tmp11_;
		_tmp13_ = string_to_string (_tmp12_);
		_tmp14_ = g_strconcat (_tmp9_, ": ", _tmp13_, NULL);
		_vala_array_add31 (&sub, &sub_length1, &_sub_size_, _tmp14_);
		_g_free0 (_tmp12_);
	}
	_tmp15_ = self->priv->none;
	_tmp15__length1 = self->priv->none_length1;
	if (_tmp15__length1 > 0) {
		const gchar* _tmp16_;
		gchar** _tmp17_;
		gint _tmp17__length1;
		gchar* _tmp18_;
		gchar* _tmp19_;
		const gchar* _tmp20_;
		gchar* _tmp21_;
		_tmp16_ = string_to_string (_ ("None"));
		_tmp17_ = self->priv->none;
		_tmp17__length1 = self->priv->none_length1;
		_tmp18_ = _vala_g_strjoinv (", ", _tmp17_, (gint) _tmp17__length1);
		_tmp19_ = _tmp18_;
		_tmp20_ = string_to_string (_tmp19_);
		_tmp21_ = g_strconcat (_tmp16_, ": ", _tmp20_, NULL);
		_vala_array_add32 (&sub, &sub_length1, &_sub_size_, _tmp21_);
		_g_free0 (_tmp19_);
	}
	_tmp22_ = sub;
	_tmp22__length1 = sub_length1;
	_tmp23_ = _vala_g_strjoinv (" | ", _tmp22_, (gint) _tmp22__length1);
	result = _tmp23_;
	sub = (_vala_array_free (sub, sub_length1, (GDestroyNotify) g_free), NULL);
	return result;
}

const gchar*
tuba_dialogs_hashtag_list_data_get_title (TubaDialogsHashtagListData* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_title;
	result = _tmp0_;
	return result;
}

static void
tuba_dialogs_hashtag_list_data_set_title (TubaDialogsHashtagListData* self,
                                          const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_dialogs_hashtag_list_data_get_title (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_title);
		self->priv->_title = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_dialogs_hashtag_list_data_properties[TUBA_DIALOGS_HASHTAG_LIST_DATA_TITLE_PROPERTY]);
	}
}

const gchar*
tuba_dialogs_hashtag_list_data_get_uuid (TubaDialogsHashtagListData* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_uuid;
	result = _tmp0_;
	return result;
}

static void
tuba_dialogs_hashtag_list_data_set_uuid (TubaDialogsHashtagListData* self,
                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_dialogs_hashtag_list_data_get_uuid (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_uuid);
		self->priv->_uuid = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_dialogs_hashtag_list_data_properties[TUBA_DIALOGS_HASHTAG_LIST_DATA_UUID_PROPERTY]);
	}
}

static void
tuba_dialogs_hashtag_list_data_class_init (TubaDialogsHashtagListDataClass * klass,
                                           gpointer klass_data)
{
	tuba_dialogs_hashtag_list_data_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaDialogsHashtagListData_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_dialogs_hashtag_list_data_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_dialogs_hashtag_list_data_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_dialogs_hashtag_list_data_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_DIALOGS_HASHTAG_LIST_DATA_TITLE_PROPERTY, tuba_dialogs_hashtag_list_data_properties[TUBA_DIALOGS_HASHTAG_LIST_DATA_TITLE_PROPERTY] = g_param_spec_string ("title", "title", "title", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_DIALOGS_HASHTAG_LIST_DATA_UUID_PROPERTY, tuba_dialogs_hashtag_list_data_properties[TUBA_DIALOGS_HASHTAG_LIST_DATA_UUID_PROPERTY] = g_param_spec_string ("uuid", "uuid", "uuid", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
tuba_dialogs_hashtag_list_data_instance_init (TubaDialogsHashtagListData * self,
                                              gpointer klass)
{
	self->priv = tuba_dialogs_hashtag_list_data_get_instance_private (self);
}

static void
tuba_dialogs_hashtag_list_data_finalize (GObject * obj)
{
	TubaDialogsHashtagListData * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA, TubaDialogsHashtagListData);
	_g_free0 (self->priv->_title);
	_g_free0 (self->priv->_uuid);
	self->priv->any = (_vala_array_free (self->priv->any, self->priv->any_length1, (GDestroyNotify) g_free), NULL);
	self->priv->all = (_vala_array_free (self->priv->all, self->priv->all_length1, (GDestroyNotify) g_free), NULL);
	self->priv->none = (_vala_array_free (self->priv->none, self->priv->none_length1, (GDestroyNotify) g_free), NULL);
	G_OBJECT_CLASS (tuba_dialogs_hashtag_list_data_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_dialogs_hashtag_list_data_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaDialogsHashtagListDataClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_dialogs_hashtag_list_data_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaDialogsHashtagListData), 0, (GInstanceInitFunc) tuba_dialogs_hashtag_list_data_instance_init, NULL };
	GType tuba_dialogs_hashtag_list_data_type_id;
	tuba_dialogs_hashtag_list_data_type_id = g_type_register_static (G_TYPE_OBJECT, "TubaDialogsHashtagListData", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaDialogsHashtagListData_private_offset = g_type_add_instance_private (tuba_dialogs_hashtag_list_data_type_id, sizeof (TubaDialogsHashtagListDataPrivate));
	return tuba_dialogs_hashtag_list_data_type_id;
}

GType
tuba_dialogs_hashtag_list_data_get_type (void)
{
	static GType tuba_dialogs_hashtag_list_data_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_dialogs_hashtag_list_data_type_id__once)) {
		GType tuba_dialogs_hashtag_list_data_type_id;
		tuba_dialogs_hashtag_list_data_type_id = tuba_dialogs_hashtag_list_data_get_type_once ();
		g_once_init_leave_pointer (&tuba_dialogs_hashtag_list_data_type_id__once, tuba_dialogs_hashtag_list_data_type_id);
	}
	return tuba_dialogs_hashtag_list_data_type_id__once;
}

static void
_vala_tuba_dialogs_hashtag_list_data_get_property (GObject * object,
                                                   guint property_id,
                                                   GValue * value,
                                                   GParamSpec * pspec)
{
	TubaDialogsHashtagListData * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA, TubaDialogsHashtagListData);
	switch (property_id) {
		case TUBA_DIALOGS_HASHTAG_LIST_DATA_TITLE_PROPERTY:
		g_value_set_string (value, tuba_dialogs_hashtag_list_data_get_title (self));
		break;
		case TUBA_DIALOGS_HASHTAG_LIST_DATA_UUID_PROPERTY:
		g_value_set_string (value, tuba_dialogs_hashtag_list_data_get_uuid (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_dialogs_hashtag_list_data_set_property (GObject * object,
                                                   guint property_id,
                                                   const GValue * value,
                                                   GParamSpec * pspec)
{
	TubaDialogsHashtagListData * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_DIALOGS_HASHTAG_LIST_TYPE_DATA, TubaDialogsHashtagListData);
	switch (property_id) {
		case TUBA_DIALOGS_HASHTAG_LIST_DATA_TITLE_PROPERTY:
		tuba_dialogs_hashtag_list_data_set_title (self, g_value_get_string (value));
		break;
		case TUBA_DIALOGS_HASHTAG_LIST_DATA_UUID_PROPERTY:
		tuba_dialogs_hashtag_list_data_set_uuid (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
tuba_dialogs_hashtag_list_hashtag_search_get_instance_private (TubaDialogsHashtagListHashtagSearch* self)
{
	return G_STRUCT_MEMBER_P (self, TubaDialogsHashtagListHashtagSearch_private_offset);
}

void
tuba_dialogs_hashtag_list_hashtag_search_on_close (TubaDialogsHashtagListHashtagSearch* self)
{
	g_return_if_fail (self != NULL);
	gtk_popover_popdown ((GtkPopover*) self);
}

static void
tuba_dialogs_hashtag_list_hashtag_search_search (TubaDialogsHashtagListHashtagSearch* self)
{
	GtkSearchEntry* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->entry;
	_tmp1_ = gtk_editable_get_text ((GtkEditable*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = string_strip (_tmp2_);
	_tmp4_ = _tmp3_;
	tuba_dialogs_hashtag_list_hashtag_search_search_real (self, _tmp4_, NULL, NULL);
	_g_free0 (_tmp4_);
}

static void
tuba_dialogs_hashtag_list_hashtag_search_search_real_data_free (gpointer _data)
{
	TubaDialogsHashtagListHashtagSearchSearchRealData* _data_;
	_data_ = _data;
	_g_free0 (_data_->query);
	_g_object_unref0 (_data_->self);
	g_slice_free (TubaDialogsHashtagListHashtagSearchSearchRealData, _data_);
}

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

static void
tuba_dialogs_hashtag_list_hashtag_search_search_real (TubaDialogsHashtagListHashtagSearch* self,
                                                      const gchar* query,
                                                      GAsyncReadyCallback _callback_,
                                                      gpointer _user_data_)
{
	TubaDialogsHashtagListHashtagSearchSearchRealData* _data_;
	TubaDialogsHashtagListHashtagSearch* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (query != NULL);
	_data_ = g_slice_new0 (TubaDialogsHashtagListHashtagSearchSearchRealData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_dialogs_hashtag_list_hashtag_search_search_real_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (query);
	_g_free0 (_data_->query);
	_data_->query = _tmp1_;
	tuba_dialogs_hashtag_list_hashtag_search_search_real_co (_data_);
}

static void
tuba_dialogs_hashtag_list_hashtag_search_search_real_finish (TubaDialogsHashtagListHashtagSearch* self,
                                                             GAsyncResult* _res_)
{
	TubaDialogsHashtagListHashtagSearchSearchRealData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static void
tuba_dialogs_hashtag_list_hashtag_search_search_real_ready (GObject* source_object,
                                                            GAsyncResult* _res_,
                                                            gpointer _user_data_)
{
	TubaDialogsHashtagListHashtagSearchSearchRealData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_dialogs_hashtag_list_hashtag_search_search_real_co (_data_);
}

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

static Block28Data*
block28_data_ref (Block28Data* _data28_)
{
	g_atomic_int_inc (&_data28_->_ref_count_);
	return _data28_;
}

static void
block28_data_unref (void * _userdata_)
{
	Block28Data* _data28_;
	_data28_ = (Block28Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data28_->_ref_count_)) {
		TubaDialogsHashtagListHashtagSearch* self;
		self = _data28_->self;
		_g_object_unref0 (self);
		g_slice_free (Block28Data, _data28_);
	}
}

static void
_tuba_dialogs_hashtag_list_hashtag_search_on_tag_chosen_adw_action_row_activated (AdwActionRow* _sender,
                                                                                  gpointer self)
{
	tuba_dialogs_hashtag_list_hashtag_search_on_tag_chosen ((TubaDialogsHashtagListHashtagSearch*) self, _sender);
}

static gboolean
____lambda138_ (Block28Data* _data28_,
                TubaAPITag* tag)
{
	TubaDialogsHashtagListHashtagSearch* self;
	TubaWidgetsTag* widget = NULL;
	gchar* _tmp0_;
	gchar** _tmp1_;
	TubaWidgetsTag* _tmp2_ = NULL;
	TubaWidgetsTag* _tmp3_;
	GtkListBox* _tmp4_;
	TubaWidgetsTag* _tmp5_;
	gboolean result;
	self = _data28_->self;
	g_return_val_if_fail (tag != NULL, FALSE);
	_tmp0_ = g_strdup ("border-radius-6");
	_tmp1_ = g_new0 (gchar*, 1 + 1);
	_tmp1_[0] = _tmp0_;
	_tmp2_ = tuba_widgets_tag_new (G_TYPE_CHECK_INSTANCE_CAST (tag, TUBA_API_TYPE_TAG, TubaAPITag));
	gtk_widget_set_css_classes ((GtkWidget*) _tmp2_, _tmp1_);
	_tmp1_ = (_vala_array_free (_tmp1_, 1, (GDestroyNotify) g_free), NULL);
	g_object_ref_sink (_tmp2_);
	widget = _tmp2_;
	_tmp3_ = widget;
	g_signal_connect_object ((AdwActionRow*) _tmp3_, "activated", (GCallback) _tuba_dialogs_hashtag_list_hashtag_search_on_tag_chosen_adw_action_row_activated, self, 0);
	_tmp4_ = self->priv->result_box;
	_tmp5_ = widget;
	gtk_list_box_append (_tmp4_, (GtkWidget*) _tmp5_);
	if (_data28_->i == 0) {
		TubaWidgetsTag* _tmp6_;
		_tmp6_ = widget;
		gtk_widget_grab_focus ((GtkWidget*) _tmp6_);
	}
	_data28_->i += 1;
	result = _data28_->i < 4;
	_g_object_unref0 (widget);
	_g_object_unref0 (tag);
	return result;
}

static gboolean
_____lambda138__gee_forall_func (gpointer g,
                                 gpointer self)
{
	gboolean result;
	result = ____lambda138_ (self, (TubaAPITag*) g);
	return result;
}

static gboolean
tuba_dialogs_hashtag_list_hashtag_search_search_real_co (TubaDialogsHashtagListHashtagSearchSearchRealData* _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->result_box;
	gtk_list_box_remove_all (_data_->_tmp0_);
	_data_->_tmp1_ = _data_->self->priv->sw;
	gtk_widget_set_visible ((GtkWidget*) _data_->_tmp1_, FALSE);
	_data_->_tmp2_ = _data_->self->priv->last_req;
	if (_data_->_tmp2_ != NULL) {
		_data_->_tmp3_ = _data_->self->priv->last_req;
		_data_->_tmp4_ = tuba_request_v2_get_cancellable (_data_->_tmp3_);
		_data_->_tmp5_ = _data_->_tmp4_;
		g_cancellable_cancel (_data_->_tmp5_);
		_g_object_unref0 (_data_->self->priv->last_req);
		_data_->self->priv->last_req = NULL;
	}
	if (g_strcmp0 (_data_->query, "") == 0) {
		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_->_tmp7_ = tuba_api_tag_search (_data_->query, &_data_->_inner_error0_);
		_data_->_tmp6_ = _data_->_tmp7_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_data_->_tmp8_ = _data_->_tmp6_;
		_data_->_tmp6_ = NULL;
		_g_object_unref0 (_data_->self->priv->last_req);
		_data_->self->priv->last_req = _data_->_tmp8_;
		_data_->_tmp9_ = _data_->self->priv->last_req;
		_data_->_state_ = 1;
		tuba_request_v2_exec (_data_->_tmp9_, tuba_dialogs_hashtag_list_hashtag_search_search_real_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp10_ = tuba_request_v2_exec_finish (_data_->_tmp9_, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->in_stream = _data_->_tmp10_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->_tmp6_);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_data_->_tmp12_ = _data_->self->priv->last_req;
		if (_data_->_tmp12_ == NULL) {
			_data_->_tmp11_ = TRUE;
		} else {
			_data_->_tmp13_ = _data_->self->priv->last_req;
			_data_->_tmp14_ = tuba_request_v2_get_cancellable (_data_->_tmp13_);
			_data_->_tmp15_ = _data_->_tmp14_;
			_data_->_tmp11_ = g_cancellable_is_cancelled (_data_->_tmp15_);
		}
		if (_data_->_tmp11_) {
			_g_object_unref0 (_data_->in_stream);
			_g_object_unref0 (_data_->_tmp6_);
			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_->in_stream;
		_data_->_state_ = 2;
		tuba_network_get_parser_from_inputstream_async (_data_->_tmp16_, NULL, tuba_dialogs_hashtag_list_hashtag_search_search_real_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp17_ = tuba_network_get_parser_from_inputstream_finish (_data_->_res_, &_data_->_inner_error0_);
		_data_->parser = _data_->_tmp17_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->in_stream);
			_g_object_unref0 (_data_->_tmp6_);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_data_->_tmp18_ = tuba_network;
		_data_->_tmp19_ = _data_->parser;
		_data_->_tmp20_ = tuba_network_parse_node (_data_->_tmp18_, _data_->_tmp19_);
		_data_->_tmp21_ = _data_->_tmp20_;
		_data_->_tmp22_ = tuba_api_search_results_from (_data_->_tmp21_, &_data_->_inner_error0_);
		_data_->_tmp23_ = _data_->_tmp22_;
		__vala_JsonNode_free0 (_data_->_tmp21_);
		_data_->results = _data_->_tmp23_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			_g_object_unref0 (_data_->_tmp6_);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_data_->_tmp24_ = _data_->results;
		if (_data_->_tmp24_ != NULL) {
			_data_->_data28_ = g_slice_new0 (Block28Data);
			_data_->_data28_->_ref_count_ = 1;
			_data_->_data28_->self = g_object_ref (_data_->self);
			_data_->_data28_->i = 0;
			_data_->_tmp25_ = _data_->results;
			_data_->_tmp26_ = tuba_api_search_results_get_hashtags (_data_->_tmp25_);
			_data_->_tmp27_ = _data_->_tmp26_;
			gee_abstract_collection_foreach ((GeeAbstractCollection*) _data_->_tmp27_, _____lambda138__gee_forall_func, _data_->_data28_);
			_data_->_tmp28_ = _data_->self->priv->sw;
			gtk_widget_set_visible ((GtkWidget*) _data_->_tmp28_, _data_->_data28_->i > 0);
			block28_data_unref (_data_->_data28_);
			_data_->_data28_ = NULL;
		}
		_g_object_unref0 (_data_->results);
		_g_object_unref0 (_data_->parser);
		_g_object_unref0 (_data_->in_stream);
		_g_object_unref0 (_data_->_tmp6_);
	}
	goto __finally0;
	__catch0_g_io_error_cancelled:
	{
		g_clear_error (&_data_->_inner_error0_);
		g_debug ("HashtagList.vala:243: Message is cancelled.");
	}
	goto __finally0;
	__catch0_g_error:
	{
		_data_->e = _data_->_inner_error0_;
		_data_->_inner_error0_ = NULL;
		_data_->_tmp29_ = _data_->e;
		_data_->_tmp30_ = _data_->_tmp29_->message;
		g_signal_emit (_data_->self, tuba_dialogs_hashtag_list_hashtag_search_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_ERRORED_SIGNAL], 0, _data_->_tmp30_);
		_data_->_tmp31_ = string_to_string (_data_->query);
		_data_->_tmp32_ = _data_->e;
		_data_->_tmp33_ = g_strdup_printf ("%i", _data_->_tmp32_->code);
		_data_->_tmp34_ = _data_->_tmp33_;
		_data_->_tmp35_ = _data_->e;
		_data_->_tmp36_ = _data_->_tmp35_->message;
		_data_->_tmp37_ = string_to_string (_data_->_tmp36_);
		_data_->_tmp38_ = g_strconcat ("Couldn't search tag ", _data_->_tmp31_, ": ", _data_->_tmp34_, " ", _data_->_tmp37_, NULL);
		_data_->_tmp39_ = _data_->_tmp38_;
		g_warning ("HashtagList.vala:246: %s", _data_->_tmp39_);
		_g_free0 (_data_->_tmp39_);
		_g_free0 (_data_->_tmp34_);
		_g_error_free0 (_data_->e);
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		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_->self->priv->last_req);
	_data_->self->priv->last_req = NULL;
	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;
}

void
tuba_dialogs_hashtag_list_hashtag_search_on_tag_chosen (TubaDialogsHashtagListHashtagSearch* self,
                                                        AdwActionRow* tag)
{
	TubaWidgetsTag* tag_row = NULL;
	TubaWidgetsTag* _tmp0_;
	gchar* _tmp1_ = NULL;
	TubaWidgetsTag* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (tag != NULL);
	tuba_dialogs_hashtag_list_hashtag_search_on_close (self);
	_tmp0_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (tag, TUBA_WIDGETS_TYPE_TAG, TubaWidgetsTag));
	tag_row = _tmp0_;
	_tmp2_ = tag_row;
	_tmp3_ = tuba_widgets_tag_get_name (_tmp2_);
	_tmp4_ = _tmp3_;
	if (g_str_has_prefix (_tmp4_, "#")) {
		TubaWidgetsTag* _tmp5_;
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		gchar* _tmp8_;
		_tmp5_ = tag_row;
		_tmp6_ = tuba_widgets_tag_get_name (_tmp5_);
		_tmp7_ = _tmp6_;
		_tmp8_ = g_strdup (_tmp7_);
		_g_free0 (_tmp1_);
		_tmp1_ = _tmp8_;
	} else {
		TubaWidgetsTag* _tmp9_;
		const gchar* _tmp10_;
		const gchar* _tmp11_;
		const gchar* _tmp12_;
		gchar* _tmp13_;
		_tmp9_ = tag_row;
		_tmp10_ = tuba_widgets_tag_get_name (_tmp9_);
		_tmp11_ = _tmp10_;
		_tmp12_ = string_to_string (_tmp11_);
		_tmp13_ = g_strconcat ("#", _tmp12_, NULL);
		_g_free0 (_tmp1_);
		_tmp1_ = _tmp13_;
	}
	g_signal_emit (self, tuba_dialogs_hashtag_list_hashtag_search_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_TAG_PICKED_SIGNAL], 0, _tmp1_);
	_g_free0 (_tmp1_);
	_g_object_unref0 (tag_row);
}

static void
tuba_dialogs_hashtag_list_hashtag_search_real_show (GtkWidget* base)
{
	TubaDialogsHashtagListHashtagSearch * self;
	GtkSearchEntry* _tmp0_;
	self = (TubaDialogsHashtagListHashtagSearch*) base;
	GTK_WIDGET_CLASS (tuba_dialogs_hashtag_list_hashtag_search_parent_class)->show ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_popover_get_type (), GtkPopover));
	_tmp0_ = self->priv->entry;
	gtk_widget_grab_focus ((GtkWidget*) _tmp0_);
}

TubaDialogsHashtagListHashtagSearch*
tuba_dialogs_hashtag_list_hashtag_search_construct (GType object_type)
{
	TubaDialogsHashtagListHashtagSearch * self = NULL;
	self = (TubaDialogsHashtagListHashtagSearch*) g_object_new (object_type, NULL);
	return self;
}

TubaDialogsHashtagListHashtagSearch*
tuba_dialogs_hashtag_list_hashtag_search_new (void)
{
	return tuba_dialogs_hashtag_list_hashtag_search_construct (TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH);
}

static void
_tuba_dialogs_hashtag_list_hashtag_search_search_gtk_search_entry_activate (GtkSearchEntry* _sender,
                                                                            gpointer self)
{
	tuba_dialogs_hashtag_list_hashtag_search_search ((TubaDialogsHashtagListHashtagSearch*) self);
}

static void
_tuba_dialogs_hashtag_list_hashtag_search_search_gtk_search_entry_search_changed (GtkSearchEntry* _sender,
                                                                                  gpointer self)
{
	tuba_dialogs_hashtag_list_hashtag_search_search ((TubaDialogsHashtagListHashtagSearch*) self);
}

static void
_tuba_dialogs_hashtag_list_hashtag_search_on_close_gtk_search_entry_stop_search (GtkSearchEntry* _sender,
                                                                                 gpointer self)
{
	tuba_dialogs_hashtag_list_hashtag_search_on_close ((TubaDialogsHashtagListHashtagSearch*) self);
}

static GObject *
tuba_dialogs_hashtag_list_hashtag_search_constructor (GType type,
                                                      guint n_construct_properties,
                                                      GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	TubaDialogsHashtagListHashtagSearch * self;
	GtkListBox* _tmp0_ = NULL;
	GtkListBox* _tmp1_;
	GtkWidget* _tmp2_;
	GtkScrolledWindow* _tmp3_ = NULL;
	GtkBox* content_box = NULL;
	GtkBox* _tmp4_;
	GtkBox* _tmp5_;
	GtkScrolledWindow* _tmp6_;
	GtkBox* _tmp7_;
	gchar* _tmp8_;
	GtkSearchEntry* _tmp9_ = NULL;
	AdwBin* entry_bin = NULL;
	gchar* _tmp10_;
	gchar** _tmp11_;
	GtkSearchEntry* _tmp12_;
	GtkWidget* _tmp13_;
	AdwBin* _tmp14_ = NULL;
	GtkBox* _tmp15_;
	AdwBin* _tmp16_;
	GtkSearchEntry* _tmp17_;
	GtkSearchEntry* _tmp18_;
	GtkSearchEntry* _tmp19_;
	parent_class = G_OBJECT_CLASS (tuba_dialogs_hashtag_list_hashtag_search_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH, TubaDialogsHashtagListHashtagSearch);
	gtk_widget_add_css_class ((GtkWidget*) self, "emoji-picker");
	_tmp0_ = (GtkListBox*) gtk_list_box_new ();
	gtk_widget_set_margin_end ((GtkWidget*) _tmp0_, 6);
	gtk_widget_set_margin_bottom ((GtkWidget*) _tmp0_, 6);
	gtk_widget_set_margin_start ((GtkWidget*) _tmp0_, 6);
	gtk_list_box_set_selection_mode (_tmp0_, GTK_SELECTION_NONE);
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->result_box);
	self->priv->result_box = _tmp0_;
	_tmp1_ = self->priv->result_box;
	_tmp2_ = _g_object_ref0 ((GtkWidget*) _tmp1_);
	_tmp3_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
	gtk_scrolled_window_set_max_content_width (_tmp3_, 360);
	gtk_scrolled_window_set_propagate_natural_height (_tmp3_, TRUE);
	gtk_scrolled_window_set_child (_tmp3_, _tmp2_);
	_g_object_unref0 (_tmp2_);
	gtk_widget_set_visible ((GtkWidget*) _tmp3_, FALSE);
	g_object_ref_sink (_tmp3_);
	_g_object_unref0 (self->priv->sw);
	self->priv->sw = _tmp3_;
	_tmp4_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp4_);
	content_box = _tmp4_;
	_tmp5_ = content_box;
	_tmp6_ = self->priv->sw;
	gtk_box_append (_tmp5_, (GtkWidget*) _tmp6_);
	_tmp7_ = content_box;
	gtk_popover_set_child ((GtkPopover*) self, (GtkWidget*) _tmp7_);
	_tmp8_ = g_strdup ("#GNOME");
	_tmp9_ = (GtkSearchEntry*) gtk_search_entry_new ();
	gtk_widget_set_hexpand ((GtkWidget*) _tmp9_, TRUE);
	g_object_set (_tmp9_, "placeholder-text", _tmp8_, NULL);
	_g_free0 (_tmp8_);
	gtk_search_entry_set_search_delay (_tmp9_, (guint) 300);
	g_object_ref_sink (_tmp9_);
	_g_object_unref0 (self->priv->entry);
	self->priv->entry = _tmp9_;
	_tmp10_ = g_strdup ("emoji-searchbar");
	_tmp11_ = g_new0 (gchar*, 1 + 1);
	_tmp11_[0] = _tmp10_;
	_tmp12_ = self->priv->entry;
	_tmp13_ = _g_object_ref0 ((GtkWidget*) _tmp12_);
	_tmp14_ = (AdwBin*) adw_bin_new ();
	gtk_widget_set_css_classes ((GtkWidget*) _tmp14_, _tmp11_);
	_tmp11_ = (_vala_array_free (_tmp11_, 1, (GDestroyNotify) g_free), NULL);
	adw_bin_set_child (_tmp14_, _tmp13_);
	_g_object_unref0 (_tmp13_);
	g_object_ref_sink (_tmp14_);
	entry_bin = _tmp14_;
	_tmp15_ = content_box;
	_tmp16_ = entry_bin;
	gtk_box_prepend (_tmp15_, (GtkWidget*) _tmp16_);
	_tmp17_ = self->priv->entry;
	g_signal_connect_object (_tmp17_, "activate", (GCallback) _tuba_dialogs_hashtag_list_hashtag_search_search_gtk_search_entry_activate, self, 0);
	_tmp18_ = self->priv->entry;
	g_signal_connect_object (_tmp18_, "search-changed", (GCallback) _tuba_dialogs_hashtag_list_hashtag_search_search_gtk_search_entry_search_changed, self, 0);
	_tmp19_ = self->priv->entry;
	g_signal_connect_object (_tmp19_, "stop-search", (GCallback) _tuba_dialogs_hashtag_list_hashtag_search_on_close_gtk_search_entry_stop_search, self, 0);
	_g_object_unref0 (entry_bin);
	_g_object_unref0 (content_box);
	return obj;
}

static void
tuba_dialogs_hashtag_list_hashtag_search_class_init (TubaDialogsHashtagListHashtagSearchClass * klass,
                                                     gpointer klass_data)
{
	tuba_dialogs_hashtag_list_hashtag_search_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaDialogsHashtagListHashtagSearch_private_offset);
	((GtkWidgetClass *) klass)->show = (void (*) (GtkWidget*)) tuba_dialogs_hashtag_list_hashtag_search_real_show;
	G_OBJECT_CLASS (klass)->constructor = tuba_dialogs_hashtag_list_hashtag_search_constructor;
	G_OBJECT_CLASS (klass)->finalize = tuba_dialogs_hashtag_list_hashtag_search_finalize;
	tuba_dialogs_hashtag_list_hashtag_search_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_TAG_PICKED_SIGNAL] = g_signal_new ("tag-picked", TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	tuba_dialogs_hashtag_list_hashtag_search_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_SEARCH_ERRORED_SIGNAL] = g_signal_new ("errored", TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
}

static void
tuba_dialogs_hashtag_list_hashtag_search_instance_init (TubaDialogsHashtagListHashtagSearch * self,
                                                        gpointer klass)
{
	self->priv = tuba_dialogs_hashtag_list_hashtag_search_get_instance_private (self);
	self->priv->last_req = NULL;
}

static void
tuba_dialogs_hashtag_list_hashtag_search_finalize (GObject * obj)
{
	TubaDialogsHashtagListHashtagSearch * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_SEARCH, TubaDialogsHashtagListHashtagSearch);
	_g_object_unref0 (self->priv->entry);
	_g_object_unref0 (self->priv->result_box);
	_g_object_unref0 (self->priv->sw);
	_g_object_unref0 (self->priv->last_req);
	G_OBJECT_CLASS (tuba_dialogs_hashtag_list_hashtag_search_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_dialogs_hashtag_list_hashtag_search_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaDialogsHashtagListHashtagSearchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_dialogs_hashtag_list_hashtag_search_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaDialogsHashtagListHashtagSearch), 0, (GInstanceInitFunc) tuba_dialogs_hashtag_list_hashtag_search_instance_init, NULL };
	GType tuba_dialogs_hashtag_list_hashtag_search_type_id;
	tuba_dialogs_hashtag_list_hashtag_search_type_id = g_type_register_static (gtk_popover_get_type (), "TubaDialogsHashtagListHashtagSearch", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaDialogsHashtagListHashtagSearch_private_offset = g_type_add_instance_private (tuba_dialogs_hashtag_list_hashtag_search_type_id, sizeof (TubaDialogsHashtagListHashtagSearchPrivate));
	return tuba_dialogs_hashtag_list_hashtag_search_type_id;
}

GType
tuba_dialogs_hashtag_list_hashtag_search_get_type (void)
{
	static GType tuba_dialogs_hashtag_list_hashtag_search_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_dialogs_hashtag_list_hashtag_search_type_id__once)) {
		GType tuba_dialogs_hashtag_list_hashtag_search_type_id;
		tuba_dialogs_hashtag_list_hashtag_search_type_id = tuba_dialogs_hashtag_list_hashtag_search_get_type_once ();
		g_once_init_leave_pointer (&tuba_dialogs_hashtag_list_hashtag_search_type_id__once, tuba_dialogs_hashtag_list_hashtag_search_type_id);
	}
	return tuba_dialogs_hashtag_list_hashtag_search_type_id__once;
}

static inline gpointer
tuba_dialogs_hashtag_list_hashtag_group_get_instance_private (TubaDialogsHashtagListHashtagGroup* self)
{
	return G_STRUCT_MEMBER_P (self, TubaDialogsHashtagListHashtagGroup_private_offset);
}

static void
_tuba_dialogs_hashtag_list_hashtag_group_add_row_tuba_dialogs_hashtag_list_hashtag_search_tag_picked (TubaDialogsHashtagListHashtagSearch* _sender,
                                                                                                      const gchar* tag,
                                                                                                      gpointer self)
{
	tuba_dialogs_hashtag_list_hashtag_group_add_row ((TubaDialogsHashtagListHashtagGroup*) self, tag);
}

static void
_tuba_dialogs_hashtag_list_hashtag_group_on_error_tuba_dialogs_hashtag_list_hashtag_search_errored (TubaDialogsHashtagListHashtagSearch* _sender,
                                                                                                    const gchar* error_msg,
                                                                                                    gpointer self)
{
	tuba_dialogs_hashtag_list_hashtag_group_on_error ((TubaDialogsHashtagListHashtagGroup*) self, error_msg);
}

static TubaDialogsHashtagListHashtagGroup*
tuba_dialogs_hashtag_list_hashtag_group_construct (GType object_type,
                                                   const gchar* title,
                                                   const gchar* description)
{
	TubaDialogsHashtagListHashtagGroup * self = NULL;
	TubaDialogsHashtagListHashtagSearch* popover = NULL;
	TubaDialogsHashtagListHashtagSearch* _tmp0_;
	gchar* _tmp1_;
	GtkPopover* _tmp2_;
	gchar* _tmp3_;
	gchar** _tmp4_;
	gchar* _tmp5_;
	GtkMenuButton* _tmp6_ = NULL;
	GtkMenuButton* _tmp7_;
	g_return_val_if_fail (title != NULL, NULL);
	g_return_val_if_fail (description != NULL, NULL);
	self = (TubaDialogsHashtagListHashtagGroup*) g_object_new (object_type, NULL);
	adw_preferences_group_set_title ((AdwPreferencesGroup*) self, title);
	adw_preferences_group_set_description ((AdwPreferencesGroup*) self, description);
	_tmp0_ = tuba_dialogs_hashtag_list_hashtag_search_new ();
	g_object_ref_sink (_tmp0_);
	popover = _tmp0_;
	_tmp1_ = g_strdup ("tuba-plus-large-symbolic");
	_tmp2_ = _g_object_ref0 ((GtkPopover*) popover);
	_tmp3_ = g_strdup ("flat");
	_tmp4_ = g_new0 (gchar*, 1 + 1);
	_tmp4_[0] = _tmp3_;
	_tmp5_ = g_strdup (_ ("Add Hashtag"));
	_tmp6_ = (GtkMenuButton*) gtk_menu_button_new ();
	gtk_menu_button_set_icon_name (_tmp6_, _tmp1_);
	_g_free0 (_tmp1_);
	gtk_menu_button_set_popover (_tmp6_, _tmp2_);
	_g_object_unref0 (_tmp2_);
	gtk_widget_set_valign ((GtkWidget*) _tmp6_, GTK_ALIGN_CENTER);
	gtk_widget_set_css_classes ((GtkWidget*) _tmp6_, _tmp4_);
	_tmp4_ = (_vala_array_free (_tmp4_, 1, (GDestroyNotify) g_free), NULL);
	gtk_widget_set_tooltip_text ((GtkWidget*) _tmp6_, _tmp5_);
	_g_free0 (_tmp5_);
	g_object_ref_sink (_tmp6_);
	_g_object_unref0 (self->priv->menu_button);
	self->priv->menu_button = _tmp6_;
	g_signal_connect_object (popover, "tag-picked", (GCallback) _tuba_dialogs_hashtag_list_hashtag_group_add_row_tuba_dialogs_hashtag_list_hashtag_search_tag_picked, self, 0);
	g_signal_connect_object (popover, "errored", (GCallback) _tuba_dialogs_hashtag_list_hashtag_group_on_error_tuba_dialogs_hashtag_list_hashtag_search_errored, self, 0);
	_tmp7_ = self->priv->menu_button;
	adw_preferences_group_set_header_suffix ((AdwPreferencesGroup*) self, (GtkWidget*) _tmp7_);
	_g_object_unref0 (popover);
	return self;
}

static TubaDialogsHashtagListHashtagGroup*
tuba_dialogs_hashtag_list_hashtag_group_new (const gchar* title,
                                             const gchar* description)
{
	return tuba_dialogs_hashtag_list_hashtag_group_construct (TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP, title, description);
}

static void
tuba_dialogs_hashtag_list_hashtag_group_on_error (TubaDialogsHashtagListHashtagGroup* self,
                                                  const gchar* _error_)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (_error_ != NULL);
	g_signal_emit (self, tuba_dialogs_hashtag_list_hashtag_group_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_ERRORED_SIGNAL], 0, _error_);
}

static void
_tuba_dialogs_hashtag_list_hashtag_group_on_delete_tuba_dialogs_hashtag_list_hashtag_group_tag_row_deleted (TubaDialogsHashtagListHashtagGroupTagRow* _sender,
                                                                                                            gpointer self)
{
	tuba_dialogs_hashtag_list_hashtag_group_on_delete ((TubaDialogsHashtagListHashtagGroup*) self, _sender);
}

static void
tuba_dialogs_hashtag_list_hashtag_group_add_row (TubaDialogsHashtagListHashtagGroup* self,
                                                 const gchar* tag)
{
	TubaDialogsHashtagListHashtagGroupTagRow* row = NULL;
	TubaDialogsHashtagListHashtagGroupTagRow* _tmp0_;
	GeeArrayList* _tmp1_;
	TubaDialogsHashtagListHashtagGroupTagRow* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	TubaDialogsHashtagListHashtagGroupTagRow* _tmp5_;
	TubaDialogsHashtagListHashtagGroupTagRow* _tmp6_;
	GeeArrayList* _tmp7_;
	TubaDialogsHashtagListHashtagGroupTagRow* _tmp8_;
	const gchar* _tmp9_;
	const gchar* _tmp10_;
	GtkMenuButton* _tmp11_;
	GeeArrayList* _tmp12_;
	gint _tmp13_;
	gint _tmp14_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (tag != NULL);
	_tmp0_ = tuba_dialogs_hashtag_list_hashtag_group_tag_row_new (tag);
	g_object_ref_sink (_tmp0_);
	row = _tmp0_;
	_tmp1_ = self->priv->_tags;
	_tmp2_ = row;
	_tmp3_ = tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_tag (_tmp2_);
	_tmp4_ = _tmp3_;
	if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp1_, _tmp4_)) {
		_g_object_unref0 (row);
		return;
	}
	_tmp5_ = row;
	g_signal_connect_object (_tmp5_, "deleted", (GCallback) _tuba_dialogs_hashtag_list_hashtag_group_on_delete_tuba_dialogs_hashtag_list_hashtag_group_tag_row_deleted, self, 0);
	_tmp6_ = row;
	adw_preferences_group_add ((AdwPreferencesGroup*) self, (GtkWidget*) _tmp6_);
	_tmp7_ = self->priv->_tags;
	_tmp8_ = row;
	_tmp9_ = tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_tag (_tmp8_);
	_tmp10_ = _tmp9_;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, _tmp10_);
	_tmp11_ = self->priv->menu_button;
	_tmp12_ = self->priv->_tags;
	_tmp13_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp12_);
	_tmp14_ = _tmp13_;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp11_, _tmp14_ < TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_MAX_TAGS);
	_g_object_unref0 (row);
}

static void
tuba_dialogs_hashtag_list_hashtag_group_on_delete (TubaDialogsHashtagListHashtagGroup* self,
                                                   TubaDialogsHashtagListHashtagGroupTagRow* row)
{
	GeeArrayList* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	GtkMenuButton* _tmp3_;
	GeeArrayList* _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (row != NULL);
	adw_preferences_group_remove ((AdwPreferencesGroup*) self, (GtkWidget*) row);
	_tmp0_ = self->priv->_tags;
	_tmp1_ = tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_tag (row);
	_tmp2_ = _tmp1_;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _tmp2_);
	_tmp3_ = self->priv->menu_button;
	_tmp4_ = self->priv->_tags;
	_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
	_tmp6_ = _tmp5_;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp3_, _tmp6_ < TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_MAX_TAGS);
}

static void
tuba_dialogs_hashtag_list_hashtag_group_fill_from_array (TubaDialogsHashtagListHashtagGroup* self,
                                                         gchar** tags,
                                                         gint tags_length1)
{
	g_return_if_fail (self != NULL);
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp0_ = FALSE;
			_tmp0_ = TRUE;
			while (TRUE) {
				const gchar* _tmp2_;
				if (!_tmp0_) {
					gint _tmp1_;
					_tmp1_ = i;
					i = _tmp1_ + 1;
				}
				_tmp0_ = FALSE;
				if (!(i < MIN (tags_length1, TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_MAX_TAGS))) {
					break;
				}
				_tmp2_ = tags[i];
				tuba_dialogs_hashtag_list_hashtag_group_add_row (self, _tmp2_);
			}
		}
	}
}

static gchar**
tuba_dialogs_hashtag_list_hashtag_group_get_tags (TubaDialogsHashtagListHashtagGroup* self,
                                                  gint* result_length1)
{
	gchar** result;
	GeeArrayList* _tmp0_;
	gint _tmp1_ = 0;
	gpointer* _tmp2_;
	gchar** _tmp3_;
	gint _tmp3__length1;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_tags;
	_tmp2_ = gee_collection_to_array ((GeeCollection*) _tmp0_, &_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp3__length1 = _tmp1_;
	if (result_length1) {
		*result_length1 = _tmp3__length1;
	}
	result = _tmp3_;
	return result;
}

static gboolean
tuba_dialogs_hashtag_list_hashtag_group_get_empty (TubaDialogsHashtagListHashtagGroup* self)
{
	gboolean result;
	GeeArrayList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->_tags;
	_tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_ == 0;
	return result;
}

static inline gpointer
tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_instance_private (TubaDialogsHashtagListHashtagGroupTagRow* self)
{
	return G_STRUCT_MEMBER_P (self, TubaDialogsHashtagListHashtagGroupTagRow_private_offset);
}

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 void
_tuba_dialogs_hashtag_list_hashtag_group_tag_row_on_delete_gtk_button_clicked (GtkButton* _sender,
                                                                               gpointer self)
{
	tuba_dialogs_hashtag_list_hashtag_group_tag_row_on_delete ((TubaDialogsHashtagListHashtagGroupTagRow*) self);
}

static TubaDialogsHashtagListHashtagGroupTagRow*
tuba_dialogs_hashtag_list_hashtag_group_tag_row_construct (GType object_type,
                                                           const gchar* tag)
{
	TubaDialogsHashtagListHashtagGroupTagRow * self = NULL;
	gchar* _tmp0_ = NULL;
	GtkImage* _tmp5_;
	GtkImage* _tmp6_;
	GtkButton* delete_btn = NULL;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar** _tmp10_;
	gchar* _tmp11_;
	GtkButton* _tmp12_ = NULL;
	g_return_val_if_fail (tag != NULL, NULL);
	self = (TubaDialogsHashtagListHashtagGroupTagRow*) g_object_new (object_type, NULL);
	if (g_str_has_prefix (tag, "#")) {
		gint _tmp1_;
		gint _tmp2_;
		gchar* _tmp3_;
		_tmp1_ = strlen (tag);
		_tmp2_ = _tmp1_;
		_tmp3_ = string_slice (tag, (glong) 1, (glong) _tmp2_);
		_g_free0 (_tmp0_);
		_tmp0_ = _tmp3_;
	} else {
		gchar* _tmp4_;
		_tmp4_ = g_strdup (tag);
		_g_free0 (_tmp0_);
		_tmp0_ = _tmp4_;
	}
	adw_preferences_row_set_title ((AdwPreferencesRow*) self, _tmp0_);
	tuba_dialogs_hashtag_list_hashtag_group_tag_row_set_tag (self, _tmp0_);
	gtk_list_box_row_set_activatable ((GtkListBoxRow*) self, FALSE);
	_tmp5_ = (GtkImage*) gtk_image_new_from_icon_name ("tuba-hashtag-symbolic");
	g_object_ref_sink (_tmp5_);
	_tmp6_ = _tmp5_;
	adw_action_row_add_prefix ((AdwActionRow*) self, (GtkWidget*) _tmp6_);
	_g_object_unref0 (_tmp6_);
	_tmp7_ = g_strdup ("circular");
	_tmp8_ = g_strdup ("flat");
	_tmp9_ = g_strdup ("error");
	_tmp10_ = g_new0 (gchar*, 3 + 1);
	_tmp10_[0] = _tmp7_;
	_tmp10_[1] = _tmp8_;
	_tmp10_[2] = _tmp9_;
	_tmp11_ = g_strdup (_ ("Remove"));
	_tmp12_ = (GtkButton*) gtk_button_new_from_icon_name ("user-trash-symbolic");
	gtk_widget_set_css_classes ((GtkWidget*) _tmp12_, _tmp10_);
	_tmp10_ = (_vala_array_free (_tmp10_, 3, (GDestroyNotify) g_free), NULL);
	gtk_widget_set_tooltip_text ((GtkWidget*) _tmp12_, _tmp11_);
	_g_free0 (_tmp11_);
	gtk_widget_set_valign ((GtkWidget*) _tmp12_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp12_);
	delete_btn = _tmp12_;
	g_signal_connect_object (delete_btn, "clicked", (GCallback) _tuba_dialogs_hashtag_list_hashtag_group_tag_row_on_delete_gtk_button_clicked, self, 0);
	adw_action_row_add_suffix ((AdwActionRow*) self, (GtkWidget*) delete_btn);
	_g_object_unref0 (delete_btn);
	_g_free0 (_tmp0_);
	return self;
}

static TubaDialogsHashtagListHashtagGroupTagRow*
tuba_dialogs_hashtag_list_hashtag_group_tag_row_new (const gchar* tag)
{
	return tuba_dialogs_hashtag_list_hashtag_group_tag_row_construct (TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW, tag);
}

static void
tuba_dialogs_hashtag_list_hashtag_group_tag_row_on_delete (TubaDialogsHashtagListHashtagGroupTagRow* self)
{
	g_return_if_fail (self != NULL);
	g_signal_emit (self, tuba_dialogs_hashtag_list_hashtag_group_tag_row_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_DELETED_SIGNAL], 0);
}

static const gchar*
tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_tag (TubaDialogsHashtagListHashtagGroupTagRow* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_tag;
	result = _tmp0_;
	return result;
}

static void
tuba_dialogs_hashtag_list_hashtag_group_tag_row_set_tag (TubaDialogsHashtagListHashtagGroupTagRow* self,
                                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_tag (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_tag);
		self->priv->_tag = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_dialogs_hashtag_list_hashtag_group_tag_row_properties[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_TAG_PROPERTY]);
	}
}

static void
tuba_dialogs_hashtag_list_hashtag_group_tag_row_class_init (TubaDialogsHashtagListHashtagGroupTagRowClass * klass,
                                                            gpointer klass_data)
{
	tuba_dialogs_hashtag_list_hashtag_group_tag_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaDialogsHashtagListHashtagGroupTagRow_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_dialogs_hashtag_list_hashtag_group_tag_row_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_dialogs_hashtag_list_hashtag_group_tag_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_TAG_PROPERTY, tuba_dialogs_hashtag_list_hashtag_group_tag_row_properties[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_TAG_PROPERTY] = g_param_spec_string ("tag", "tag", "tag", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	tuba_dialogs_hashtag_list_hashtag_group_tag_row_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_DELETED_SIGNAL] = g_signal_new ("deleted", TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
tuba_dialogs_hashtag_list_hashtag_group_tag_row_instance_init (TubaDialogsHashtagListHashtagGroupTagRow * self,
                                                               gpointer klass)
{
	self->priv = tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_instance_private (self);
}

static void
tuba_dialogs_hashtag_list_hashtag_group_tag_row_finalize (GObject * obj)
{
	TubaDialogsHashtagListHashtagGroupTagRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW, TubaDialogsHashtagListHashtagGroupTagRow);
	_g_free0 (self->priv->_tag);
	G_OBJECT_CLASS (tuba_dialogs_hashtag_list_hashtag_group_tag_row_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaDialogsHashtagListHashtagGroupTagRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_dialogs_hashtag_list_hashtag_group_tag_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaDialogsHashtagListHashtagGroupTagRow), 0, (GInstanceInitFunc) tuba_dialogs_hashtag_list_hashtag_group_tag_row_instance_init, NULL };
	GType tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id;
	tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id = g_type_register_static (adw_action_row_get_type (), "TubaDialogsHashtagListHashtagGroupTagRow", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaDialogsHashtagListHashtagGroupTagRow_private_offset = g_type_add_instance_private (tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id, sizeof (TubaDialogsHashtagListHashtagGroupTagRowPrivate));
	return tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id;
}

static GType
tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_type (void)
{
	static GType tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id__once)) {
		GType tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id;
		tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id = tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_type_once ();
		g_once_init_leave_pointer (&tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id__once, tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id);
	}
	return tuba_dialogs_hashtag_list_hashtag_group_tag_row_type_id__once;
}

static void
_vala_tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_property (GObject * object,
                                                                    guint property_id,
                                                                    GValue * value,
                                                                    GParamSpec * pspec)
{
	TubaDialogsHashtagListHashtagGroupTagRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW, TubaDialogsHashtagListHashtagGroupTagRow);
	switch (property_id) {
		case TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_TAG_PROPERTY:
		g_value_set_string (value, tuba_dialogs_hashtag_list_hashtag_group_tag_row_get_tag (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_dialogs_hashtag_list_hashtag_group_tag_row_set_property (GObject * object,
                                                                    guint property_id,
                                                                    const GValue * value,
                                                                    GParamSpec * pspec)
{
	TubaDialogsHashtagListHashtagGroupTagRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TYPE_TAG_ROW, TubaDialogsHashtagListHashtagGroupTagRow);
	switch (property_id) {
		case TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAG_ROW_TAG_PROPERTY:
		tuba_dialogs_hashtag_list_hashtag_group_tag_row_set_tag (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
tuba_dialogs_hashtag_list_hashtag_group_class_init (TubaDialogsHashtagListHashtagGroupClass * klass,
                                                    gpointer klass_data)
{
	tuba_dialogs_hashtag_list_hashtag_group_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaDialogsHashtagListHashtagGroup_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_dialogs_hashtag_list_hashtag_group_get_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_dialogs_hashtag_list_hashtag_group_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAGS_PROPERTY, tuba_dialogs_hashtag_list_hashtag_group_properties[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAGS_PROPERTY] = g_param_spec_boxed ("tags", "tags", "tags", G_TYPE_STRV, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_EMPTY_PROPERTY, tuba_dialogs_hashtag_list_hashtag_group_properties[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_EMPTY_PROPERTY] = g_param_spec_boolean ("empty", "empty", "empty", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	tuba_dialogs_hashtag_list_hashtag_group_signals[TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_ERRORED_SIGNAL] = g_signal_new ("errored", TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
}

static void
tuba_dialogs_hashtag_list_hashtag_group_instance_init (TubaDialogsHashtagListHashtagGroup * self,
                                                       gpointer klass)
{
	GeeArrayList* _tmp0_;
	self->priv = tuba_dialogs_hashtag_list_hashtag_group_get_instance_private (self);
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
	self->priv->_tags = _tmp0_;
}

static void
tuba_dialogs_hashtag_list_hashtag_group_finalize (GObject * obj)
{
	TubaDialogsHashtagListHashtagGroup * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP, TubaDialogsHashtagListHashtagGroup);
	_g_object_unref0 (self->priv->menu_button);
	_g_object_unref0 (self->priv->_tags);
	G_OBJECT_CLASS (tuba_dialogs_hashtag_list_hashtag_group_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_dialogs_hashtag_list_hashtag_group_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaDialogsHashtagListHashtagGroupClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_dialogs_hashtag_list_hashtag_group_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaDialogsHashtagListHashtagGroup), 0, (GInstanceInitFunc) tuba_dialogs_hashtag_list_hashtag_group_instance_init, NULL };
	GType tuba_dialogs_hashtag_list_hashtag_group_type_id;
	tuba_dialogs_hashtag_list_hashtag_group_type_id = g_type_register_static (adw_preferences_group_get_type (), "TubaDialogsHashtagListHashtagGroup", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaDialogsHashtagListHashtagGroup_private_offset = g_type_add_instance_private (tuba_dialogs_hashtag_list_hashtag_group_type_id, sizeof (TubaDialogsHashtagListHashtagGroupPrivate));
	return tuba_dialogs_hashtag_list_hashtag_group_type_id;
}

static GType
tuba_dialogs_hashtag_list_hashtag_group_get_type (void)
{
	static GType tuba_dialogs_hashtag_list_hashtag_group_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_dialogs_hashtag_list_hashtag_group_type_id__once)) {
		GType tuba_dialogs_hashtag_list_hashtag_group_type_id;
		tuba_dialogs_hashtag_list_hashtag_group_type_id = tuba_dialogs_hashtag_list_hashtag_group_get_type_once ();
		g_once_init_leave_pointer (&tuba_dialogs_hashtag_list_hashtag_group_type_id__once, tuba_dialogs_hashtag_list_hashtag_group_type_id);
	}
	return tuba_dialogs_hashtag_list_hashtag_group_type_id__once;
}

static void
_vala_tuba_dialogs_hashtag_list_hashtag_group_get_property (GObject * object,
                                                            guint property_id,
                                                            GValue * value,
                                                            GParamSpec * pspec)
{
	TubaDialogsHashtagListHashtagGroup * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_DIALOGS_HASHTAG_LIST_TYPE_HASHTAG_GROUP, TubaDialogsHashtagListHashtagGroup);
	switch (property_id) {
		case TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_TAGS_PROPERTY:
		{
			int length;
			g_value_take_boxed (value, tuba_dialogs_hashtag_list_hashtag_group_get_tags (self, &length));
		}
		break;
		case TUBA_DIALOGS_HASHTAG_LIST_HASHTAG_GROUP_EMPTY_PROPERTY:
		g_value_set_boolean (value, tuba_dialogs_hashtag_list_hashtag_group_get_empty (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
tuba_dialogs_hashtag_list_class_init (TubaDialogsHashtagListClass * klass,
                                      gpointer klass_data)
{
	tuba_dialogs_hashtag_list_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaDialogsHashtagList_private_offset);
	G_OBJECT_CLASS (klass)->finalize = tuba_dialogs_hashtag_list_finalize;
	tuba_dialogs_hashtag_list_signals[TUBA_DIALOGS_HASHTAG_LIST_CREATED_SIGNAL] = g_signal_new ("created", TUBA_DIALOGS_TYPE_HASHTAG_LIST, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
tuba_dialogs_hashtag_list_instance_init (TubaDialogsHashtagList * self,
                                         gpointer klass)
{
	self->priv = tuba_dialogs_hashtag_list_get_instance_private (self);
	self->priv->editing_uuid = NULL;
}

static void
tuba_dialogs_hashtag_list_finalize (GObject * obj)
{
	TubaDialogsHashtagList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_DIALOGS_TYPE_HASHTAG_LIST, TubaDialogsHashtagList);
	_g_object_unref0 (self->priv->name_row);
	_g_object_unref0 (self->priv->all);
	_g_object_unref0 (self->priv->any);
	_g_object_unref0 (self->priv->none);
	_g_free0 (self->priv->editing_uuid);
	G_OBJECT_CLASS (tuba_dialogs_hashtag_list_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_dialogs_hashtag_list_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaDialogsHashtagListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_dialogs_hashtag_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaDialogsHashtagList), 0, (GInstanceInitFunc) tuba_dialogs_hashtag_list_instance_init, NULL };
	GType tuba_dialogs_hashtag_list_type_id;
	tuba_dialogs_hashtag_list_type_id = g_type_register_static (adw_preferences_dialog_get_type (), "TubaDialogsHashtagList", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaDialogsHashtagList_private_offset = g_type_add_instance_private (tuba_dialogs_hashtag_list_type_id, sizeof (TubaDialogsHashtagListPrivate));
	return tuba_dialogs_hashtag_list_type_id;
}

GType
tuba_dialogs_hashtag_list_get_type (void)
{
	static GType tuba_dialogs_hashtag_list_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_dialogs_hashtag_list_type_id__once)) {
		GType tuba_dialogs_hashtag_list_type_id;
		tuba_dialogs_hashtag_list_type_id = tuba_dialogs_hashtag_list_get_type_once ();
		g_once_init_leave_pointer (&tuba_dialogs_hashtag_list_type_id__once, tuba_dialogs_hashtag_list_type_id);
	}
	return tuba_dialogs_hashtag_list_type_id__once;
}

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);
}

static gssize
_vala_array_length (gpointer array)
{
	gssize length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}

