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

/*
 * Copyright (C) 2011-2015 Daiki Ueno <ueno@gnu.org>
 * Copyright (C) 2011-2015 Red Hat, Inc.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <gee.h>

#define _g_variant_type_free0(var) ((var == NULL) ? NULL : (var = (g_variant_type_free (var), NULL)))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define _g_variant_builder_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_builder_unref (var), NULL)))

#define KKC_TYPE_DBUS_CANDIDATE_LIST (kkc_dbus_candidate_list_get_type ())
#define KKC_DBUS_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_DBUS_CANDIDATE_LIST, KkcDBusCandidateList))
#define KKC_DBUS_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_DBUS_CANDIDATE_LIST, KkcDBusCandidateListClass))
#define KKC_IS_DBUS_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_DBUS_CANDIDATE_LIST))
#define KKC_IS_DBUS_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_DBUS_CANDIDATE_LIST))
#define KKC_DBUS_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_DBUS_CANDIDATE_LIST, KkcDBusCandidateListClass))

typedef struct _KkcDBusCandidateList KkcDBusCandidateList;
typedef struct _KkcDBusCandidateListClass KkcDBusCandidateListClass;
typedef struct _KkcDBusCandidateListPrivate KkcDBusCandidateListPrivate;

#define KKC_TYPE_CANDIDATE_LIST (kkc_candidate_list_get_type ())
#define KKC_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_CANDIDATE_LIST, KkcCandidateList))
#define KKC_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_CANDIDATE_LIST, KkcCandidateListClass))
#define KKC_IS_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_CANDIDATE_LIST))
#define KKC_IS_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_CANDIDATE_LIST))
#define KKC_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_CANDIDATE_LIST, KkcCandidateListClass))

typedef struct _KkcCandidateList KkcCandidateList;
typedef struct _KkcCandidateListClass KkcCandidateListClass;
enum  {
	KKC_DBUS_CANDIDATE_LIST_0_PROPERTY,
	KKC_DBUS_CANDIDATE_LIST_CURSOR_POS_PROPERTY,
	KKC_DBUS_CANDIDATE_LIST_SIZE_PROPERTY,
	KKC_DBUS_CANDIDATE_LIST_PAGE_START_PROPERTY,
	KKC_DBUS_CANDIDATE_LIST_PAGE_SIZE_PROPERTY,
	KKC_DBUS_CANDIDATE_LIST_ROUND_PROPERTY,
	KKC_DBUS_CANDIDATE_LIST_PAGE_VISIBLE_PROPERTY,
	KKC_DBUS_CANDIDATE_LIST_NUM_PROPERTIES
};
static GParamSpec* kkc_dbus_candidate_list_properties[KKC_DBUS_CANDIDATE_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))
typedef struct _Block11Data Block11Data;

#define KKC_TYPE_CANDIDATE (kkc_candidate_get_type ())
#define KKC_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_CANDIDATE, KkcCandidate))
#define KKC_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_CANDIDATE, KkcCandidateClass))
#define KKC_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_CANDIDATE))
#define KKC_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_CANDIDATE))
#define KKC_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_CANDIDATE, KkcCandidateClass))

typedef struct _KkcCandidate KkcCandidate;
typedef struct _KkcCandidateClass KkcCandidateClass;
enum  {
	KKC_DBUS_CANDIDATE_LIST_POPULATED_SIGNAL,
	KKC_DBUS_CANDIDATE_LIST_SELECTED_SIGNAL,
	KKC_DBUS_CANDIDATE_LIST_NUM_SIGNALS
};
static guint kkc_dbus_candidate_list_signals[KKC_DBUS_CANDIDATE_LIST_NUM_SIGNALS] = {0};

#define KKC_TYPE_DBUS_SEGMENT_LIST (kkc_dbus_segment_list_get_type ())
#define KKC_DBUS_SEGMENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_DBUS_SEGMENT_LIST, KkcDBusSegmentList))
#define KKC_DBUS_SEGMENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_DBUS_SEGMENT_LIST, KkcDBusSegmentListClass))
#define KKC_IS_DBUS_SEGMENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_DBUS_SEGMENT_LIST))
#define KKC_IS_DBUS_SEGMENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_DBUS_SEGMENT_LIST))
#define KKC_DBUS_SEGMENT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_DBUS_SEGMENT_LIST, KkcDBusSegmentListClass))

typedef struct _KkcDBusSegmentList KkcDBusSegmentList;
typedef struct _KkcDBusSegmentListClass KkcDBusSegmentListClass;
typedef struct _KkcDBusSegmentListPrivate KkcDBusSegmentListPrivate;

#define KKC_TYPE_SEGMENT_LIST (kkc_segment_list_get_type ())
#define KKC_SEGMENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_SEGMENT_LIST, KkcSegmentList))
#define KKC_SEGMENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_SEGMENT_LIST, KkcSegmentListClass))
#define KKC_IS_SEGMENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_SEGMENT_LIST))
#define KKC_IS_SEGMENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_SEGMENT_LIST))
#define KKC_SEGMENT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_SEGMENT_LIST, KkcSegmentListClass))

typedef struct _KkcSegmentList KkcSegmentList;
typedef struct _KkcSegmentListClass KkcSegmentListClass;
enum  {
	KKC_DBUS_SEGMENT_LIST_0_PROPERTY,
	KKC_DBUS_SEGMENT_LIST_CURSOR_POS_PROPERTY,
	KKC_DBUS_SEGMENT_LIST_SIZE_PROPERTY,
	KKC_DBUS_SEGMENT_LIST_NUM_PROPERTIES
};
static GParamSpec* kkc_dbus_segment_list_properties[KKC_DBUS_SEGMENT_LIST_NUM_PROPERTIES];
typedef struct _Block12Data Block12Data;

#define KKC_TYPE_SEGMENT (kkc_segment_get_type ())
#define KKC_SEGMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_SEGMENT, KkcSegment))
#define KKC_SEGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_SEGMENT, KkcSegmentClass))
#define KKC_IS_SEGMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_SEGMENT))
#define KKC_IS_SEGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_SEGMENT))
#define KKC_SEGMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_SEGMENT, KkcSegmentClass))

typedef struct _KkcSegment KkcSegment;
typedef struct _KkcSegmentClass KkcSegmentClass;

#define KKC_TYPE_DBUS_CONTEXT (kkc_dbus_context_get_type ())
#define KKC_DBUS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_DBUS_CONTEXT, KkcDBusContext))
#define KKC_DBUS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_DBUS_CONTEXT, KkcDBusContextClass))
#define KKC_IS_DBUS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_DBUS_CONTEXT))
#define KKC_IS_DBUS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_DBUS_CONTEXT))
#define KKC_DBUS_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_DBUS_CONTEXT, KkcDBusContextClass))

typedef struct _KkcDBusContext KkcDBusContext;
typedef struct _KkcDBusContextClass KkcDBusContextClass;
typedef struct _KkcDBusContextPrivate KkcDBusContextPrivate;

#define KKC_TYPE_CONTEXT (kkc_context_get_type ())
#define KKC_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_CONTEXT, KkcContext))
#define KKC_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_CONTEXT, KkcContextClass))
#define KKC_IS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_CONTEXT))
#define KKC_IS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_CONTEXT))
#define KKC_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_CONTEXT, KkcContextClass))

typedef struct _KkcContext KkcContext;
typedef struct _KkcContextClass KkcContextClass;
enum  {
	KKC_DBUS_CONTEXT_0_PROPERTY,
	KKC_DBUS_CONTEXT_INPUT_PROPERTY,
	KKC_DBUS_CONTEXT_INPUT_CURSOR_POS_PROPERTY,
	KKC_DBUS_CONTEXT_INPUT_MODE_PROPERTY,
	KKC_DBUS_CONTEXT_PUNCTUATION_STYLE_PROPERTY,
	KKC_DBUS_CONTEXT_AUTO_CORRECT_PROPERTY,
	KKC_DBUS_CONTEXT_NUM_PROPERTIES
};
static GParamSpec* kkc_dbus_context_properties[KKC_DBUS_CONTEXT_NUM_PROPERTIES];
typedef struct _Block13Data Block13Data;

#define KKC_TYPE_KEY_EVENT (kkc_key_event_get_type ())
#define KKC_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_KEY_EVENT, KkcKeyEvent))
#define KKC_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_KEY_EVENT, KkcKeyEventClass))
#define KKC_IS_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_KEY_EVENT))
#define KKC_IS_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_KEY_EVENT))
#define KKC_KEY_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_KEY_EVENT, KkcKeyEventClass))

typedef struct _KkcKeyEvent KkcKeyEvent;
typedef struct _KkcKeyEventClass KkcKeyEventClass;

#define KKC_TYPE_MODIFIER_TYPE (kkc_modifier_type_get_type ())

#define KKC_TYPE_KANA_MODE (kkc_kana_mode_get_type ())

#define KKC_TYPE_INPUT_MODE (kkc_input_mode_get_type ())

#define KKC_TYPE_PUNCTUATION_STYLE (kkc_punctuation_style_get_type ())

#define KKC_TYPE_DBUS_SERVER (kkc_dbus_server_get_type ())
#define KKC_DBUS_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_DBUS_SERVER, KkcDBusServer))
#define KKC_DBUS_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_DBUS_SERVER, KkcDBusServerClass))
#define KKC_IS_DBUS_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_DBUS_SERVER))
#define KKC_IS_DBUS_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_DBUS_SERVER))
#define KKC_DBUS_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_DBUS_SERVER, KkcDBusServerClass))

typedef struct _KkcDBusServer KkcDBusServer;
typedef struct _KkcDBusServerClass KkcDBusServerClass;
typedef struct _KkcDBusServerPrivate KkcDBusServerPrivate;

#define KKC_TYPE_LANGUAGE_MODEL (kkc_language_model_get_type ())
#define KKC_LANGUAGE_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_LANGUAGE_MODEL, KkcLanguageModel))
#define KKC_LANGUAGE_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_LANGUAGE_MODEL, KkcLanguageModelClass))
#define KKC_IS_LANGUAGE_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_LANGUAGE_MODEL))
#define KKC_IS_LANGUAGE_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_LANGUAGE_MODEL))
#define KKC_LANGUAGE_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_LANGUAGE_MODEL, KkcLanguageModelClass))

typedef struct _KkcLanguageModel KkcLanguageModel;
typedef struct _KkcLanguageModelClass KkcLanguageModelClass;

#define KKC_TYPE_DICTIONARY_LIST (kkc_dictionary_list_get_type ())
#define KKC_DICTIONARY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_DICTIONARY_LIST, KkcDictionaryList))
#define KKC_DICTIONARY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_DICTIONARY_LIST, KkcDictionaryListClass))
#define KKC_IS_DICTIONARY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_DICTIONARY_LIST))
#define KKC_IS_DICTIONARY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_DICTIONARY_LIST))
#define KKC_DICTIONARY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_DICTIONARY_LIST, KkcDictionaryListClass))

typedef struct _KkcDictionaryList KkcDictionaryList;
typedef struct _KkcDictionaryListClass KkcDictionaryListClass;

#define KKC_TYPE_RULE (kkc_rule_get_type ())
#define KKC_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KKC_TYPE_RULE, KkcRule))
#define KKC_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KKC_TYPE_RULE, KkcRuleClass))
#define KKC_IS_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KKC_TYPE_RULE))
#define KKC_IS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KKC_TYPE_RULE))
#define KKC_RULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KKC_TYPE_RULE, KkcRuleClass))

typedef struct _KkcRule KkcRule;
typedef struct _KkcRuleClass KkcRuleClass;
enum  {
	KKC_DBUS_SERVER_0_PROPERTY,
	KKC_DBUS_SERVER_NUM_PROPERTIES
};
static GParamSpec* kkc_dbus_server_properties[KKC_DBUS_SERVER_NUM_PROPERTIES];
typedef struct _Block14Data Block14Data;

struct _KkcDBusCandidateList {
	GObject parent_instance;
	KkcDBusCandidateListPrivate * priv;
};

struct _KkcDBusCandidateListClass {
	GObjectClass parent_class;
};

struct _KkcDBusCandidateListPrivate {
	GDBusConnection* connection;
	gchar* object_path;
	KkcCandidateList* candidates;
	guint register_id;
};

struct _Block11Data {
	int _ref_count_;
	KkcDBusCandidateList* self;
	GDBusConnection* connection;
	gchar* object_path;
};

struct _KkcDBusSegmentList {
	GObject parent_instance;
	KkcDBusSegmentListPrivate * priv;
};

struct _KkcDBusSegmentListClass {
	GObjectClass parent_class;
};

struct _KkcDBusSegmentListPrivate {
	GDBusConnection* connection;
	gchar* object_path;
	KkcSegmentList* segments;
	guint register_id;
};

struct _Block12Data {
	int _ref_count_;
	KkcDBusSegmentList* self;
	GDBusConnection* connection;
	gchar* object_path;
};

struct _KkcDBusContext {
	GObject parent_instance;
	KkcDBusContextPrivate * priv;
};

struct _KkcDBusContextClass {
	GObjectClass parent_class;
};

struct _KkcDBusContextPrivate {
	GDBusConnection* connection;
	gchar* object_path;
	KkcContext* context;
	KkcDBusCandidateList* candidates;
	KkcDBusSegmentList* segments;
	guint register_id;
};

struct _Block13Data {
	int _ref_count_;
	KkcDBusContext* self;
	GDBusConnection* connection;
	gchar* object_path;
};

typedef enum  {
	KKC_MODIFIER_TYPE_NONE = 0,
	KKC_MODIFIER_TYPE_SHIFT_MASK = 1 << 0,
	KKC_MODIFIER_TYPE_LOCK_MASK = 1 << 1,
	KKC_MODIFIER_TYPE_CONTROL_MASK = 1 << 2,
	KKC_MODIFIER_TYPE_MOD1_MASK = 1 << 3,
	KKC_MODIFIER_TYPE_MOD2_MASK = 1 << 4,
	KKC_MODIFIER_TYPE_MOD3_MASK = 1 << 5,
	KKC_MODIFIER_TYPE_MOD4_MASK = 1 << 6,
	KKC_MODIFIER_TYPE_MOD5_MASK = 1 << 7,
	KKC_MODIFIER_TYPE_LSHIFT_MASK = 1 << 22,
	KKC_MODIFIER_TYPE_RSHIFT_MASK = 1 << 23,
	KKC_MODIFIER_TYPE_SUPER_MASK = 1 << 26,
	KKC_MODIFIER_TYPE_HYPER_MASK = 1 << 27,
	KKC_MODIFIER_TYPE_META_MASK = 1 << 28,
	KKC_MODIFIER_TYPE_RELEASE_MASK = 1 << 30
} KkcModifierType;

typedef enum  {
	KKC_KANA_MODE_HIRAGANA,
	KKC_KANA_MODE_KATAKANA,
	KKC_KANA_MODE_HANKAKU_KATAKANA,
	KKC_KANA_MODE_LATIN,
	KKC_KANA_MODE_WIDE_LATIN
} KkcKanaMode;

typedef enum  {
	KKC_INPUT_MODE_HIRAGANA = KKC_KANA_MODE_HIRAGANA,
	KKC_INPUT_MODE_KATAKANA = KKC_KANA_MODE_KATAKANA,
	KKC_INPUT_MODE_HANKAKU_KATAKANA = KKC_KANA_MODE_HANKAKU_KATAKANA,
	KKC_INPUT_MODE_LATIN = KKC_KANA_MODE_LATIN,
	KKC_INPUT_MODE_WIDE_LATIN = KKC_KANA_MODE_WIDE_LATIN,
	KKC_INPUT_MODE_DIRECT
} KkcInputMode;

typedef enum  {
	KKC_PUNCTUATION_STYLE_JA_JA,
	KKC_PUNCTUATION_STYLE_EN_EN,
	KKC_PUNCTUATION_STYLE_JA_EN,
	KKC_PUNCTUATION_STYLE_EN_JA
} KkcPunctuationStyle;

struct _KkcDBusServer {
	GObject parent_instance;
	KkcDBusServerPrivate * priv;
};

struct _KkcDBusServerClass {
	GObjectClass parent_class;
};

struct _KkcDBusServerPrivate {
	GDBusConnection* connection;
	KkcLanguageModel* model;
	KkcDictionaryList* dictionaries;
	KkcRule* typing_rule;
	guint own_name_id;
	guint context_id;
	GeeMap* contexts;
};

struct _Block14Data {
	int _ref_count_;
	KkcDBusServer* self;
	gchar* object_path;
};


static gpointer kkc_dbus_candidate_list_parent_class = NULL;
static gpointer kkc_dbus_segment_list_parent_class = NULL;
static gpointer kkc_dbus_context_parent_class = NULL;
static gpointer kkc_dbus_server_parent_class = NULL;

void kkc_dbus_utils_send_property_change (GDBusConnection* connection, const gchar* object_path, const gchar* interface_name, const gchar* name, GVariant* value);
GType kkc_dbus_candidate_list_get_type (void) G_GNUC_CONST;
guint kkc_dbus_candidate_list_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
GType kkc_candidate_list_get_type (void) G_GNUC_CONST;
#define KKC_DBUS_CANDIDATE_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), KKC_TYPE_DBUS_CANDIDATE_LIST, KkcDBusCandidateListPrivate))
void kkc_dbus_candidate_list_unregister (KkcDBusCandidateList* self);
KkcDBusCandidateList* kkc_dbus_candidate_list_new (GDBusConnection* connection, const gchar* object_path, KkcCandidateList* candidates);
KkcDBusCandidateList* kkc_dbus_candidate_list_construct (GType object_type, GDBusConnection* connection, const gchar* object_path, KkcCandidateList* candidates);
static Block11Data* block11_data_ref (Block11Data* _data11_);
static void block11_data_unref (void * _userdata_);
static void __lambda19_ (KkcDBusCandidateList* self);
static void ___lambda19__kkc_candidate_list_populated (KkcCandidateList* _sender, gpointer self);
GType kkc_candidate_get_type (void) G_GNUC_CONST;
static void __lambda20_ (KkcDBusCandidateList* self, KkcCandidate* candidate);
const gchar* kkc_candidate_get_annotation (KkcCandidate* self);
const gchar* kkc_candidate_get_midasi (KkcCandidate* self);
gboolean kkc_candidate_get_okuri (KkcCandidate* self);
const gchar* kkc_candidate_get_text (KkcCandidate* self);
static void ___lambda20__kkc_candidate_list_selected (KkcCandidateList* _sender, KkcCandidate* candidate, gpointer self);
static void __lambda21_ (Block11Data* _data11_, GParamSpec* p);
gint kkc_dbus_candidate_list_get_cursor_pos (KkcDBusCandidateList* self);
static void ___lambda21__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void kkc_dbus_candidate_list_register (KkcDBusCandidateList* self);
gboolean kkc_dbus_candidate_list_select_at (KkcDBusCandidateList* self, guint index_in_page, GError** error);
gboolean kkc_candidate_list_select_at (KkcCandidateList* self, guint index_in_page);
void kkc_dbus_candidate_list_select (KkcDBusCandidateList* self, GError** error);
void kkc_candidate_list_select (KkcCandidateList* self);
gboolean kkc_dbus_candidate_list_first (KkcDBusCandidateList* self, GError** error);
gboolean kkc_candidate_list_first (KkcCandidateList* self);
gboolean kkc_dbus_candidate_list_next (KkcDBusCandidateList* self, GError** error);
gboolean kkc_candidate_list_next (KkcCandidateList* self);
gboolean kkc_dbus_candidate_list_previous (KkcDBusCandidateList* self, GError** error);
gboolean kkc_candidate_list_previous (KkcCandidateList* self);
gboolean kkc_dbus_candidate_list_cursor_up (KkcDBusCandidateList* self, GError** error);
gboolean kkc_candidate_list_cursor_up (KkcCandidateList* self);
gboolean kkc_dbus_candidate_list_cursor_down (KkcDBusCandidateList* self, GError** error);
gboolean kkc_candidate_list_cursor_down (KkcCandidateList* self);
gboolean kkc_dbus_candidate_list_page_up (KkcDBusCandidateList* self, GError** error);
gboolean kkc_candidate_list_page_up (KkcCandidateList* self);
gboolean kkc_dbus_candidate_list_page_down (KkcDBusCandidateList* self, GError** error);
gboolean kkc_candidate_list_page_down (KkcCandidateList* self);
void kkc_dbus_candidate_list_get (KkcDBusCandidateList* self, gint index, gchar* * midasi, gboolean* okuri, gchar* * text, gchar* * annotation, GError** error);
KkcCandidate* kkc_candidate_list_get (KkcCandidateList* self, gint index);
gint kkc_candidate_list_get_cursor_pos (KkcCandidateList* self);
gint kkc_dbus_candidate_list_get_size (KkcDBusCandidateList* self);
gint kkc_candidate_list_get_size (KkcCandidateList* self);
guint kkc_dbus_candidate_list_get_page_start (KkcDBusCandidateList* self);
guint kkc_candidate_list_get_page_start (KkcCandidateList* self);
guint kkc_dbus_candidate_list_get_page_size (KkcDBusCandidateList* self);
guint kkc_candidate_list_get_page_size (KkcCandidateList* self);
gboolean kkc_dbus_candidate_list_get_round (KkcDBusCandidateList* self);
gboolean kkc_candidate_list_get_round (KkcCandidateList* self);
gboolean kkc_dbus_candidate_list_get_page_visible (KkcDBusCandidateList* self);
gboolean kkc_candidate_list_get_page_visible (KkcCandidateList* self);
static void g_cclosure_user_marshal_VOID__STRING_BOOLEAN_STRING_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static void kkc_dbus_candidate_list_finalize (GObject * obj);
static void _vala_kkc_dbus_candidate_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _dbus_kkc_dbus_candidate_list_select_at (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_candidate_list_select (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_candidate_list_first (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_candidate_list_next (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_candidate_list_previous (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_candidate_list_cursor_up (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_candidate_list_cursor_down (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_candidate_list_page_up (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_candidate_list_page_down (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_candidate_list_get (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void kkc_dbus_candidate_list_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data);
static GVariant* kkc_dbus_candidate_list_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data);
static GVariant* _dbus_kkc_dbus_candidate_list_get_cursor_pos (KkcDBusCandidateList* self);
static GVariant* _dbus_kkc_dbus_candidate_list_get_size (KkcDBusCandidateList* self);
static GVariant* _dbus_kkc_dbus_candidate_list_get_page_start (KkcDBusCandidateList* self);
static GVariant* _dbus_kkc_dbus_candidate_list_get_page_size (KkcDBusCandidateList* self);
static GVariant* _dbus_kkc_dbus_candidate_list_get_round (KkcDBusCandidateList* self);
static GVariant* _dbus_kkc_dbus_candidate_list_get_page_visible (KkcDBusCandidateList* self);
static gboolean kkc_dbus_candidate_list_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data);
static void _dbus_kkc_dbus_candidate_list_populated (GObject* _sender, gpointer* _data);
static void _dbus_kkc_dbus_candidate_list_selected (GObject* _sender, const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, gpointer* _data);
static void _kkc_dbus_candidate_list_unregister_object (gpointer user_data);
GType kkc_dbus_segment_list_get_type (void) G_GNUC_CONST;
guint kkc_dbus_segment_list_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
GType kkc_segment_list_get_type (void) G_GNUC_CONST;
#define KKC_DBUS_SEGMENT_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), KKC_TYPE_DBUS_SEGMENT_LIST, KkcDBusSegmentListPrivate))
void kkc_dbus_segment_list_unregister (KkcDBusSegmentList* self);
KkcDBusSegmentList* kkc_dbus_segment_list_new (GDBusConnection* connection, const gchar* object_path, KkcSegmentList* segments);
KkcDBusSegmentList* kkc_dbus_segment_list_construct (GType object_type, GDBusConnection* connection, const gchar* object_path, KkcSegmentList* segments);
static Block12Data* block12_data_ref (Block12Data* _data12_);
static void block12_data_unref (void * _userdata_);
static void __lambda22_ (Block12Data* _data12_, GParamSpec* p);
gint kkc_dbus_segment_list_get_cursor_pos (KkcDBusSegmentList* self);
static void ___lambda22__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void kkc_dbus_segment_list_register (KkcDBusSegmentList* self);
void kkc_dbus_segment_list_get (KkcDBusSegmentList* self, gint index, gchar* * input, gchar* * output, GError** error);
GType kkc_segment_get_type (void) G_GNUC_CONST;
KkcSegment* kkc_segment_list_get (KkcSegmentList* self, gint index);
const gchar* kkc_segment_get_input (KkcSegment* self);
const gchar* kkc_segment_get_output (KkcSegment* self);
gboolean kkc_dbus_segment_list_first_segment (KkcDBusSegmentList* self, GError** error);
gboolean kkc_segment_list_first_segment (KkcSegmentList* self);
gboolean kkc_dbus_segment_list_last_segment (KkcDBusSegmentList* self, GError** error);
gboolean kkc_segment_list_last_segment (KkcSegmentList* self);
void kkc_dbus_segment_list_next_segment (KkcDBusSegmentList* self, GError** error);
void kkc_segment_list_next_segment (KkcSegmentList* self);
void kkc_dbus_segment_list_previous_segment (KkcDBusSegmentList* self, GError** error);
void kkc_segment_list_previous_segment (KkcSegmentList* self);
gchar* kkc_dbus_segment_list_get_output (KkcDBusSegmentList* self, GError** error);
gchar* kkc_segment_list_get_output (KkcSegmentList* self);
gchar* kkc_dbus_segment_list_get_input (KkcDBusSegmentList* self, GError** error);
gchar* kkc_segment_list_get_input (KkcSegmentList* self);
gint kkc_segment_list_get_cursor_pos (KkcSegmentList* self);
gint kkc_dbus_segment_list_get_size (KkcDBusSegmentList* self);
gint kkc_segment_list_get_size (KkcSegmentList* self);
static void kkc_dbus_segment_list_finalize (GObject * obj);
static void _vala_kkc_dbus_segment_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _dbus_kkc_dbus_segment_list_get (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_segment_list_first_segment (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_segment_list_last_segment (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_segment_list_next_segment (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_segment_list_previous_segment (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_segment_list_get_output (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_segment_list_get_input (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void kkc_dbus_segment_list_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data);
static GVariant* kkc_dbus_segment_list_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data);
static GVariant* _dbus_kkc_dbus_segment_list_get_cursor_pos (KkcDBusSegmentList* self);
static GVariant* _dbus_kkc_dbus_segment_list_get_size (KkcDBusSegmentList* self);
static gboolean kkc_dbus_segment_list_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data);
static void _kkc_dbus_segment_list_unregister_object (gpointer user_data);
GType kkc_dbus_context_get_type (void) G_GNUC_CONST;
guint kkc_dbus_context_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
GType kkc_context_get_type (void) G_GNUC_CONST;
#define KKC_DBUS_CONTEXT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), KKC_TYPE_DBUS_CONTEXT, KkcDBusContextPrivate))
void kkc_dbus_context_unregister (KkcDBusContext* self);
KkcDBusContext* kkc_dbus_context_new (GDBusConnection* connection, const gchar* object_path, KkcContext* context);
KkcDBusContext* kkc_dbus_context_construct (GType object_type, GDBusConnection* connection, const gchar* object_path, KkcContext* context);
static Block13Data* block13_data_ref (Block13Data* _data13_);
static void block13_data_unref (void * _userdata_);
KkcCandidateList* kkc_context_get_candidates (KkcContext* self);
KkcSegmentList* kkc_context_get_segments (KkcContext* self);
static void __lambda23_ (Block13Data* _data13_, GParamSpec* p);
gchar* kkc_dbus_context_get_input (KkcDBusContext* self);
static void ___lambda23__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void __lambda24_ (Block13Data* _data13_, GParamSpec* p);
gint kkc_dbus_context_get_input_cursor_pos (KkcDBusContext* self);
static void ___lambda24__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void kkc_dbus_context_register (KkcDBusContext* self);
gboolean kkc_dbus_context_process_key_event (KkcDBusContext* self, guint keyval, guint keycode, guint modifiers, GError** error);
GType kkc_key_event_get_type (void) G_GNUC_CONST;
GType kkc_modifier_type_get_type (void) G_GNUC_CONST;
KkcKeyEvent* kkc_key_event_new (guint keyval, guint keycode, KkcModifierType modifiers);
KkcKeyEvent* kkc_key_event_construct (GType object_type, guint keyval, guint keycode, KkcModifierType modifiers);
gboolean kkc_context_process_key_event (KkcContext* self, KkcKeyEvent* key);
gboolean kkc_dbus_context_process_command_event (KkcDBusContext* self, const gchar* command, GError** error);
gboolean kkc_context_process_command_event (KkcContext* self, const gchar* command);
void kkc_dbus_context_reset (KkcDBusContext* self, GError** error);
void kkc_context_reset (KkcContext* self);
gboolean kkc_dbus_context_has_output (KkcDBusContext* self, GError** error);
gboolean kkc_context_has_output (KkcContext* self);
gchar* kkc_dbus_context_peek_output (KkcDBusContext* self, GError** error);
gchar* kkc_context_peek_output (KkcContext* self);
gchar* kkc_dbus_context_poll_output (KkcDBusContext* self, GError** error);
gchar* kkc_context_poll_output (KkcContext* self);
void kkc_dbus_context_clear_output (KkcDBusContext* self, GError** error);
void kkc_context_clear_output (KkcContext* self);
gchar* kkc_context_get_input (KkcContext* self);
gint kkc_context_get_input_cursor_pos (KkcContext* self);
guint kkc_dbus_context_get_input_mode (KkcDBusContext* self);
GType kkc_kana_mode_get_type (void) G_GNUC_CONST;
GType kkc_input_mode_get_type (void) G_GNUC_CONST;
KkcInputMode kkc_context_get_input_mode (KkcContext* self);
void kkc_dbus_context_set_input_mode (KkcDBusContext* self, guint value);
void kkc_context_set_input_mode (KkcContext* self, KkcInputMode value);
guint kkc_dbus_context_get_punctuation_style (KkcDBusContext* self);
GType kkc_punctuation_style_get_type (void) G_GNUC_CONST;
KkcPunctuationStyle kkc_context_get_punctuation_style (KkcContext* self);
void kkc_dbus_context_set_punctuation_style (KkcDBusContext* self, guint value);
void kkc_context_set_punctuation_style (KkcContext* self, KkcPunctuationStyle value);
gboolean kkc_dbus_context_get_auto_correct (KkcDBusContext* self);
gboolean kkc_context_get_auto_correct (KkcContext* self);
void kkc_dbus_context_set_auto_correct (KkcDBusContext* self, gboolean value);
void kkc_context_set_auto_correct (KkcContext* self, gboolean value);
static void kkc_dbus_context_finalize (GObject * obj);
static void _vala_kkc_dbus_context_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_kkc_dbus_context_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
static void _dbus_kkc_dbus_context_process_key_event (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_context_process_command_event (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_context_reset (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_context_has_output (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_context_peek_output (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_context_poll_output (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_context_clear_output (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void kkc_dbus_context_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data);
static GVariant* kkc_dbus_context_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data);
static GVariant* _dbus_kkc_dbus_context_get_input (KkcDBusContext* self);
static GVariant* _dbus_kkc_dbus_context_get_input_cursor_pos (KkcDBusContext* self);
static GVariant* _dbus_kkc_dbus_context_get_input_mode (KkcDBusContext* self);
static GVariant* _dbus_kkc_dbus_context_get_punctuation_style (KkcDBusContext* self);
static GVariant* _dbus_kkc_dbus_context_get_auto_correct (KkcDBusContext* self);
static gboolean kkc_dbus_context_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data);
static void _dbus_kkc_dbus_context_set_input_mode (KkcDBusContext* self, GVariant* _value);
static void _dbus_kkc_dbus_context_set_punctuation_style (KkcDBusContext* self, GVariant* _value);
static void _dbus_kkc_dbus_context_set_auto_correct (KkcDBusContext* self, GVariant* _value);
static void _kkc_dbus_context_unregister_object (gpointer user_data);
GType kkc_dbus_server_get_type (void) G_GNUC_CONST;
guint kkc_dbus_server_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
GType kkc_language_model_get_type (void) G_GNUC_CONST;
GType kkc_dictionary_list_get_type (void) G_GNUC_CONST;
GType kkc_rule_get_type (void) G_GNUC_CONST;
#define KKC_DBUS_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), KKC_TYPE_DBUS_SERVER, KkcDBusServerPrivate))
KkcDBusServer* kkc_dbus_server_new (GDBusConnection* connection, KkcLanguageModel* model, KkcDictionaryList* dictionaries, KkcRule* typing_rule);
KkcDBusServer* kkc_dbus_server_construct (GType object_type, GDBusConnection* connection, KkcLanguageModel* model, KkcDictionaryList* dictionaries, KkcRule* typing_rule);
static void kkc_dbus_server_on_name_acquired (KkcDBusServer* self, GDBusConnection* connection, const gchar* name);
static void _kkc_dbus_server_on_name_acquired_gbus_name_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self);
static void kkc_dbus_server_on_name_lost (KkcDBusServer* self, GDBusConnection* connection, const gchar* name);
static void _kkc_dbus_server_on_name_lost_gbus_name_lost_callback (GDBusConnection* connection, const gchar* name, gpointer self);
gchar* kkc_dbus_server_create_context (KkcDBusServer* self, const char* sender, GError** error);
static Block14Data* block14_data_ref (Block14Data* _data14_);
static void block14_data_unref (void * _userdata_);
KkcContext* kkc_context_new (KkcLanguageModel* model);
KkcContext* kkc_context_construct (GType object_type, KkcLanguageModel* model);
void kkc_context_set_dictionaries (KkcContext* self, KkcDictionaryList* value);
void kkc_context_set_typing_rule (KkcContext* self, KkcRule* value);
static void __lambda25_ (Block14Data* _data14_, GDBusConnection* c, const gchar* n);
void kkc_dbus_server_destroy_context (KkcDBusServer* self, const gchar* object_path, GError** error);
static void ___lambda25__gbus_name_vanished_callback (GDBusConnection* connection, const gchar* name, gpointer self);
static void kkc_dbus_server_finalize (GObject * obj);
static void _dbus_kkc_dbus_server_create_context (KkcDBusServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void _dbus_kkc_dbus_server_destroy_context (KkcDBusServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation);
static void kkc_dbus_server_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data);
static GVariant* kkc_dbus_server_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data);
static gboolean kkc_dbus_server_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data);
static void _kkc_dbus_server_unregister_object (gpointer user_data);

static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_select_at_index_in_page = {-1, "index_in_page", "u"};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_select_at_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_select_at_in[] = {&_kkc_dbus_candidate_list_dbus_arg_info_select_at_index_in_page, NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_select_at_out[] = {&_kkc_dbus_candidate_list_dbus_arg_info_select_at_result, NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_select_at = {-1, "SelectAt", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_select_at_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_select_at_out)};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_select_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_select_out[] = {NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_select = {-1, "Select", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_select_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_select_out)};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_first_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_first_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_first_out[] = {&_kkc_dbus_candidate_list_dbus_arg_info_first_result, NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_first = {-1, "First", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_first_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_first_out)};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_next_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_next_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_next_out[] = {&_kkc_dbus_candidate_list_dbus_arg_info_next_result, NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_next = {-1, "Next", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_next_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_next_out)};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_previous_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_previous_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_previous_out[] = {&_kkc_dbus_candidate_list_dbus_arg_info_previous_result, NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_previous = {-1, "Previous", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_previous_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_previous_out)};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_cursor_up_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_cursor_up_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_cursor_up_out[] = {&_kkc_dbus_candidate_list_dbus_arg_info_cursor_up_result, NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_cursor_up = {-1, "CursorUp", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_cursor_up_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_cursor_up_out)};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_cursor_down_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_cursor_down_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_cursor_down_out[] = {&_kkc_dbus_candidate_list_dbus_arg_info_cursor_down_result, NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_cursor_down = {-1, "CursorDown", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_cursor_down_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_cursor_down_out)};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_page_up_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_page_up_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_page_up_out[] = {&_kkc_dbus_candidate_list_dbus_arg_info_page_up_result, NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_page_up = {-1, "PageUp", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_page_up_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_page_up_out)};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_page_down_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_page_down_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_page_down_out[] = {&_kkc_dbus_candidate_list_dbus_arg_info_page_down_result, NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_page_down = {-1, "PageDown", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_page_down_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_page_down_out)};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_get_index = {-1, "index", "i"};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_get_midasi = {-1, "midasi", "s"};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_get_okuri = {-1, "okuri", "b"};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_get_text = {-1, "text", "s"};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_get_annotation = {-1, "annotation", "s"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_get_in[] = {&_kkc_dbus_candidate_list_dbus_arg_info_get_index, NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_get_out[] = {&_kkc_dbus_candidate_list_dbus_arg_info_get_midasi, &_kkc_dbus_candidate_list_dbus_arg_info_get_okuri, &_kkc_dbus_candidate_list_dbus_arg_info_get_text, &_kkc_dbus_candidate_list_dbus_arg_info_get_annotation, NULL};
static const GDBusMethodInfo _kkc_dbus_candidate_list_dbus_method_info_get = {-1, "Get", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_get_in), (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_get_out)};
static const GDBusMethodInfo * const _kkc_dbus_candidate_list_dbus_method_info[] = {&_kkc_dbus_candidate_list_dbus_method_info_select_at, &_kkc_dbus_candidate_list_dbus_method_info_select, &_kkc_dbus_candidate_list_dbus_method_info_first, &_kkc_dbus_candidate_list_dbus_method_info_next, &_kkc_dbus_candidate_list_dbus_method_info_previous, &_kkc_dbus_candidate_list_dbus_method_info_cursor_up, &_kkc_dbus_candidate_list_dbus_method_info_cursor_down, &_kkc_dbus_candidate_list_dbus_method_info_page_up, &_kkc_dbus_candidate_list_dbus_method_info_page_down, &_kkc_dbus_candidate_list_dbus_method_info_get, NULL};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_populated[] = {NULL};
static const GDBusSignalInfo _kkc_dbus_candidate_list_dbus_signal_info_populated = {-1, "Populated", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_populated)};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_selected_midasi = {-1, "midasi", "s"};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_selected_okuri = {-1, "okuri", "b"};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_selected_text = {-1, "text", "s"};
static const GDBusArgInfo _kkc_dbus_candidate_list_dbus_arg_info_selected_annotation = {-1, "annotation", "s"};
static const GDBusArgInfo * const _kkc_dbus_candidate_list_dbus_arg_info_selected[] = {&_kkc_dbus_candidate_list_dbus_arg_info_selected_midasi, &_kkc_dbus_candidate_list_dbus_arg_info_selected_okuri, &_kkc_dbus_candidate_list_dbus_arg_info_selected_text, &_kkc_dbus_candidate_list_dbus_arg_info_selected_annotation, NULL};
static const GDBusSignalInfo _kkc_dbus_candidate_list_dbus_signal_info_selected = {-1, "Selected", (GDBusArgInfo **) (&_kkc_dbus_candidate_list_dbus_arg_info_selected)};
static const GDBusSignalInfo * const _kkc_dbus_candidate_list_dbus_signal_info[] = {&_kkc_dbus_candidate_list_dbus_signal_info_populated, &_kkc_dbus_candidate_list_dbus_signal_info_selected, NULL};
static const GDBusPropertyInfo _kkc_dbus_candidate_list_dbus_property_info_cursor_pos = {-1, "CursorPos", "i", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo _kkc_dbus_candidate_list_dbus_property_info_size = {-1, "Size", "i", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo _kkc_dbus_candidate_list_dbus_property_info_page_start = {-1, "PageStart", "u", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo _kkc_dbus_candidate_list_dbus_property_info_page_size = {-1, "PageSize", "u", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo _kkc_dbus_candidate_list_dbus_property_info_round = {-1, "Round", "b", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo _kkc_dbus_candidate_list_dbus_property_info_page_visible = {-1, "PageVisible", "b", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo * const _kkc_dbus_candidate_list_dbus_property_info[] = {&_kkc_dbus_candidate_list_dbus_property_info_cursor_pos, &_kkc_dbus_candidate_list_dbus_property_info_size, &_kkc_dbus_candidate_list_dbus_property_info_page_start, &_kkc_dbus_candidate_list_dbus_property_info_page_size, &_kkc_dbus_candidate_list_dbus_property_info_round, &_kkc_dbus_candidate_list_dbus_property_info_page_visible, NULL};
static const GDBusInterfaceInfo _kkc_dbus_candidate_list_dbus_interface_info = {-1, "org.du_a.Kkc.CandidateList", (GDBusMethodInfo **) (&_kkc_dbus_candidate_list_dbus_method_info), (GDBusSignalInfo **) (&_kkc_dbus_candidate_list_dbus_signal_info), (GDBusPropertyInfo **) (&_kkc_dbus_candidate_list_dbus_property_info)};
static const GDBusInterfaceVTable _kkc_dbus_candidate_list_dbus_interface_vtable = {kkc_dbus_candidate_list_dbus_interface_method_call, kkc_dbus_candidate_list_dbus_interface_get_property, kkc_dbus_candidate_list_dbus_interface_set_property};
static const GDBusArgInfo _kkc_dbus_segment_list_dbus_arg_info_get_index = {-1, "index", "i"};
static const GDBusArgInfo _kkc_dbus_segment_list_dbus_arg_info_get_input = {-1, "input", "s"};
static const GDBusArgInfo _kkc_dbus_segment_list_dbus_arg_info_get_output = {-1, "output", "s"};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_get_in[] = {&_kkc_dbus_segment_list_dbus_arg_info_get_index, NULL};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_get_out[] = {&_kkc_dbus_segment_list_dbus_arg_info_get_input, &_kkc_dbus_segment_list_dbus_arg_info_get_output, NULL};
static const GDBusMethodInfo _kkc_dbus_segment_list_dbus_method_info_get = {-1, "Get", (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_get_in), (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_get_out)};
static const GDBusArgInfo _kkc_dbus_segment_list_dbus_arg_info_first_segment_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_first_segment_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_first_segment_out[] = {&_kkc_dbus_segment_list_dbus_arg_info_first_segment_result, NULL};
static const GDBusMethodInfo _kkc_dbus_segment_list_dbus_method_info_first_segment = {-1, "FirstSegment", (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_first_segment_in), (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_first_segment_out)};
static const GDBusArgInfo _kkc_dbus_segment_list_dbus_arg_info_last_segment_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_last_segment_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_last_segment_out[] = {&_kkc_dbus_segment_list_dbus_arg_info_last_segment_result, NULL};
static const GDBusMethodInfo _kkc_dbus_segment_list_dbus_method_info_last_segment = {-1, "LastSegment", (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_last_segment_in), (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_last_segment_out)};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_next_segment_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_next_segment_out[] = {NULL};
static const GDBusMethodInfo _kkc_dbus_segment_list_dbus_method_info_next_segment = {-1, "NextSegment", (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_next_segment_in), (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_next_segment_out)};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_previous_segment_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_previous_segment_out[] = {NULL};
static const GDBusMethodInfo _kkc_dbus_segment_list_dbus_method_info_previous_segment = {-1, "PreviousSegment", (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_previous_segment_in), (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_previous_segment_out)};
static const GDBusArgInfo _kkc_dbus_segment_list_dbus_arg_info_get_output_result = {-1, "result", "s"};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_get_output_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_get_output_out[] = {&_kkc_dbus_segment_list_dbus_arg_info_get_output_result, NULL};
static const GDBusMethodInfo _kkc_dbus_segment_list_dbus_method_info_get_output = {-1, "GetOutput", (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_get_output_in), (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_get_output_out)};
static const GDBusArgInfo _kkc_dbus_segment_list_dbus_arg_info_get_input_result = {-1, "result", "s"};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_get_input_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_segment_list_dbus_arg_info_get_input_out[] = {&_kkc_dbus_segment_list_dbus_arg_info_get_input_result, NULL};
static const GDBusMethodInfo _kkc_dbus_segment_list_dbus_method_info_get_input = {-1, "GetInput", (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_get_input_in), (GDBusArgInfo **) (&_kkc_dbus_segment_list_dbus_arg_info_get_input_out)};
static const GDBusMethodInfo * const _kkc_dbus_segment_list_dbus_method_info[] = {&_kkc_dbus_segment_list_dbus_method_info_get, &_kkc_dbus_segment_list_dbus_method_info_first_segment, &_kkc_dbus_segment_list_dbus_method_info_last_segment, &_kkc_dbus_segment_list_dbus_method_info_next_segment, &_kkc_dbus_segment_list_dbus_method_info_previous_segment, &_kkc_dbus_segment_list_dbus_method_info_get_output, &_kkc_dbus_segment_list_dbus_method_info_get_input, NULL};
static const GDBusSignalInfo * const _kkc_dbus_segment_list_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo _kkc_dbus_segment_list_dbus_property_info_cursor_pos = {-1, "CursorPos", "i", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo _kkc_dbus_segment_list_dbus_property_info_size = {-1, "Size", "i", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo * const _kkc_dbus_segment_list_dbus_property_info[] = {&_kkc_dbus_segment_list_dbus_property_info_cursor_pos, &_kkc_dbus_segment_list_dbus_property_info_size, NULL};
static const GDBusInterfaceInfo _kkc_dbus_segment_list_dbus_interface_info = {-1, "org.du_a.Kkc.SegmentList", (GDBusMethodInfo **) (&_kkc_dbus_segment_list_dbus_method_info), (GDBusSignalInfo **) (&_kkc_dbus_segment_list_dbus_signal_info), (GDBusPropertyInfo **) (&_kkc_dbus_segment_list_dbus_property_info)};
static const GDBusInterfaceVTable _kkc_dbus_segment_list_dbus_interface_vtable = {kkc_dbus_segment_list_dbus_interface_method_call, kkc_dbus_segment_list_dbus_interface_get_property, kkc_dbus_segment_list_dbus_interface_set_property};
static const GDBusArgInfo _kkc_dbus_context_dbus_arg_info_process_key_event_keyval = {-1, "keyval", "u"};
static const GDBusArgInfo _kkc_dbus_context_dbus_arg_info_process_key_event_keycode = {-1, "keycode", "u"};
static const GDBusArgInfo _kkc_dbus_context_dbus_arg_info_process_key_event_modifiers = {-1, "modifiers", "u"};
static const GDBusArgInfo _kkc_dbus_context_dbus_arg_info_process_key_event_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_process_key_event_in[] = {&_kkc_dbus_context_dbus_arg_info_process_key_event_keyval, &_kkc_dbus_context_dbus_arg_info_process_key_event_keycode, &_kkc_dbus_context_dbus_arg_info_process_key_event_modifiers, NULL};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_process_key_event_out[] = {&_kkc_dbus_context_dbus_arg_info_process_key_event_result, NULL};
static const GDBusMethodInfo _kkc_dbus_context_dbus_method_info_process_key_event = {-1, "ProcessKeyEvent", (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_process_key_event_in), (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_process_key_event_out)};
static const GDBusArgInfo _kkc_dbus_context_dbus_arg_info_process_command_event_command = {-1, "command", "s"};
static const GDBusArgInfo _kkc_dbus_context_dbus_arg_info_process_command_event_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_process_command_event_in[] = {&_kkc_dbus_context_dbus_arg_info_process_command_event_command, NULL};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_process_command_event_out[] = {&_kkc_dbus_context_dbus_arg_info_process_command_event_result, NULL};
static const GDBusMethodInfo _kkc_dbus_context_dbus_method_info_process_command_event = {-1, "ProcessCommandEvent", (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_process_command_event_in), (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_process_command_event_out)};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_reset_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_reset_out[] = {NULL};
static const GDBusMethodInfo _kkc_dbus_context_dbus_method_info_reset = {-1, "Reset", (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_reset_in), (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_reset_out)};
static const GDBusArgInfo _kkc_dbus_context_dbus_arg_info_has_output_result = {-1, "result", "b"};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_has_output_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_has_output_out[] = {&_kkc_dbus_context_dbus_arg_info_has_output_result, NULL};
static const GDBusMethodInfo _kkc_dbus_context_dbus_method_info_has_output = {-1, "HasOutput", (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_has_output_in), (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_has_output_out)};
static const GDBusArgInfo _kkc_dbus_context_dbus_arg_info_peek_output_result = {-1, "result", "s"};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_peek_output_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_peek_output_out[] = {&_kkc_dbus_context_dbus_arg_info_peek_output_result, NULL};
static const GDBusMethodInfo _kkc_dbus_context_dbus_method_info_peek_output = {-1, "PeekOutput", (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_peek_output_in), (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_peek_output_out)};
static const GDBusArgInfo _kkc_dbus_context_dbus_arg_info_poll_output_result = {-1, "result", "s"};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_poll_output_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_poll_output_out[] = {&_kkc_dbus_context_dbus_arg_info_poll_output_result, NULL};
static const GDBusMethodInfo _kkc_dbus_context_dbus_method_info_poll_output = {-1, "PollOutput", (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_poll_output_in), (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_poll_output_out)};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_clear_output_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_context_dbus_arg_info_clear_output_out[] = {NULL};
static const GDBusMethodInfo _kkc_dbus_context_dbus_method_info_clear_output = {-1, "ClearOutput", (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_clear_output_in), (GDBusArgInfo **) (&_kkc_dbus_context_dbus_arg_info_clear_output_out)};
static const GDBusMethodInfo * const _kkc_dbus_context_dbus_method_info[] = {&_kkc_dbus_context_dbus_method_info_process_key_event, &_kkc_dbus_context_dbus_method_info_process_command_event, &_kkc_dbus_context_dbus_method_info_reset, &_kkc_dbus_context_dbus_method_info_has_output, &_kkc_dbus_context_dbus_method_info_peek_output, &_kkc_dbus_context_dbus_method_info_poll_output, &_kkc_dbus_context_dbus_method_info_clear_output, NULL};
static const GDBusSignalInfo * const _kkc_dbus_context_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo _kkc_dbus_context_dbus_property_info_input = {-1, "Input", "s", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo _kkc_dbus_context_dbus_property_info_input_cursor_pos = {-1, "InputCursorPos", "i", G_DBUS_PROPERTY_INFO_FLAGS_READABLE};
static const GDBusPropertyInfo _kkc_dbus_context_dbus_property_info_input_mode = {-1, "InputMode", "u", G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE};
static const GDBusPropertyInfo _kkc_dbus_context_dbus_property_info_punctuation_style = {-1, "PunctuationStyle", "u", G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE};
static const GDBusPropertyInfo _kkc_dbus_context_dbus_property_info_auto_correct = {-1, "AutoCorrect", "b", G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE};
static const GDBusPropertyInfo * const _kkc_dbus_context_dbus_property_info[] = {&_kkc_dbus_context_dbus_property_info_input, &_kkc_dbus_context_dbus_property_info_input_cursor_pos, &_kkc_dbus_context_dbus_property_info_input_mode, &_kkc_dbus_context_dbus_property_info_punctuation_style, &_kkc_dbus_context_dbus_property_info_auto_correct, NULL};
static const GDBusInterfaceInfo _kkc_dbus_context_dbus_interface_info = {-1, "org.du_a.Kkc.Context", (GDBusMethodInfo **) (&_kkc_dbus_context_dbus_method_info), (GDBusSignalInfo **) (&_kkc_dbus_context_dbus_signal_info), (GDBusPropertyInfo **) (&_kkc_dbus_context_dbus_property_info)};
static const GDBusInterfaceVTable _kkc_dbus_context_dbus_interface_vtable = {kkc_dbus_context_dbus_interface_method_call, kkc_dbus_context_dbus_interface_get_property, kkc_dbus_context_dbus_interface_set_property};
static const GDBusArgInfo _kkc_dbus_server_dbus_arg_info_create_context_result = {-1, "result", "s"};
static const GDBusArgInfo * const _kkc_dbus_server_dbus_arg_info_create_context_in[] = {NULL};
static const GDBusArgInfo * const _kkc_dbus_server_dbus_arg_info_create_context_out[] = {&_kkc_dbus_server_dbus_arg_info_create_context_result, NULL};
static const GDBusMethodInfo _kkc_dbus_server_dbus_method_info_create_context = {-1, "CreateContext", (GDBusArgInfo **) (&_kkc_dbus_server_dbus_arg_info_create_context_in), (GDBusArgInfo **) (&_kkc_dbus_server_dbus_arg_info_create_context_out)};
static const GDBusArgInfo _kkc_dbus_server_dbus_arg_info_destroy_context_object_path = {-1, "object_path", "s"};
static const GDBusArgInfo * const _kkc_dbus_server_dbus_arg_info_destroy_context_in[] = {&_kkc_dbus_server_dbus_arg_info_destroy_context_object_path, NULL};
static const GDBusArgInfo * const _kkc_dbus_server_dbus_arg_info_destroy_context_out[] = {NULL};
static const GDBusMethodInfo _kkc_dbus_server_dbus_method_info_destroy_context = {-1, "DestroyContext", (GDBusArgInfo **) (&_kkc_dbus_server_dbus_arg_info_destroy_context_in), (GDBusArgInfo **) (&_kkc_dbus_server_dbus_arg_info_destroy_context_out)};
static const GDBusMethodInfo * const _kkc_dbus_server_dbus_method_info[] = {&_kkc_dbus_server_dbus_method_info_create_context, &_kkc_dbus_server_dbus_method_info_destroy_context, NULL};
static const GDBusSignalInfo * const _kkc_dbus_server_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _kkc_dbus_server_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _kkc_dbus_server_dbus_interface_info = {-1, "org.du_a.Kkc.Server", (GDBusMethodInfo **) (&_kkc_dbus_server_dbus_method_info), (GDBusSignalInfo **) (&_kkc_dbus_server_dbus_signal_info), (GDBusPropertyInfo **) (&_kkc_dbus_server_dbus_property_info)};
static const GDBusInterfaceVTable _kkc_dbus_server_dbus_interface_vtable = {kkc_dbus_server_dbus_interface_method_call, kkc_dbus_server_dbus_interface_get_property, kkc_dbus_server_dbus_interface_set_property};

void kkc_dbus_utils_send_property_change (GDBusConnection* connection, const gchar* object_path, const gchar* interface_name, const gchar* name, GVariant* value) {
	GVariantBuilder* builder = NULL;
	const GVariantType* _tmp0_;
	GVariantBuilder* _tmp1_;
	GVariantBuilder* invalid_builder = NULL;
	GVariantType* _tmp2_;
	GVariantType* _tmp3_;
	GVariantBuilder* _tmp4_;
	GVariantBuilder* _tmp5_;
	const gchar* _tmp6_;
	GVariant* _tmp7_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (connection != NULL);
	g_return_if_fail (object_path != NULL);
	g_return_if_fail (interface_name != NULL);
	g_return_if_fail (name != NULL);
	g_return_if_fail (value != NULL);
	_tmp0_ = G_VARIANT_TYPE_ARRAY;
	_tmp1_ = g_variant_builder_new (_tmp0_);
	builder = _tmp1_;
	_tmp2_ = g_variant_type_new ("as");
	_tmp3_ = _tmp2_;
	_tmp4_ = g_variant_builder_new (_tmp3_);
	_tmp5_ = _tmp4_;
	_g_variant_type_free0 (_tmp3_);
	invalid_builder = _tmp5_;
	_tmp6_ = name;
	_tmp7_ = value;
	g_variant_builder_add (builder, "{sv}", _tmp6_, _tmp7_, NULL);
	{
		GDBusConnection* _tmp8_;
		const gchar* _tmp9_;
		const gchar* _tmp10_;
		GVariant* _tmp11_;
		GVariant* _tmp12_;
		_tmp8_ = connection;
		_tmp9_ = object_path;
		_tmp10_ = interface_name;
		_tmp11_ = g_variant_new ("(sa{sv}as)", _tmp10_, builder, invalid_builder, NULL);
		g_variant_ref_sink (_tmp11_);
		_tmp12_ = _tmp11_;
		g_dbus_connection_emit_signal (_tmp8_, NULL, _tmp9_, "org.freedesktop.DBus.Properties", "PropertiesChanged", _tmp12_, &_inner_error_);
		_g_variant_unref0 (_tmp12_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch25_g_error;
		}
	}
	goto __finally25;
	__catch25_g_error:
	{
		GError* e = NULL;
		FILE* _tmp13_;
		GError* _tmp14_;
		const gchar* _tmp15_;
		e = _inner_error_;
		_inner_error_ = NULL;
		_tmp13_ = stderr;
		_tmp14_ = e;
		_tmp15_ = _tmp14_->message;
		fprintf (_tmp13_, "%s\n", _tmp15_);
		_g_error_free0 (e);
	}
	__finally25:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		_g_variant_builder_unref0 (invalid_builder);
		_g_variant_builder_unref0 (builder);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
	_g_variant_builder_unref0 (invalid_builder);
	_g_variant_builder_unref0 (builder);
}


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


static Block11Data* block11_data_ref (Block11Data* _data11_) {
	g_atomic_int_inc (&_data11_->_ref_count_);
	return _data11_;
}


static void block11_data_unref (void * _userdata_) {
	Block11Data* _data11_;
	_data11_ = (Block11Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data11_->_ref_count_)) {
		KkcDBusCandidateList* self;
		self = _data11_->self;
		_g_object_unref0 (_data11_->connection);
		_g_free0 (_data11_->object_path);
		_g_object_unref0 (self);
		g_slice_free (Block11Data, _data11_);
	}
}


static void __lambda19_ (KkcDBusCandidateList* self) {
	g_signal_emit (self, kkc_dbus_candidate_list_signals[KKC_DBUS_CANDIDATE_LIST_POPULATED_SIGNAL], 0);
}


static void ___lambda19__kkc_candidate_list_populated (KkcCandidateList* _sender, gpointer self) {
	__lambda19_ ((KkcDBusCandidateList*) self);
}


static void __lambda20_ (KkcDBusCandidateList* self, KkcCandidate* candidate) {
	const gchar* _tmp0_ = NULL;
	KkcCandidate* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	KkcCandidate* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	KkcCandidate* _tmp7_;
	gboolean _tmp8_;
	gboolean _tmp9_;
	KkcCandidate* _tmp10_;
	const gchar* _tmp11_;
	const gchar* _tmp12_;
	g_return_if_fail (candidate != NULL);
	_tmp1_ = candidate;
	_tmp2_ = kkc_candidate_get_annotation (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp0_ = _tmp3_;
	if (_tmp0_ == NULL) {
		_tmp0_ = "";
	}
	_tmp4_ = candidate;
	_tmp5_ = kkc_candidate_get_midasi (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = candidate;
	_tmp8_ = kkc_candidate_get_okuri (_tmp7_);
	_tmp9_ = _tmp8_;
	_tmp10_ = candidate;
	_tmp11_ = kkc_candidate_get_text (_tmp10_);
	_tmp12_ = _tmp11_;
	g_signal_emit (self, kkc_dbus_candidate_list_signals[KKC_DBUS_CANDIDATE_LIST_SELECTED_SIGNAL], 0, _tmp6_, _tmp9_, _tmp12_, _tmp0_);
}


static void ___lambda20__kkc_candidate_list_selected (KkcCandidateList* _sender, KkcCandidate* candidate, gpointer self) {
	__lambda20_ ((KkcDBusCandidateList*) self, candidate);
}


static void __lambda21_ (Block11Data* _data11_, GParamSpec* p) {
	KkcDBusCandidateList* self;
	GDBusConnection* _tmp0_;
	const gchar* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GVariant* _tmp4_;
	GVariant* _tmp5_;
	self = _data11_->self;
	g_return_if_fail (p != NULL);
	_tmp0_ = _data11_->connection;
	_tmp1_ = _data11_->object_path;
	_tmp2_ = kkc_dbus_candidate_list_get_cursor_pos (self);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_variant_new_int32 ((gint32) _tmp3_);
	g_variant_ref_sink (_tmp4_);
	_tmp5_ = _tmp4_;
	kkc_dbus_utils_send_property_change (_tmp0_, _tmp1_, "org.du_a.Kkc.CandidateList", "CursorPos", _tmp5_);
	_g_variant_unref0 (_tmp5_);
}


static void ___lambda21__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	__lambda21_ (self, pspec);
}


KkcDBusCandidateList* kkc_dbus_candidate_list_construct (GType object_type, GDBusConnection* connection, const gchar* object_path, KkcCandidateList* candidates) {
	KkcDBusCandidateList * self = NULL;
	Block11Data* _data11_;
	GDBusConnection* _tmp0_;
	GDBusConnection* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	GDBusConnection* _tmp4_;
	GDBusConnection* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	KkcCandidateList* _tmp8_;
	KkcCandidateList* _tmp9_;
	KkcCandidateList* _tmp10_;
	KkcCandidateList* _tmp11_;
	KkcCandidateList* _tmp12_;
	g_return_val_if_fail (connection != NULL, NULL);
	g_return_val_if_fail (object_path != NULL, NULL);
	g_return_val_if_fail (candidates != NULL, NULL);
	_data11_ = g_slice_new0 (Block11Data);
	_data11_->_ref_count_ = 1;
	_tmp0_ = connection;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data11_->connection);
	_data11_->connection = _tmp1_;
	_tmp2_ = object_path;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 (_data11_->object_path);
	_data11_->object_path = _tmp3_;
	self = (KkcDBusCandidateList*) g_object_new (object_type, NULL);
	_data11_->self = g_object_ref (self);
	_tmp4_ = _data11_->connection;
	_tmp5_ = _g_object_ref0 (_tmp4_);
	_g_object_unref0 (self->priv->connection);
	self->priv->connection = _tmp5_;
	_tmp6_ = _data11_->object_path;
	_tmp7_ = g_strdup (_tmp6_);
	_g_free0 (self->priv->object_path);
	self->priv->object_path = _tmp7_;
	_tmp8_ = candidates;
	_tmp9_ = _g_object_ref0 (_tmp8_);
	_g_object_unref0 (self->priv->candidates);
	self->priv->candidates = _tmp9_;
	_tmp10_ = self->priv->candidates;
	g_signal_connect_object (_tmp10_, "populated", (GCallback) ___lambda19__kkc_candidate_list_populated, self, 0);
	_tmp11_ = self->priv->candidates;
	g_signal_connect_object (_tmp11_, "selected", (GCallback) ___lambda20__kkc_candidate_list_selected, self, 0);
	_tmp12_ = self->priv->candidates;
	g_signal_connect_data ((GObject*) _tmp12_, "notify::cursor-pos", (GCallback) ___lambda21__g_object_notify, block11_data_ref (_data11_), (GClosureNotify) block11_data_unref, 0);
	kkc_dbus_candidate_list_register (self);
	block11_data_unref (_data11_);
	_data11_ = NULL;
	return self;
}


KkcDBusCandidateList* kkc_dbus_candidate_list_new (GDBusConnection* connection, const gchar* object_path, KkcCandidateList* candidates) {
	return kkc_dbus_candidate_list_construct (KKC_TYPE_DBUS_CANDIDATE_LIST, connection, object_path, candidates);
}


gboolean kkc_dbus_candidate_list_select_at (KkcDBusCandidateList* self, guint index_in_page, GError** error) {
	gboolean result = FALSE;
	KkcCandidateList* _tmp0_;
	guint _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = index_in_page;
	_tmp2_ = kkc_candidate_list_select_at (_tmp0_, _tmp1_);
	result = _tmp2_;
	return result;
}


void kkc_dbus_candidate_list_select (KkcDBusCandidateList* self, GError** error) {
	KkcCandidateList* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->candidates;
	kkc_candidate_list_select (_tmp0_);
}


gboolean kkc_dbus_candidate_list_first (KkcDBusCandidateList* self, GError** error) {
	gboolean result = FALSE;
	KkcCandidateList* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_first (_tmp0_);
	result = _tmp1_;
	return result;
}


gboolean kkc_dbus_candidate_list_next (KkcDBusCandidateList* self, GError** error) {
	gboolean result = FALSE;
	KkcCandidateList* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_next (_tmp0_);
	result = _tmp1_;
	return result;
}


gboolean kkc_dbus_candidate_list_previous (KkcDBusCandidateList* self, GError** error) {
	gboolean result = FALSE;
	KkcCandidateList* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_previous (_tmp0_);
	result = _tmp1_;
	return result;
}


gboolean kkc_dbus_candidate_list_cursor_up (KkcDBusCandidateList* self, GError** error) {
	gboolean result = FALSE;
	KkcCandidateList* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_cursor_up (_tmp0_);
	result = _tmp1_;
	return result;
}


gboolean kkc_dbus_candidate_list_cursor_down (KkcDBusCandidateList* self, GError** error) {
	gboolean result = FALSE;
	KkcCandidateList* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_cursor_down (_tmp0_);
	result = _tmp1_;
	return result;
}


gboolean kkc_dbus_candidate_list_page_up (KkcDBusCandidateList* self, GError** error) {
	gboolean result = FALSE;
	KkcCandidateList* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_page_up (_tmp0_);
	result = _tmp1_;
	return result;
}


gboolean kkc_dbus_candidate_list_page_down (KkcDBusCandidateList* self, GError** error) {
	gboolean result = FALSE;
	KkcCandidateList* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_page_down (_tmp0_);
	result = _tmp1_;
	return result;
}


void kkc_dbus_candidate_list_get (KkcDBusCandidateList* self, gint index, gchar* * midasi, gboolean* okuri, gchar* * text, gchar* * annotation, GError** error) {
	gchar* _vala_midasi = NULL;
	gboolean _vala_okuri = FALSE;
	gchar* _vala_text = NULL;
	gchar* _vala_annotation = NULL;
	KkcCandidate* candidate = NULL;
	KkcCandidateList* _tmp0_;
	gint _tmp1_;
	KkcCandidate* _tmp2_;
	KkcCandidate* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	KkcCandidate* _tmp7_;
	gboolean _tmp8_;
	gboolean _tmp9_;
	KkcCandidate* _tmp10_;
	const gchar* _tmp11_;
	const gchar* _tmp12_;
	gchar* _tmp13_;
	const gchar* _tmp14_ = NULL;
	KkcCandidate* _tmp15_;
	const gchar* _tmp16_;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = index;
	_tmp2_ = kkc_candidate_list_get (_tmp0_, _tmp1_);
	candidate = _tmp2_;
	_tmp3_ = candidate;
	_tmp4_ = kkc_candidate_get_midasi (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup (_tmp5_);
	_g_free0 (_vala_midasi);
	_vala_midasi = _tmp6_;
	_tmp7_ = candidate;
	_tmp8_ = kkc_candidate_get_okuri (_tmp7_);
	_tmp9_ = _tmp8_;
	_vala_okuri = _tmp9_;
	_tmp10_ = candidate;
	_tmp11_ = kkc_candidate_get_text (_tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = g_strdup (_tmp12_);
	_g_free0 (_vala_text);
	_vala_text = _tmp13_;
	_tmp15_ = candidate;
	_tmp16_ = kkc_candidate_get_annotation (_tmp15_);
	_tmp17_ = _tmp16_;
	_tmp14_ = _tmp17_;
	if (_tmp14_ == NULL) {
		_tmp14_ = "";
	}
	_tmp18_ = g_strdup (_tmp14_);
	_g_free0 (_vala_annotation);
	_vala_annotation = _tmp18_;
	_g_object_unref0 (candidate);
	if (midasi) {
		*midasi = _vala_midasi;
	} else {
		_g_free0 (_vala_midasi);
	}
	if (okuri) {
		*okuri = _vala_okuri;
	}
	if (text) {
		*text = _vala_text;
	} else {
		_g_free0 (_vala_text);
	}
	if (annotation) {
		*annotation = _vala_annotation;
	} else {
		_g_free0 (_vala_annotation);
	}
}


static void kkc_dbus_candidate_list_register (KkcDBusCandidateList* self) {
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	{
		guint _tmp0_ = 0U;
		GDBusConnection* _tmp1_;
		const gchar* _tmp2_;
		guint _tmp3_;
		_tmp1_ = self->priv->connection;
		_tmp2_ = self->priv->object_path;
		_tmp3_ = kkc_dbus_candidate_list_register_object (self, _tmp1_, _tmp2_, &_inner_error_);
		_tmp0_ = _tmp3_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_IO_ERROR) {
				goto __catch26_g_io_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
		self->priv->register_id = _tmp0_;
	}
	goto __finally26;
	__catch26_g_io_error:
	{
		GError* e = NULL;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		e = _inner_error_;
		_inner_error_ = NULL;
		_tmp4_ = self->priv->object_path;
		_tmp5_ = e->message;
		g_error ("server.vala:182: Could not register D-Bus object at %s: %s", _tmp4_, _tmp5_);
		_g_error_free0 (e);
	}
	__finally26:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
}


void kkc_dbus_candidate_list_unregister (KkcDBusCandidateList* self) {
	guint _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->register_id;
	if (_tmp0_ > ((guint) 0)) {
		GDBusConnection* _tmp1_;
		guint _tmp2_;
		_tmp1_ = self->priv->connection;
		_tmp2_ = self->priv->register_id;
		g_dbus_connection_unregister_object (_tmp1_, _tmp2_);
		self->priv->register_id = (guint) 0;
	}
}


gint kkc_dbus_candidate_list_get_cursor_pos (KkcDBusCandidateList* self) {
	gint result;
	KkcCandidateList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_get_cursor_pos (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


gint kkc_dbus_candidate_list_get_size (KkcDBusCandidateList* self) {
	gint result;
	KkcCandidateList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_get_size (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


guint kkc_dbus_candidate_list_get_page_start (KkcDBusCandidateList* self) {
	guint result;
	KkcCandidateList* _tmp0_;
	guint _tmp1_;
	guint _tmp2_;
	g_return_val_if_fail (self != NULL, 0U);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_get_page_start (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


guint kkc_dbus_candidate_list_get_page_size (KkcDBusCandidateList* self) {
	guint result;
	KkcCandidateList* _tmp0_;
	guint _tmp1_;
	guint _tmp2_;
	g_return_val_if_fail (self != NULL, 0U);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_get_page_size (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


gboolean kkc_dbus_candidate_list_get_round (KkcDBusCandidateList* self) {
	gboolean result;
	KkcCandidateList* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_get_round (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


gboolean kkc_dbus_candidate_list_get_page_visible (KkcDBusCandidateList* self) {
	gboolean result;
	KkcCandidateList* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->candidates;
	_tmp1_ = kkc_candidate_list_get_page_visible (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


static void g_cclosure_user_marshal_VOID__STRING_BOOLEAN_STRING_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__STRING_BOOLEAN_STRING_STRING) (gpointer data1, const char* arg_1, gboolean arg_2, const char* arg_3, const char* arg_4, gpointer data2);
	register GMarshalFunc_VOID__STRING_BOOLEAN_STRING_STRING callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 5);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__STRING_BOOLEAN_STRING_STRING) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_boolean (param_values + 2), g_value_get_string (param_values + 3), g_value_get_string (param_values + 4), data2);
}


static void kkc_dbus_candidate_list_class_init (KkcDBusCandidateListClass * klass) {
	kkc_dbus_candidate_list_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (KkcDBusCandidateListPrivate));
	G_OBJECT_CLASS (klass)->get_property = _vala_kkc_dbus_candidate_list_get_property;
	G_OBJECT_CLASS (klass)->finalize = kkc_dbus_candidate_list_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CANDIDATE_LIST_CURSOR_POS_PROPERTY, kkc_dbus_candidate_list_properties[KKC_DBUS_CANDIDATE_LIST_CURSOR_POS_PROPERTY] = g_param_spec_int ("cursor-pos", "cursor-pos", "cursor-pos", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CANDIDATE_LIST_SIZE_PROPERTY, kkc_dbus_candidate_list_properties[KKC_DBUS_CANDIDATE_LIST_SIZE_PROPERTY] = g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CANDIDATE_LIST_PAGE_START_PROPERTY, kkc_dbus_candidate_list_properties[KKC_DBUS_CANDIDATE_LIST_PAGE_START_PROPERTY] = g_param_spec_uint ("page-start", "page-start", "page-start", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CANDIDATE_LIST_PAGE_SIZE_PROPERTY, kkc_dbus_candidate_list_properties[KKC_DBUS_CANDIDATE_LIST_PAGE_SIZE_PROPERTY] = g_param_spec_uint ("page-size", "page-size", "page-size", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CANDIDATE_LIST_ROUND_PROPERTY, kkc_dbus_candidate_list_properties[KKC_DBUS_CANDIDATE_LIST_ROUND_PROPERTY] = g_param_spec_boolean ("round", "round", "round", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CANDIDATE_LIST_PAGE_VISIBLE_PROPERTY, kkc_dbus_candidate_list_properties[KKC_DBUS_CANDIDATE_LIST_PAGE_VISIBLE_PROPERTY] = g_param_spec_boolean ("page-visible", "page-visible", "page-visible", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	kkc_dbus_candidate_list_signals[KKC_DBUS_CANDIDATE_LIST_POPULATED_SIGNAL] = g_signal_new ("populated", KKC_TYPE_DBUS_CANDIDATE_LIST, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	kkc_dbus_candidate_list_signals[KKC_DBUS_CANDIDATE_LIST_SELECTED_SIGNAL] = g_signal_new ("selected", KKC_TYPE_DBUS_CANDIDATE_LIST, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_BOOLEAN_STRING_STRING, G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING);
}


static void kkc_dbus_candidate_list_instance_init (KkcDBusCandidateList * self) {
	self->priv = KKC_DBUS_CANDIDATE_LIST_GET_PRIVATE (self);
	self->priv->register_id = (guint) 0;
}


static void kkc_dbus_candidate_list_finalize (GObject * obj) {
	KkcDBusCandidateList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KKC_TYPE_DBUS_CANDIDATE_LIST, KkcDBusCandidateList);
	kkc_dbus_candidate_list_unregister (self);
	_g_object_unref0 (self->priv->connection);
	_g_free0 (self->priv->object_path);
	_g_object_unref0 (self->priv->candidates);
	G_OBJECT_CLASS (kkc_dbus_candidate_list_parent_class)->finalize (obj);
}


GType kkc_dbus_candidate_list_get_type (void) {
	static volatile gsize kkc_dbus_candidate_list_type_id__volatile = 0;
	if (g_once_init_enter (&kkc_dbus_candidate_list_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (KkcDBusCandidateListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) kkc_dbus_candidate_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KkcDBusCandidateList), 0, (GInstanceInitFunc) kkc_dbus_candidate_list_instance_init, NULL };
		GType kkc_dbus_candidate_list_type_id;
		kkc_dbus_candidate_list_type_id = g_type_register_static (G_TYPE_OBJECT, "KkcDBusCandidateList", &g_define_type_info, 0);
		g_type_set_qdata (kkc_dbus_candidate_list_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) kkc_dbus_candidate_list_register_object);
		g_once_init_leave (&kkc_dbus_candidate_list_type_id__volatile, kkc_dbus_candidate_list_type_id);
	}
	return kkc_dbus_candidate_list_type_id__volatile;
}


static void _vala_kkc_dbus_candidate_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	KkcDBusCandidateList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KKC_TYPE_DBUS_CANDIDATE_LIST, KkcDBusCandidateList);
	switch (property_id) {
		case KKC_DBUS_CANDIDATE_LIST_CURSOR_POS_PROPERTY:
		g_value_set_int (value, kkc_dbus_candidate_list_get_cursor_pos (self));
		break;
		case KKC_DBUS_CANDIDATE_LIST_SIZE_PROPERTY:
		g_value_set_int (value, kkc_dbus_candidate_list_get_size (self));
		break;
		case KKC_DBUS_CANDIDATE_LIST_PAGE_START_PROPERTY:
		g_value_set_uint (value, kkc_dbus_candidate_list_get_page_start (self));
		break;
		case KKC_DBUS_CANDIDATE_LIST_PAGE_SIZE_PROPERTY:
		g_value_set_uint (value, kkc_dbus_candidate_list_get_page_size (self));
		break;
		case KKC_DBUS_CANDIDATE_LIST_ROUND_PROPERTY:
		g_value_set_boolean (value, kkc_dbus_candidate_list_get_round (self));
		break;
		case KKC_DBUS_CANDIDATE_LIST_PAGE_VISIBLE_PROPERTY:
		g_value_set_boolean (value, kkc_dbus_candidate_list_get_page_visible (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _dbus_kkc_dbus_candidate_list_select_at (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	guint index_in_page = 0U;
	GVariant* _tmp0_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp0_ = g_variant_iter_next_value (&_arguments_iter);
	index_in_page = g_variant_get_uint32 (_tmp0_);
	g_variant_unref (_tmp0_);
	result = kkc_dbus_candidate_list_select_at (self, index_in_page, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_candidate_list_select (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	kkc_dbus_candidate_list_select (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_candidate_list_first (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_candidate_list_first (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_candidate_list_next (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_candidate_list_next (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_candidate_list_previous (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_candidate_list_previous (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_candidate_list_cursor_up (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_candidate_list_cursor_up (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_candidate_list_cursor_down (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_candidate_list_cursor_down (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_candidate_list_page_up (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_candidate_list_page_up (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_candidate_list_page_down (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_candidate_list_page_down (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_candidate_list_get (KkcDBusCandidateList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gint index = 0;
	GVariant* _tmp1_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar* midasi = NULL;
	gboolean okuri = FALSE;
	gchar* text = NULL;
	gchar* annotation = NULL;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp1_ = g_variant_iter_next_value (&_arguments_iter);
	index = g_variant_get_int32 (_tmp1_);
	g_variant_unref (_tmp1_);
	kkc_dbus_candidate_list_get (self, index, &midasi, &okuri, &text, &annotation, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (midasi));
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (okuri));
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (text));
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (annotation));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_g_free0 (midasi);
	_g_free0 (text);
	_g_free0 (annotation);
}


static void kkc_dbus_candidate_list_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "SelectAt") == 0) {
		_dbus_kkc_dbus_candidate_list_select_at (object, parameters, invocation);
	} else if (strcmp (method_name, "Select") == 0) {
		_dbus_kkc_dbus_candidate_list_select (object, parameters, invocation);
	} else if (strcmp (method_name, "First") == 0) {
		_dbus_kkc_dbus_candidate_list_first (object, parameters, invocation);
	} else if (strcmp (method_name, "Next") == 0) {
		_dbus_kkc_dbus_candidate_list_next (object, parameters, invocation);
	} else if (strcmp (method_name, "Previous") == 0) {
		_dbus_kkc_dbus_candidate_list_previous (object, parameters, invocation);
	} else if (strcmp (method_name, "CursorUp") == 0) {
		_dbus_kkc_dbus_candidate_list_cursor_up (object, parameters, invocation);
	} else if (strcmp (method_name, "CursorDown") == 0) {
		_dbus_kkc_dbus_candidate_list_cursor_down (object, parameters, invocation);
	} else if (strcmp (method_name, "PageUp") == 0) {
		_dbus_kkc_dbus_candidate_list_page_up (object, parameters, invocation);
	} else if (strcmp (method_name, "PageDown") == 0) {
		_dbus_kkc_dbus_candidate_list_page_down (object, parameters, invocation);
	} else if (strcmp (method_name, "Get") == 0) {
		_dbus_kkc_dbus_candidate_list_get (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}


static GVariant* _dbus_kkc_dbus_candidate_list_get_cursor_pos (KkcDBusCandidateList* self) {
	gint result;
	GVariant* _reply;
	result = kkc_dbus_candidate_list_get_cursor_pos (self);
	_reply = g_variant_new_int32 (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_candidate_list_get_size (KkcDBusCandidateList* self) {
	gint result;
	GVariant* _reply;
	result = kkc_dbus_candidate_list_get_size (self);
	_reply = g_variant_new_int32 (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_candidate_list_get_page_start (KkcDBusCandidateList* self) {
	guint result;
	GVariant* _reply;
	result = kkc_dbus_candidate_list_get_page_start (self);
	_reply = g_variant_new_uint32 (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_candidate_list_get_page_size (KkcDBusCandidateList* self) {
	guint result;
	GVariant* _reply;
	result = kkc_dbus_candidate_list_get_page_size (self);
	_reply = g_variant_new_uint32 (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_candidate_list_get_round (KkcDBusCandidateList* self) {
	gboolean result;
	GVariant* _reply;
	result = kkc_dbus_candidate_list_get_round (self);
	_reply = g_variant_new_boolean (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_candidate_list_get_page_visible (KkcDBusCandidateList* self) {
	gboolean result;
	GVariant* _reply;
	result = kkc_dbus_candidate_list_get_page_visible (self);
	_reply = g_variant_new_boolean (result);
	return _reply;
}


static GVariant* kkc_dbus_candidate_list_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (property_name, "CursorPos") == 0) {
		return _dbus_kkc_dbus_candidate_list_get_cursor_pos (object);
	} else if (strcmp (property_name, "Size") == 0) {
		return _dbus_kkc_dbus_candidate_list_get_size (object);
	} else if (strcmp (property_name, "PageStart") == 0) {
		return _dbus_kkc_dbus_candidate_list_get_page_start (object);
	} else if (strcmp (property_name, "PageSize") == 0) {
		return _dbus_kkc_dbus_candidate_list_get_page_size (object);
	} else if (strcmp (property_name, "Round") == 0) {
		return _dbus_kkc_dbus_candidate_list_get_round (object);
	} else if (strcmp (property_name, "PageVisible") == 0) {
		return _dbus_kkc_dbus_candidate_list_get_page_visible (object);
	}
	return NULL;
}


static gboolean kkc_dbus_candidate_list_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}


static void _dbus_kkc_dbus_candidate_list_populated (GObject* _sender, gpointer* _data) {
	GDBusConnection * _connection;
	const gchar * _path;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_connection = _data[1];
	_path = _data[2];
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_connection_emit_signal (_connection, NULL, _path, "org.du_a.Kkc.CandidateList", "Populated", _arguments, NULL);
}


static void _dbus_kkc_dbus_candidate_list_selected (GObject* _sender, const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, gpointer* _data) {
	GDBusConnection * _connection;
	const gchar * _path;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_connection = _data[1];
	_path = _data[2];
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (midasi));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (okuri));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (text));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (annotation));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_connection_emit_signal (_connection, NULL, _path, "org.du_a.Kkc.CandidateList", "Selected", _arguments, NULL);
}


guint kkc_dbus_candidate_list_register_object (gpointer object, GDBusConnection* connection, const gchar* path, GError** error) {
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_kkc_dbus_candidate_list_dbus_interface_info), &_kkc_dbus_candidate_list_dbus_interface_vtable, data, _kkc_dbus_candidate_list_unregister_object, error);
	if (!result) {
		return 0;
	}
	g_signal_connect (object, "populated", (GCallback) _dbus_kkc_dbus_candidate_list_populated, data);
	g_signal_connect (object, "selected", (GCallback) _dbus_kkc_dbus_candidate_list_selected, data);
	return result;
}


static void _kkc_dbus_candidate_list_unregister_object (gpointer user_data) {
	gpointer* data;
	data = user_data;
	g_signal_handlers_disconnect_by_func (data[0], _dbus_kkc_dbus_candidate_list_populated, data);
	g_signal_handlers_disconnect_by_func (data[0], _dbus_kkc_dbus_candidate_list_selected, data);
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}


static Block12Data* block12_data_ref (Block12Data* _data12_) {
	g_atomic_int_inc (&_data12_->_ref_count_);
	return _data12_;
}


static void block12_data_unref (void * _userdata_) {
	Block12Data* _data12_;
	_data12_ = (Block12Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data12_->_ref_count_)) {
		KkcDBusSegmentList* self;
		self = _data12_->self;
		_g_object_unref0 (_data12_->connection);
		_g_free0 (_data12_->object_path);
		_g_object_unref0 (self);
		g_slice_free (Block12Data, _data12_);
	}
}


static void __lambda22_ (Block12Data* _data12_, GParamSpec* p) {
	KkcDBusSegmentList* self;
	GDBusConnection* _tmp0_;
	const gchar* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GVariant* _tmp4_;
	GVariant* _tmp5_;
	self = _data12_->self;
	g_return_if_fail (p != NULL);
	_tmp0_ = _data12_->connection;
	_tmp1_ = _data12_->object_path;
	_tmp2_ = kkc_dbus_segment_list_get_cursor_pos (self);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_variant_new_int32 ((gint32) _tmp3_);
	g_variant_ref_sink (_tmp4_);
	_tmp5_ = _tmp4_;
	kkc_dbus_utils_send_property_change (_tmp0_, _tmp1_, "org.du_a.Kkc.SegmentList", "CursorPos", _tmp5_);
	_g_variant_unref0 (_tmp5_);
}


static void ___lambda22__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	__lambda22_ (self, pspec);
}


KkcDBusSegmentList* kkc_dbus_segment_list_construct (GType object_type, GDBusConnection* connection, const gchar* object_path, KkcSegmentList* segments) {
	KkcDBusSegmentList * self = NULL;
	Block12Data* _data12_;
	GDBusConnection* _tmp0_;
	GDBusConnection* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	GDBusConnection* _tmp4_;
	GDBusConnection* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	KkcSegmentList* _tmp8_;
	KkcSegmentList* _tmp9_;
	KkcSegmentList* _tmp10_;
	g_return_val_if_fail (connection != NULL, NULL);
	g_return_val_if_fail (object_path != NULL, NULL);
	g_return_val_if_fail (segments != NULL, NULL);
	_data12_ = g_slice_new0 (Block12Data);
	_data12_->_ref_count_ = 1;
	_tmp0_ = connection;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data12_->connection);
	_data12_->connection = _tmp1_;
	_tmp2_ = object_path;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 (_data12_->object_path);
	_data12_->object_path = _tmp3_;
	self = (KkcDBusSegmentList*) g_object_new (object_type, NULL);
	_data12_->self = g_object_ref (self);
	_tmp4_ = _data12_->connection;
	_tmp5_ = _g_object_ref0 (_tmp4_);
	_g_object_unref0 (self->priv->connection);
	self->priv->connection = _tmp5_;
	_tmp6_ = _data12_->object_path;
	_tmp7_ = g_strdup (_tmp6_);
	_g_free0 (self->priv->object_path);
	self->priv->object_path = _tmp7_;
	_tmp8_ = segments;
	_tmp9_ = _g_object_ref0 (_tmp8_);
	_g_object_unref0 (self->priv->segments);
	self->priv->segments = _tmp9_;
	_tmp10_ = self->priv->segments;
	g_signal_connect_data ((GObject*) _tmp10_, "notify::cursor-pos", (GCallback) ___lambda22__g_object_notify, block12_data_ref (_data12_), (GClosureNotify) block12_data_unref, 0);
	kkc_dbus_segment_list_register (self);
	block12_data_unref (_data12_);
	_data12_ = NULL;
	return self;
}


KkcDBusSegmentList* kkc_dbus_segment_list_new (GDBusConnection* connection, const gchar* object_path, KkcSegmentList* segments) {
	return kkc_dbus_segment_list_construct (KKC_TYPE_DBUS_SEGMENT_LIST, connection, object_path, segments);
}


void kkc_dbus_segment_list_get (KkcDBusSegmentList* self, gint index, gchar* * input, gchar* * output, GError** error) {
	gchar* _vala_input = NULL;
	gchar* _vala_output = NULL;
	KkcSegment* segment = NULL;
	KkcSegmentList* _tmp0_;
	gint _tmp1_;
	KkcSegment* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	gchar* _tmp8_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->segments;
	_tmp1_ = index;
	_tmp2_ = kkc_segment_list_get (_tmp0_, _tmp1_);
	segment = _tmp2_;
	_tmp3_ = kkc_segment_get_input (segment);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_strdup (_tmp4_);
	_g_free0 (_vala_input);
	_vala_input = _tmp5_;
	_tmp6_ = kkc_segment_get_output (segment);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strdup (_tmp7_);
	_g_free0 (_vala_output);
	_vala_output = _tmp8_;
	_g_object_unref0 (segment);
	if (input) {
		*input = _vala_input;
	} else {
		_g_free0 (_vala_input);
	}
	if (output) {
		*output = _vala_output;
	} else {
		_g_free0 (_vala_output);
	}
}


gboolean kkc_dbus_segment_list_first_segment (KkcDBusSegmentList* self, GError** error) {
	gboolean result = FALSE;
	KkcSegmentList* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->segments;
	_tmp1_ = kkc_segment_list_first_segment (_tmp0_);
	result = _tmp1_;
	return result;
}


gboolean kkc_dbus_segment_list_last_segment (KkcDBusSegmentList* self, GError** error) {
	gboolean result = FALSE;
	KkcSegmentList* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->segments;
	_tmp1_ = kkc_segment_list_last_segment (_tmp0_);
	result = _tmp1_;
	return result;
}


void kkc_dbus_segment_list_next_segment (KkcDBusSegmentList* self, GError** error) {
	KkcSegmentList* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->segments;
	kkc_segment_list_next_segment (_tmp0_);
}


void kkc_dbus_segment_list_previous_segment (KkcDBusSegmentList* self, GError** error) {
	KkcSegmentList* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->segments;
	kkc_segment_list_previous_segment (_tmp0_);
}


gchar* kkc_dbus_segment_list_get_output (KkcDBusSegmentList* self, GError** error) {
	gchar* result = NULL;
	KkcSegmentList* _tmp0_;
	gchar* _tmp1_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->segments;
	_tmp1_ = kkc_segment_list_get_output (_tmp0_);
	result = _tmp1_;
	return result;
}


gchar* kkc_dbus_segment_list_get_input (KkcDBusSegmentList* self, GError** error) {
	gchar* result = NULL;
	KkcSegmentList* _tmp0_;
	gchar* _tmp1_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->segments;
	_tmp1_ = kkc_segment_list_get_input (_tmp0_);
	result = _tmp1_;
	return result;
}


static void kkc_dbus_segment_list_register (KkcDBusSegmentList* self) {
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	{
		guint _tmp0_ = 0U;
		GDBusConnection* _tmp1_;
		const gchar* _tmp2_;
		guint _tmp3_;
		_tmp1_ = self->priv->connection;
		_tmp2_ = self->priv->object_path;
		_tmp3_ = kkc_dbus_segment_list_register_object (self, _tmp1_, _tmp2_, &_inner_error_);
		_tmp0_ = _tmp3_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_IO_ERROR) {
				goto __catch27_g_io_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
		self->priv->register_id = _tmp0_;
	}
	goto __finally27;
	__catch27_g_io_error:
	{
		GError* e = NULL;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		e = _inner_error_;
		_inner_error_ = NULL;
		_tmp4_ = self->priv->object_path;
		_tmp5_ = e->message;
		g_error ("server.vala:274: Could not register D-Bus object at %s: %s", _tmp4_, _tmp5_);
		_g_error_free0 (e);
	}
	__finally27:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
}


void kkc_dbus_segment_list_unregister (KkcDBusSegmentList* self) {
	guint _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->register_id;
	if (_tmp0_ > ((guint) 0)) {
		GDBusConnection* _tmp1_;
		guint _tmp2_;
		_tmp1_ = self->priv->connection;
		_tmp2_ = self->priv->register_id;
		g_dbus_connection_unregister_object (_tmp1_, _tmp2_);
		self->priv->register_id = (guint) 0;
	}
}


gint kkc_dbus_segment_list_get_cursor_pos (KkcDBusSegmentList* self) {
	gint result;
	KkcSegmentList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->segments;
	_tmp1_ = kkc_segment_list_get_cursor_pos (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


gint kkc_dbus_segment_list_get_size (KkcDBusSegmentList* self) {
	gint result;
	KkcSegmentList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->segments;
	_tmp1_ = kkc_segment_list_get_size (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


static void kkc_dbus_segment_list_class_init (KkcDBusSegmentListClass * klass) {
	kkc_dbus_segment_list_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (KkcDBusSegmentListPrivate));
	G_OBJECT_CLASS (klass)->get_property = _vala_kkc_dbus_segment_list_get_property;
	G_OBJECT_CLASS (klass)->finalize = kkc_dbus_segment_list_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_SEGMENT_LIST_CURSOR_POS_PROPERTY, kkc_dbus_segment_list_properties[KKC_DBUS_SEGMENT_LIST_CURSOR_POS_PROPERTY] = g_param_spec_int ("cursor-pos", "cursor-pos", "cursor-pos", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_SEGMENT_LIST_SIZE_PROPERTY, kkc_dbus_segment_list_properties[KKC_DBUS_SEGMENT_LIST_SIZE_PROPERTY] = g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
}


static void kkc_dbus_segment_list_instance_init (KkcDBusSegmentList * self) {
	self->priv = KKC_DBUS_SEGMENT_LIST_GET_PRIVATE (self);
	self->priv->register_id = (guint) 0;
}


static void kkc_dbus_segment_list_finalize (GObject * obj) {
	KkcDBusSegmentList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KKC_TYPE_DBUS_SEGMENT_LIST, KkcDBusSegmentList);
	kkc_dbus_segment_list_unregister (self);
	_g_object_unref0 (self->priv->connection);
	_g_free0 (self->priv->object_path);
	_g_object_unref0 (self->priv->segments);
	G_OBJECT_CLASS (kkc_dbus_segment_list_parent_class)->finalize (obj);
}


GType kkc_dbus_segment_list_get_type (void) {
	static volatile gsize kkc_dbus_segment_list_type_id__volatile = 0;
	if (g_once_init_enter (&kkc_dbus_segment_list_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (KkcDBusSegmentListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) kkc_dbus_segment_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KkcDBusSegmentList), 0, (GInstanceInitFunc) kkc_dbus_segment_list_instance_init, NULL };
		GType kkc_dbus_segment_list_type_id;
		kkc_dbus_segment_list_type_id = g_type_register_static (G_TYPE_OBJECT, "KkcDBusSegmentList", &g_define_type_info, 0);
		g_type_set_qdata (kkc_dbus_segment_list_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) kkc_dbus_segment_list_register_object);
		g_once_init_leave (&kkc_dbus_segment_list_type_id__volatile, kkc_dbus_segment_list_type_id);
	}
	return kkc_dbus_segment_list_type_id__volatile;
}


static void _vala_kkc_dbus_segment_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	KkcDBusSegmentList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KKC_TYPE_DBUS_SEGMENT_LIST, KkcDBusSegmentList);
	switch (property_id) {
		case KKC_DBUS_SEGMENT_LIST_CURSOR_POS_PROPERTY:
		g_value_set_int (value, kkc_dbus_segment_list_get_cursor_pos (self));
		break;
		case KKC_DBUS_SEGMENT_LIST_SIZE_PROPERTY:
		g_value_set_int (value, kkc_dbus_segment_list_get_size (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _dbus_kkc_dbus_segment_list_get (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gint index = 0;
	GVariant* _tmp2_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar* input = NULL;
	gchar* output = NULL;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp2_ = g_variant_iter_next_value (&_arguments_iter);
	index = g_variant_get_int32 (_tmp2_);
	g_variant_unref (_tmp2_);
	kkc_dbus_segment_list_get (self, index, &input, &output, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (input));
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (output));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_g_free0 (input);
	_g_free0 (output);
}


static void _dbus_kkc_dbus_segment_list_first_segment (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_segment_list_first_segment (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_segment_list_last_segment (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_segment_list_last_segment (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_segment_list_next_segment (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	kkc_dbus_segment_list_next_segment (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_segment_list_previous_segment (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	kkc_dbus_segment_list_previous_segment (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_segment_list_get_output (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar* result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_segment_list_get_output (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (result));
	_g_free0 (result);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_segment_list_get_input (KkcDBusSegmentList* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar* result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_segment_list_get_input (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (result));
	_g_free0 (result);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void kkc_dbus_segment_list_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "Get") == 0) {
		_dbus_kkc_dbus_segment_list_get (object, parameters, invocation);
	} else if (strcmp (method_name, "FirstSegment") == 0) {
		_dbus_kkc_dbus_segment_list_first_segment (object, parameters, invocation);
	} else if (strcmp (method_name, "LastSegment") == 0) {
		_dbus_kkc_dbus_segment_list_last_segment (object, parameters, invocation);
	} else if (strcmp (method_name, "NextSegment") == 0) {
		_dbus_kkc_dbus_segment_list_next_segment (object, parameters, invocation);
	} else if (strcmp (method_name, "PreviousSegment") == 0) {
		_dbus_kkc_dbus_segment_list_previous_segment (object, parameters, invocation);
	} else if (strcmp (method_name, "GetOutput") == 0) {
		_dbus_kkc_dbus_segment_list_get_output (object, parameters, invocation);
	} else if (strcmp (method_name, "GetInput") == 0) {
		_dbus_kkc_dbus_segment_list_get_input (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}


static GVariant* _dbus_kkc_dbus_segment_list_get_cursor_pos (KkcDBusSegmentList* self) {
	gint result;
	GVariant* _reply;
	result = kkc_dbus_segment_list_get_cursor_pos (self);
	_reply = g_variant_new_int32 (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_segment_list_get_size (KkcDBusSegmentList* self) {
	gint result;
	GVariant* _reply;
	result = kkc_dbus_segment_list_get_size (self);
	_reply = g_variant_new_int32 (result);
	return _reply;
}


static GVariant* kkc_dbus_segment_list_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (property_name, "CursorPos") == 0) {
		return _dbus_kkc_dbus_segment_list_get_cursor_pos (object);
	} else if (strcmp (property_name, "Size") == 0) {
		return _dbus_kkc_dbus_segment_list_get_size (object);
	}
	return NULL;
}


static gboolean kkc_dbus_segment_list_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}


guint kkc_dbus_segment_list_register_object (gpointer object, GDBusConnection* connection, const gchar* path, GError** error) {
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_kkc_dbus_segment_list_dbus_interface_info), &_kkc_dbus_segment_list_dbus_interface_vtable, data, _kkc_dbus_segment_list_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}


static void _kkc_dbus_segment_list_unregister_object (gpointer user_data) {
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}


static Block13Data* block13_data_ref (Block13Data* _data13_) {
	g_atomic_int_inc (&_data13_->_ref_count_);
	return _data13_;
}


static void block13_data_unref (void * _userdata_) {
	Block13Data* _data13_;
	_data13_ = (Block13Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data13_->_ref_count_)) {
		KkcDBusContext* self;
		self = _data13_->self;
		_g_object_unref0 (_data13_->connection);
		_g_free0 (_data13_->object_path);
		_g_object_unref0 (self);
		g_slice_free (Block13Data, _data13_);
	}
}


static void __lambda23_ (Block13Data* _data13_, GParamSpec* p) {
	KkcDBusContext* self;
	GDBusConnection* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GVariant* _tmp5_;
	GVariant* _tmp6_;
	self = _data13_->self;
	g_return_if_fail (p != NULL);
	_tmp0_ = _data13_->connection;
	_tmp1_ = _data13_->object_path;
	_tmp2_ = kkc_dbus_context_get_input (self);
	_tmp3_ = _tmp2_;
	_tmp4_ = _tmp3_;
	_tmp5_ = g_variant_new_string (_tmp4_);
	g_variant_ref_sink (_tmp5_);
	_tmp6_ = _tmp5_;
	kkc_dbus_utils_send_property_change (_tmp0_, _tmp1_, "org.du_a.Kkc.Context", "Input", _tmp6_);
	_g_variant_unref0 (_tmp6_);
	_g_free0 (_tmp4_);
}


static void ___lambda23__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	__lambda23_ (self, pspec);
}


static void __lambda24_ (Block13Data* _data13_, GParamSpec* p) {
	KkcDBusContext* self;
	GDBusConnection* _tmp0_;
	const gchar* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GVariant* _tmp4_;
	GVariant* _tmp5_;
	self = _data13_->self;
	g_return_if_fail (p != NULL);
	_tmp0_ = _data13_->connection;
	_tmp1_ = _data13_->object_path;
	_tmp2_ = kkc_dbus_context_get_input_cursor_pos (self);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_variant_new_int32 ((gint32) _tmp3_);
	g_variant_ref_sink (_tmp4_);
	_tmp5_ = _tmp4_;
	kkc_dbus_utils_send_property_change (_tmp0_, _tmp1_, "org.du_a.Kkc.Context", "InputCursorPos", _tmp5_);
	_g_variant_unref0 (_tmp5_);
}


static void ___lambda24__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	__lambda24_ (self, pspec);
}


KkcDBusContext* kkc_dbus_context_construct (GType object_type, GDBusConnection* connection, const gchar* object_path, KkcContext* context) {
	KkcDBusContext * self = NULL;
	Block13Data* _data13_;
	GDBusConnection* _tmp0_;
	GDBusConnection* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	GDBusConnection* _tmp4_;
	GDBusConnection* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	KkcContext* _tmp8_;
	KkcContext* _tmp9_;
	GDBusConnection* _tmp10_;
	const gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	KkcContext* _tmp14_;
	KkcCandidateList* _tmp15_;
	KkcCandidateList* _tmp16_;
	KkcDBusCandidateList* _tmp17_;
	GDBusConnection* _tmp18_;
	const gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	KkcContext* _tmp22_;
	KkcSegmentList* _tmp23_;
	KkcSegmentList* _tmp24_;
	KkcDBusSegmentList* _tmp25_;
	KkcContext* _tmp26_;
	KkcContext* _tmp27_;
	g_return_val_if_fail (connection != NULL, NULL);
	g_return_val_if_fail (object_path != NULL, NULL);
	g_return_val_if_fail (context != NULL, NULL);
	_data13_ = g_slice_new0 (Block13Data);
	_data13_->_ref_count_ = 1;
	_tmp0_ = connection;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data13_->connection);
	_data13_->connection = _tmp1_;
	_tmp2_ = object_path;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 (_data13_->object_path);
	_data13_->object_path = _tmp3_;
	self = (KkcDBusContext*) g_object_new (object_type, NULL);
	_data13_->self = g_object_ref (self);
	_tmp4_ = _data13_->connection;
	_tmp5_ = _g_object_ref0 (_tmp4_);
	_g_object_unref0 (self->priv->connection);
	self->priv->connection = _tmp5_;
	_tmp6_ = _data13_->object_path;
	_tmp7_ = g_strdup (_tmp6_);
	_g_free0 (self->priv->object_path);
	self->priv->object_path = _tmp7_;
	_tmp8_ = context;
	_tmp9_ = _g_object_ref0 (_tmp8_);
	_g_object_unref0 (self->priv->context);
	self->priv->context = _tmp9_;
	_tmp10_ = _data13_->connection;
	_tmp11_ = _data13_->object_path;
	_tmp12_ = g_strdup_printf ("%s/CandidateList", _tmp11_);
	_tmp13_ = _tmp12_;
	_tmp14_ = context;
	_tmp15_ = kkc_context_get_candidates (_tmp14_);
	_tmp16_ = _tmp15_;
	_tmp17_ = kkc_dbus_candidate_list_new (_tmp10_, _tmp13_, _tmp16_);
	_g_object_unref0 (self->priv->candidates);
	self->priv->candidates = _tmp17_;
	_g_free0 (_tmp13_);
	_tmp18_ = _data13_->connection;
	_tmp19_ = _data13_->object_path;
	_tmp20_ = g_strdup_printf ("%s/SegmentList", _tmp19_);
	_tmp21_ = _tmp20_;
	_tmp22_ = context;
	_tmp23_ = kkc_context_get_segments (_tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = kkc_dbus_segment_list_new (_tmp18_, _tmp21_, _tmp24_);
	_g_object_unref0 (self->priv->segments);
	self->priv->segments = _tmp25_;
	_g_free0 (_tmp21_);
	_tmp26_ = context;
	g_signal_connect_data ((GObject*) _tmp26_, "notify::input", (GCallback) ___lambda23__g_object_notify, block13_data_ref (_data13_), (GClosureNotify) block13_data_unref, 0);
	_tmp27_ = context;
	g_signal_connect_data ((GObject*) _tmp27_, "notify::input_cursor_pos", (GCallback) ___lambda24__g_object_notify, block13_data_ref (_data13_), (GClosureNotify) block13_data_unref, 0);
	kkc_dbus_context_register (self);
	block13_data_unref (_data13_);
	_data13_ = NULL;
	return self;
}


KkcDBusContext* kkc_dbus_context_new (GDBusConnection* connection, const gchar* object_path, KkcContext* context) {
	return kkc_dbus_context_construct (KKC_TYPE_DBUS_CONTEXT, connection, object_path, context);
}


gboolean kkc_dbus_context_process_key_event (KkcDBusContext* self, guint keyval, guint keycode, guint modifiers, GError** error) {
	gboolean result = FALSE;
	KkcKeyEvent* event = NULL;
	guint _tmp0_;
	guint _tmp1_;
	guint _tmp2_;
	KkcKeyEvent* _tmp3_;
	KkcContext* _tmp4_;
	gboolean _tmp5_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = keyval;
	_tmp1_ = keycode;
	_tmp2_ = modifiers;
	_tmp3_ = kkc_key_event_new (_tmp0_, _tmp1_, (KkcModifierType) _tmp2_);
	event = _tmp3_;
	_tmp4_ = self->priv->context;
	_tmp5_ = kkc_context_process_key_event (_tmp4_, event);
	result = _tmp5_;
	_g_object_unref0 (event);
	return result;
}


gboolean kkc_dbus_context_process_command_event (KkcDBusContext* self, const gchar* command, GError** error) {
	gboolean result = FALSE;
	KkcContext* _tmp0_;
	const gchar* _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (command != NULL, FALSE);
	_tmp0_ = self->priv->context;
	_tmp1_ = command;
	_tmp2_ = kkc_context_process_command_event (_tmp0_, _tmp1_);
	result = _tmp2_;
	return result;
}


void kkc_dbus_context_reset (KkcDBusContext* self, GError** error) {
	KkcContext* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->context;
	kkc_context_reset (_tmp0_);
}


gboolean kkc_dbus_context_has_output (KkcDBusContext* self, GError** error) {
	gboolean result = FALSE;
	KkcContext* _tmp0_;
	gboolean _tmp1_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->context;
	_tmp1_ = kkc_context_has_output (_tmp0_);
	result = _tmp1_;
	return result;
}


gchar* kkc_dbus_context_peek_output (KkcDBusContext* self, GError** error) {
	gchar* result = NULL;
	KkcContext* _tmp0_;
	gchar* _tmp1_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->context;
	_tmp1_ = kkc_context_peek_output (_tmp0_);
	result = _tmp1_;
	return result;
}


gchar* kkc_dbus_context_poll_output (KkcDBusContext* self, GError** error) {
	gchar* result = NULL;
	KkcContext* _tmp0_;
	gchar* _tmp1_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->context;
	_tmp1_ = kkc_context_poll_output (_tmp0_);
	result = _tmp1_;
	return result;
}


void kkc_dbus_context_clear_output (KkcDBusContext* self, GError** error) {
	KkcContext* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->context;
	kkc_context_clear_output (_tmp0_);
}


static void kkc_dbus_context_register (KkcDBusContext* self) {
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	{
		guint _tmp0_ = 0U;
		GDBusConnection* _tmp1_;
		const gchar* _tmp2_;
		guint _tmp3_;
		_tmp1_ = self->priv->connection;
		_tmp2_ = self->priv->object_path;
		_tmp3_ = kkc_dbus_context_register_object (self, _tmp1_, _tmp2_, &_inner_error_);
		_tmp0_ = _tmp3_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_IO_ERROR) {
				goto __catch28_g_io_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
		self->priv->register_id = _tmp0_;
	}
	goto __finally28;
	__catch28_g_io_error:
	{
		GError* e = NULL;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		e = _inner_error_;
		_inner_error_ = NULL;
		_tmp4_ = self->priv->object_path;
		_tmp5_ = e->message;
		g_error ("server.vala:411: Could not register D-Bus object at %s: %s", _tmp4_, _tmp5_);
		_g_error_free0 (e);
	}
	__finally28:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
}


void kkc_dbus_context_unregister (KkcDBusContext* self) {
	guint _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->register_id;
	if (_tmp0_ > ((guint) 0)) {
		GDBusConnection* _tmp1_;
		guint _tmp2_;
		KkcDBusCandidateList* _tmp3_;
		KkcDBusSegmentList* _tmp4_;
		_tmp1_ = self->priv->connection;
		_tmp2_ = self->priv->register_id;
		g_dbus_connection_unregister_object (_tmp1_, _tmp2_);
		_tmp3_ = self->priv->candidates;
		kkc_dbus_candidate_list_unregister (_tmp3_);
		_tmp4_ = self->priv->segments;
		kkc_dbus_segment_list_unregister (_tmp4_);
		self->priv->register_id = (guint) 0;
	}
}


gchar* kkc_dbus_context_get_input (KkcDBusContext* self) {
	gchar* result;
	KkcContext* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->context;
	_tmp1_ = kkc_context_get_input (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


gint kkc_dbus_context_get_input_cursor_pos (KkcDBusContext* self) {
	gint result;
	KkcContext* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->context;
	_tmp1_ = kkc_context_get_input_cursor_pos (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


guint kkc_dbus_context_get_input_mode (KkcDBusContext* self) {
	guint result;
	KkcContext* _tmp0_;
	KkcInputMode _tmp1_;
	KkcInputMode _tmp2_;
	g_return_val_if_fail (self != NULL, 0U);
	_tmp0_ = self->priv->context;
	_tmp1_ = kkc_context_get_input_mode (_tmp0_);
	_tmp2_ = _tmp1_;
	result = (guint) _tmp2_;
	return result;
}


void kkc_dbus_context_set_input_mode (KkcDBusContext* self, guint value) {
	KkcContext* _tmp0_;
	guint _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->context;
	_tmp1_ = value;
	kkc_context_set_input_mode (_tmp0_, (KkcInputMode) _tmp1_);
	g_object_notify_by_pspec ((GObject *) self, kkc_dbus_context_properties[KKC_DBUS_CONTEXT_INPUT_MODE_PROPERTY]);
}


guint kkc_dbus_context_get_punctuation_style (KkcDBusContext* self) {
	guint result;
	KkcContext* _tmp0_;
	KkcPunctuationStyle _tmp1_;
	KkcPunctuationStyle _tmp2_;
	g_return_val_if_fail (self != NULL, 0U);
	_tmp0_ = self->priv->context;
	_tmp1_ = kkc_context_get_punctuation_style (_tmp0_);
	_tmp2_ = _tmp1_;
	result = (guint) _tmp2_;
	return result;
}


void kkc_dbus_context_set_punctuation_style (KkcDBusContext* self, guint value) {
	KkcContext* _tmp0_;
	guint _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->context;
	_tmp1_ = value;
	kkc_context_set_punctuation_style (_tmp0_, (KkcPunctuationStyle) _tmp1_);
	g_object_notify_by_pspec ((GObject *) self, kkc_dbus_context_properties[KKC_DBUS_CONTEXT_PUNCTUATION_STYLE_PROPERTY]);
}


gboolean kkc_dbus_context_get_auto_correct (KkcDBusContext* self) {
	gboolean result;
	KkcContext* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->context;
	_tmp1_ = kkc_context_get_auto_correct (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}


void kkc_dbus_context_set_auto_correct (KkcDBusContext* self, gboolean value) {
	KkcContext* _tmp0_;
	gboolean _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->context;
	_tmp1_ = value;
	kkc_context_set_auto_correct (_tmp0_, _tmp1_);
	g_object_notify_by_pspec ((GObject *) self, kkc_dbus_context_properties[KKC_DBUS_CONTEXT_AUTO_CORRECT_PROPERTY]);
}


static void kkc_dbus_context_class_init (KkcDBusContextClass * klass) {
	kkc_dbus_context_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (KkcDBusContextPrivate));
	G_OBJECT_CLASS (klass)->get_property = _vala_kkc_dbus_context_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_kkc_dbus_context_set_property;
	G_OBJECT_CLASS (klass)->finalize = kkc_dbus_context_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CONTEXT_INPUT_PROPERTY, kkc_dbus_context_properties[KKC_DBUS_CONTEXT_INPUT_PROPERTY] = g_param_spec_string ("input", "input", "input", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CONTEXT_INPUT_CURSOR_POS_PROPERTY, kkc_dbus_context_properties[KKC_DBUS_CONTEXT_INPUT_CURSOR_POS_PROPERTY] = g_param_spec_int ("input-cursor-pos", "input-cursor-pos", "input-cursor-pos", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CONTEXT_INPUT_MODE_PROPERTY, kkc_dbus_context_properties[KKC_DBUS_CONTEXT_INPUT_MODE_PROPERTY] = g_param_spec_uint ("input-mode", "input-mode", "input-mode", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CONTEXT_PUNCTUATION_STYLE_PROPERTY, kkc_dbus_context_properties[KKC_DBUS_CONTEXT_PUNCTUATION_STYLE_PROPERTY] = g_param_spec_uint ("punctuation-style", "punctuation-style", "punctuation-style", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KKC_DBUS_CONTEXT_AUTO_CORRECT_PROPERTY, kkc_dbus_context_properties[KKC_DBUS_CONTEXT_AUTO_CORRECT_PROPERTY] = g_param_spec_boolean ("auto-correct", "auto-correct", "auto-correct", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}


static void kkc_dbus_context_instance_init (KkcDBusContext * self) {
	self->priv = KKC_DBUS_CONTEXT_GET_PRIVATE (self);
	self->priv->register_id = (guint) 0;
}


static void kkc_dbus_context_finalize (GObject * obj) {
	KkcDBusContext * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KKC_TYPE_DBUS_CONTEXT, KkcDBusContext);
	kkc_dbus_context_unregister (self);
	_g_object_unref0 (self->priv->connection);
	_g_free0 (self->priv->object_path);
	_g_object_unref0 (self->priv->context);
	_g_object_unref0 (self->priv->candidates);
	_g_object_unref0 (self->priv->segments);
	G_OBJECT_CLASS (kkc_dbus_context_parent_class)->finalize (obj);
}


GType kkc_dbus_context_get_type (void) {
	static volatile gsize kkc_dbus_context_type_id__volatile = 0;
	if (g_once_init_enter (&kkc_dbus_context_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (KkcDBusContextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) kkc_dbus_context_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KkcDBusContext), 0, (GInstanceInitFunc) kkc_dbus_context_instance_init, NULL };
		GType kkc_dbus_context_type_id;
		kkc_dbus_context_type_id = g_type_register_static (G_TYPE_OBJECT, "KkcDBusContext", &g_define_type_info, 0);
		g_type_set_qdata (kkc_dbus_context_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) kkc_dbus_context_register_object);
		g_once_init_leave (&kkc_dbus_context_type_id__volatile, kkc_dbus_context_type_id);
	}
	return kkc_dbus_context_type_id__volatile;
}


static void _vala_kkc_dbus_context_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	KkcDBusContext * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KKC_TYPE_DBUS_CONTEXT, KkcDBusContext);
	switch (property_id) {
		case KKC_DBUS_CONTEXT_INPUT_PROPERTY:
		g_value_take_string (value, kkc_dbus_context_get_input (self));
		break;
		case KKC_DBUS_CONTEXT_INPUT_CURSOR_POS_PROPERTY:
		g_value_set_int (value, kkc_dbus_context_get_input_cursor_pos (self));
		break;
		case KKC_DBUS_CONTEXT_INPUT_MODE_PROPERTY:
		g_value_set_uint (value, kkc_dbus_context_get_input_mode (self));
		break;
		case KKC_DBUS_CONTEXT_PUNCTUATION_STYLE_PROPERTY:
		g_value_set_uint (value, kkc_dbus_context_get_punctuation_style (self));
		break;
		case KKC_DBUS_CONTEXT_AUTO_CORRECT_PROPERTY:
		g_value_set_boolean (value, kkc_dbus_context_get_auto_correct (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_kkc_dbus_context_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	KkcDBusContext * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, KKC_TYPE_DBUS_CONTEXT, KkcDBusContext);
	switch (property_id) {
		case KKC_DBUS_CONTEXT_INPUT_MODE_PROPERTY:
		kkc_dbus_context_set_input_mode (self, g_value_get_uint (value));
		break;
		case KKC_DBUS_CONTEXT_PUNCTUATION_STYLE_PROPERTY:
		kkc_dbus_context_set_punctuation_style (self, g_value_get_uint (value));
		break;
		case KKC_DBUS_CONTEXT_AUTO_CORRECT_PROPERTY:
		kkc_dbus_context_set_auto_correct (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _dbus_kkc_dbus_context_process_key_event (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	guint keyval = 0U;
	GVariant* _tmp3_;
	guint keycode = 0U;
	GVariant* _tmp4_;
	guint modifiers = 0U;
	GVariant* _tmp5_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp3_ = g_variant_iter_next_value (&_arguments_iter);
	keyval = g_variant_get_uint32 (_tmp3_);
	g_variant_unref (_tmp3_);
	_tmp4_ = g_variant_iter_next_value (&_arguments_iter);
	keycode = g_variant_get_uint32 (_tmp4_);
	g_variant_unref (_tmp4_);
	_tmp5_ = g_variant_iter_next_value (&_arguments_iter);
	modifiers = g_variant_get_uint32 (_tmp5_);
	g_variant_unref (_tmp5_);
	result = kkc_dbus_context_process_key_event (self, keyval, keycode, modifiers, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_context_process_command_event (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gchar* command = NULL;
	GVariant* _tmp6_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp6_ = g_variant_iter_next_value (&_arguments_iter);
	command = g_variant_dup_string (_tmp6_, NULL);
	g_variant_unref (_tmp6_);
	result = kkc_dbus_context_process_command_event (self, command, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_g_free0 (command);
}


static void _dbus_kkc_dbus_context_reset (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	kkc_dbus_context_reset (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_context_has_output (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_context_has_output (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_context_peek_output (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar* result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_context_peek_output (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (result));
	_g_free0 (result);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_context_poll_output (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar* result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_context_poll_output (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (result));
	_g_free0 (result);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_context_clear_output (KkcDBusContext* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	kkc_dbus_context_clear_output (self, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void kkc_dbus_context_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "ProcessKeyEvent") == 0) {
		_dbus_kkc_dbus_context_process_key_event (object, parameters, invocation);
	} else if (strcmp (method_name, "ProcessCommandEvent") == 0) {
		_dbus_kkc_dbus_context_process_command_event (object, parameters, invocation);
	} else if (strcmp (method_name, "Reset") == 0) {
		_dbus_kkc_dbus_context_reset (object, parameters, invocation);
	} else if (strcmp (method_name, "HasOutput") == 0) {
		_dbus_kkc_dbus_context_has_output (object, parameters, invocation);
	} else if (strcmp (method_name, "PeekOutput") == 0) {
		_dbus_kkc_dbus_context_peek_output (object, parameters, invocation);
	} else if (strcmp (method_name, "PollOutput") == 0) {
		_dbus_kkc_dbus_context_poll_output (object, parameters, invocation);
	} else if (strcmp (method_name, "ClearOutput") == 0) {
		_dbus_kkc_dbus_context_clear_output (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}


static GVariant* _dbus_kkc_dbus_context_get_input (KkcDBusContext* self) {
	gchar* result;
	GVariant* _reply;
	result = kkc_dbus_context_get_input (self);
	_reply = g_variant_new_string (result);
	_g_free0 (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_context_get_input_cursor_pos (KkcDBusContext* self) {
	gint result;
	GVariant* _reply;
	result = kkc_dbus_context_get_input_cursor_pos (self);
	_reply = g_variant_new_int32 (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_context_get_input_mode (KkcDBusContext* self) {
	guint result;
	GVariant* _reply;
	result = kkc_dbus_context_get_input_mode (self);
	_reply = g_variant_new_uint32 (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_context_get_punctuation_style (KkcDBusContext* self) {
	guint result;
	GVariant* _reply;
	result = kkc_dbus_context_get_punctuation_style (self);
	_reply = g_variant_new_uint32 (result);
	return _reply;
}


static GVariant* _dbus_kkc_dbus_context_get_auto_correct (KkcDBusContext* self) {
	gboolean result;
	GVariant* _reply;
	result = kkc_dbus_context_get_auto_correct (self);
	_reply = g_variant_new_boolean (result);
	return _reply;
}


static GVariant* kkc_dbus_context_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (property_name, "Input") == 0) {
		return _dbus_kkc_dbus_context_get_input (object);
	} else if (strcmp (property_name, "InputCursorPos") == 0) {
		return _dbus_kkc_dbus_context_get_input_cursor_pos (object);
	} else if (strcmp (property_name, "InputMode") == 0) {
		return _dbus_kkc_dbus_context_get_input_mode (object);
	} else if (strcmp (property_name, "PunctuationStyle") == 0) {
		return _dbus_kkc_dbus_context_get_punctuation_style (object);
	} else if (strcmp (property_name, "AutoCorrect") == 0) {
		return _dbus_kkc_dbus_context_get_auto_correct (object);
	}
	return NULL;
}


static void _dbus_kkc_dbus_context_set_input_mode (KkcDBusContext* self, GVariant* _value) {
	guint value = 0U;
	value = g_variant_get_uint32 (_value);
	kkc_dbus_context_set_input_mode (self, value);
}


static void _dbus_kkc_dbus_context_set_punctuation_style (KkcDBusContext* self, GVariant* _value) {
	guint value = 0U;
	value = g_variant_get_uint32 (_value);
	kkc_dbus_context_set_punctuation_style (self, value);
}


static void _dbus_kkc_dbus_context_set_auto_correct (KkcDBusContext* self, GVariant* _value) {
	gboolean value = FALSE;
	value = g_variant_get_boolean (_value);
	kkc_dbus_context_set_auto_correct (self, value);
}


static gboolean kkc_dbus_context_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (property_name, "InputMode") == 0) {
		_dbus_kkc_dbus_context_set_input_mode (object, value);
		return TRUE;
	} else if (strcmp (property_name, "PunctuationStyle") == 0) {
		_dbus_kkc_dbus_context_set_punctuation_style (object, value);
		return TRUE;
	} else if (strcmp (property_name, "AutoCorrect") == 0) {
		_dbus_kkc_dbus_context_set_auto_correct (object, value);
		return TRUE;
	}
	return FALSE;
}


guint kkc_dbus_context_register_object (gpointer object, GDBusConnection* connection, const gchar* path, GError** error) {
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_kkc_dbus_context_dbus_interface_info), &_kkc_dbus_context_dbus_interface_vtable, data, _kkc_dbus_context_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}


static void _kkc_dbus_context_unregister_object (gpointer user_data) {
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}


static void _kkc_dbus_server_on_name_acquired_gbus_name_acquired_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
	kkc_dbus_server_on_name_acquired ((KkcDBusServer*) self, connection, name);
}


static void _kkc_dbus_server_on_name_lost_gbus_name_lost_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
	kkc_dbus_server_on_name_lost ((KkcDBusServer*) self, connection, name);
}


KkcDBusServer* kkc_dbus_server_construct (GType object_type, GDBusConnection* connection, KkcLanguageModel* model, KkcDictionaryList* dictionaries, KkcRule* typing_rule) {
	KkcDBusServer * self = NULL;
	GDBusConnection* _tmp0_;
	GDBusConnection* _tmp1_;
	KkcLanguageModel* _tmp2_;
	KkcLanguageModel* _tmp3_;
	KkcDictionaryList* _tmp4_;
	KkcDictionaryList* _tmp5_;
	KkcRule* _tmp6_;
	KkcRule* _tmp7_;
	GDBusConnection* _tmp8_;
	guint _tmp9_;
	g_return_val_if_fail (connection != NULL, NULL);
	g_return_val_if_fail (model != NULL, NULL);
	g_return_val_if_fail (dictionaries != NULL, NULL);
	self = (KkcDBusServer*) g_object_new (object_type, NULL);
	_tmp0_ = connection;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->priv->connection);
	self->priv->connection = _tmp1_;
	_tmp2_ = model;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	_g_object_unref0 (self->priv->model);
	self->priv->model = _tmp3_;
	_tmp4_ = dictionaries;
	_tmp5_ = _g_object_ref0 (_tmp4_);
	_g_object_unref0 (self->priv->dictionaries);
	self->priv->dictionaries = _tmp5_;
	_tmp6_ = typing_rule;
	_tmp7_ = _g_object_ref0 (_tmp6_);
	_g_object_unref0 (self->priv->typing_rule);
	self->priv->typing_rule = _tmp7_;
	_tmp8_ = connection;
	_tmp9_ = g_bus_own_name_on_connection_with_closures (_tmp8_, "org.du_a.Kkc.Server", G_BUS_NAME_OWNER_FLAGS_NONE, (GClosure*) ((_kkc_dbus_server_on_name_acquired_gbus_name_acquired_callback == NULL) ? NULL : g_cclosure_new ((GCallback) _kkc_dbus_server_on_name_acquired_gbus_name_acquired_callback, g_object_ref (self), (GClosureNotify) g_object_unref)), (GClosure*) ((_kkc_dbus_server_on_name_lost_gbus_name_lost_callback == NULL) ? NULL : g_cclosure_new ((GCallback) _kkc_dbus_server_on_name_lost_gbus_name_lost_callback, g_object_ref (self), (GClosureNotify) g_object_unref)));
	self->priv->own_name_id = _tmp9_;
	return self;
}


KkcDBusServer* kkc_dbus_server_new (GDBusConnection* connection, KkcLanguageModel* model, KkcDictionaryList* dictionaries, KkcRule* typing_rule) {
	return kkc_dbus_server_construct (KKC_TYPE_DBUS_SERVER, connection, model, dictionaries, typing_rule);
}


static void kkc_dbus_server_on_name_acquired (KkcDBusServer* self, GDBusConnection* connection, const gchar* name) {
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (connection != NULL);
	g_return_if_fail (name != NULL);
	{
		GDBusConnection* _tmp0_;
		_tmp0_ = connection;
		kkc_dbus_server_register_object (self, _tmp0_, "/org/du_a/Kkc/Server", &_inner_error_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_IO_ERROR) {
				goto __catch29_g_io_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	goto __finally29;
	__catch29_g_io_error:
	{
		GError* e = NULL;
		const gchar* _tmp1_;
		const gchar* _tmp2_;
		e = _inner_error_;
		_inner_error_ = NULL;
		_tmp1_ = name;
		_tmp2_ = e->message;
		g_error ("server.vala:458: Could not register D-Bus service %s: %s", _tmp1_, _tmp2_);
		_g_error_free0 (e);
	}
	__finally29:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
}


static void kkc_dbus_server_on_name_lost (KkcDBusServer* self, GDBusConnection* connection, const gchar* name) {
	g_return_if_fail (self != NULL);
	g_return_if_fail (connection != NULL);
	g_return_if_fail (name != NULL);
}


static Block14Data* block14_data_ref (Block14Data* _data14_) {
	g_atomic_int_inc (&_data14_->_ref_count_);
	return _data14_;
}


static void block14_data_unref (void * _userdata_) {
	Block14Data* _data14_;
	_data14_ = (Block14Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data14_->_ref_count_)) {
		KkcDBusServer* self;
		self = _data14_->self;
		_g_free0 (_data14_->object_path);
		_g_object_unref0 (self);
		g_slice_free (Block14Data, _data14_);
	}
}


static void __lambda25_ (Block14Data* _data14_, GDBusConnection* c, const gchar* n) {
	KkcDBusServer* self;
	GError * _inner_error_ = NULL;
	self = _data14_->self;
	g_return_if_fail (c != NULL);
	g_return_if_fail (n != NULL);
	{
		kkc_dbus_server_destroy_context (self, _data14_->object_path, &_inner_error_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch30_g_error;
		}
	}
	goto __finally30;
	__catch30_g_error:
	{
		GError* e = NULL;
		FILE* _tmp0_;
		GError* _tmp1_;
		const gchar* _tmp2_;
		e = _inner_error_;
		_inner_error_ = NULL;
		_tmp0_ = stderr;
		_tmp1_ = e;
		_tmp2_ = _tmp1_->message;
		fprintf (_tmp0_, "%s\n", _tmp2_);
		_g_error_free0 (e);
	}
	__finally30:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
}


static void ___lambda25__gbus_name_vanished_callback (GDBusConnection* connection, const gchar* name, gpointer self) {
	__lambda25_ (self, connection, name);
}


gchar* kkc_dbus_server_create_context (KkcDBusServer* self, const char* sender, GError** error) {
	gchar* result = NULL;
	Block14Data* _data14_;
	KkcContext* context = NULL;
	KkcLanguageModel* _tmp0_;
	KkcContext* _tmp1_;
	KkcContext* _tmp2_;
	KkcDictionaryList* _tmp3_;
	KkcRule* _tmp4_;
	guint _tmp7_;
	gchar* _tmp8_;
	KkcDBusContext* dbus_context = NULL;
	GDBusConnection* _tmp9_;
	KkcContext* _tmp10_;
	KkcDBusContext* _tmp11_;
	GeeMap* _tmp12_;
	GDBusConnection* _tmp13_;
	const char* _tmp14_;
	gchar* _tmp15_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sender != NULL, NULL);
	_data14_ = g_slice_new0 (Block14Data);
	_data14_->_ref_count_ = 1;
	_data14_->self = g_object_ref (self);
	_tmp0_ = self->priv->model;
	_tmp1_ = kkc_context_new (_tmp0_);
	context = _tmp1_;
	_tmp2_ = context;
	_tmp3_ = self->priv->dictionaries;
	kkc_context_set_dictionaries (_tmp2_, _tmp3_);
	_tmp4_ = self->priv->typing_rule;
	if (_tmp4_ != NULL) {
		KkcContext* _tmp5_;
		KkcRule* _tmp6_;
		_tmp5_ = context;
		_tmp6_ = self->priv->typing_rule;
		kkc_context_set_typing_rule (_tmp5_, _tmp6_);
	}
	_tmp7_ = self->priv->context_id;
	self->priv->context_id = _tmp7_ + 1;
	_tmp8_ = g_strdup_printf ("/org/du_a/Kkc/Context_%u", _tmp7_);
	_data14_->object_path = _tmp8_;
	_tmp9_ = self->priv->connection;
	_tmp10_ = context;
	_tmp11_ = kkc_dbus_context_new (_tmp9_, _data14_->object_path, _tmp10_);
	dbus_context = _tmp11_;
	_tmp12_ = self->priv->contexts;
	gee_map_set (_tmp12_, _data14_->object_path, dbus_context);
	_tmp13_ = self->priv->connection;
	_tmp14_ = sender;
	g_bus_watch_name_on_connection_with_closures (_tmp13_, (const gchar*) _tmp14_, G_BUS_NAME_WATCHER_FLAGS_NONE, (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)), (GClosure*) ((___lambda25__gbus_name_vanished_callback == NULL) ? NULL : g_cclosure_new ((GCallback) ___lambda25__gbus_name_vanished_callback, block14_data_ref (_data14_), (GClosureNotify) block14_data_unref)));
	_tmp15_ = g_strdup (_data14_->object_path);
	result = _tmp15_;
	_g_object_unref0 (dbus_context);
	_g_object_unref0 (context);
	block14_data_unref (_data14_);
	_data14_ = NULL;
	return result;
}


void kkc_dbus_server_destroy_context (KkcDBusServer* self, const gchar* object_path, GError** error) {
	KkcDBusContext* context = NULL;
	GeeMap* _tmp0_;
	const gchar* _tmp1_;
	gpointer _tmp2_ = NULL;
	gboolean _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (object_path != NULL);
	_tmp0_ = self->priv->contexts;
	_tmp1_ = object_path;
	_tmp3_ = gee_map_unset (_tmp0_, _tmp1_, &_tmp2_);
	_g_object_unref0 (context);
	context = _tmp2_;
	if (_tmp3_) {
		KkcDBusContext* _tmp4_;
		_tmp4_ = context;
		kkc_dbus_context_unregister (_tmp4_);
	}
	_g_object_unref0 (context);
}


static void kkc_dbus_server_class_init (KkcDBusServerClass * klass) {
	kkc_dbus_server_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (KkcDBusServerPrivate));
	G_OBJECT_CLASS (klass)->finalize = kkc_dbus_server_finalize;
}


static void kkc_dbus_server_instance_init (KkcDBusServer * self) {
	GeeHashMap* _tmp0_;
	self->priv = KKC_DBUS_SERVER_GET_PRIVATE (self);
	self->priv->context_id = (guint) 0;
	_tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, KKC_TYPE_DBUS_CONTEXT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->contexts = (GeeMap*) _tmp0_;
}


static void kkc_dbus_server_finalize (GObject * obj) {
	KkcDBusServer * self;
	guint _tmp0_;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, KKC_TYPE_DBUS_SERVER, KkcDBusServer);
	_tmp0_ = self->priv->own_name_id;
	g_bus_unown_name (_tmp0_);
	_g_object_unref0 (self->priv->connection);
	_g_object_unref0 (self->priv->model);
	_g_object_unref0 (self->priv->dictionaries);
	_g_object_unref0 (self->priv->typing_rule);
	_g_object_unref0 (self->priv->contexts);
	G_OBJECT_CLASS (kkc_dbus_server_parent_class)->finalize (obj);
}


GType kkc_dbus_server_get_type (void) {
	static volatile gsize kkc_dbus_server_type_id__volatile = 0;
	if (g_once_init_enter (&kkc_dbus_server_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (KkcDBusServerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) kkc_dbus_server_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KkcDBusServer), 0, (GInstanceInitFunc) kkc_dbus_server_instance_init, NULL };
		GType kkc_dbus_server_type_id;
		kkc_dbus_server_type_id = g_type_register_static (G_TYPE_OBJECT, "KkcDBusServer", &g_define_type_info, 0);
		g_type_set_qdata (kkc_dbus_server_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) kkc_dbus_server_register_object);
		g_once_init_leave (&kkc_dbus_server_type_id__volatile, kkc_dbus_server_type_id);
	}
	return kkc_dbus_server_type_id__volatile;
}


static void _dbus_kkc_dbus_server_create_context (KkcDBusServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar* result;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	result = kkc_dbus_server_create_context (self, g_dbus_method_invocation_get_sender (invocation), &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_string (result));
	_g_free0 (result);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
}


static void _dbus_kkc_dbus_server_destroy_context (KkcDBusServer* self, GVariant* _parameters_, GDBusMethodInvocation* invocation) {
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gchar* object_path = NULL;
	GVariant* _tmp7_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp7_ = g_variant_iter_next_value (&_arguments_iter);
	object_path = g_variant_dup_string (_tmp7_, NULL);
	g_variant_unref (_tmp7_);
	kkc_dbus_server_destroy_context (self, object_path, &error);
	if (error) {
		g_dbus_method_invocation_return_gerror (invocation, error);
		return;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_g_free0 (object_path);
}


static void kkc_dbus_server_dbus_interface_method_call (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* method_name, GVariant* parameters, GDBusMethodInvocation* invocation, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "CreateContext") == 0) {
		_dbus_kkc_dbus_server_create_context (object, parameters, invocation);
	} else if (strcmp (method_name, "DestroyContext") == 0) {
		_dbus_kkc_dbus_server_destroy_context (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}


static GVariant* kkc_dbus_server_dbus_interface_get_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GError** error, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return NULL;
}


static gboolean kkc_dbus_server_dbus_interface_set_property (GDBusConnection* connection, const gchar* sender, const gchar* object_path, const gchar* interface_name, const gchar* property_name, GVariant* value, GError** error, gpointer user_data) {
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}


guint kkc_dbus_server_register_object (gpointer object, GDBusConnection* connection, const gchar* path, GError** error) {
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_kkc_dbus_server_dbus_interface_info), &_kkc_dbus_server_dbus_interface_vtable, data, _kkc_dbus_server_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}


static void _kkc_dbus_server_unregister_object (gpointer user_data) {
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}



