/* contacts-linking.c generated by valac 0.37.1.6-1eaec, the Vala compiler
 * generated from contacts-linking.vala, do not modify */

/* -*- Mode: vala; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 8 -*- */
/*
 * Copyright (C) 2011 Alexander Larsson <alexl@redhat.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib.h>
#include <glib-object.h>
#include <folks/folks.h>
#include <gee.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <gtk/gtk.h>
#include <gobject/gvaluecollector.h>


#define CONTACTS_TYPE_LINK_OPERATION (contacts_link_operation_get_type ())
#define CONTACTS_LINK_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_LINK_OPERATION, ContactsLinkOperation))
#define CONTACTS_LINK_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_LINK_OPERATION, ContactsLinkOperationClass))
#define CONTACTS_IS_LINK_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_LINK_OPERATION))
#define CONTACTS_IS_LINK_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_LINK_OPERATION))
#define CONTACTS_LINK_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_LINK_OPERATION, ContactsLinkOperationClass))

typedef struct _ContactsLinkOperation ContactsLinkOperation;
typedef struct _ContactsLinkOperationClass ContactsLinkOperationClass;
typedef struct _ContactsLinkOperationPrivate ContactsLinkOperationPrivate;

#define CONTACTS_TYPE_CONTACT (contacts_contact_get_type ())
#define CONTACTS_CONTACT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_CONTACT, ContactsContact))
#define CONTACTS_CONTACT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_CONTACT, ContactsContactClass))
#define CONTACTS_IS_CONTACT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_CONTACT))
#define CONTACTS_IS_CONTACT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_CONTACT))
#define CONTACTS_CONTACT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_CONTACT, ContactsContactClass))

typedef struct _ContactsContact ContactsContact;
typedef struct _ContactsContactClass ContactsContactClass;

#define CONTACTS_LINK_OPERATION_TYPE_CHANGE (contacts_link_operation_change_get_type ())
#define CONTACTS_LINK_OPERATION_CHANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_LINK_OPERATION_TYPE_CHANGE, ContactsLinkOperationChange))
#define CONTACTS_LINK_OPERATION_CHANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_LINK_OPERATION_TYPE_CHANGE, ContactsLinkOperationChangeClass))
#define CONTACTS_LINK_OPERATION_IS_CHANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_LINK_OPERATION_TYPE_CHANGE))
#define CONTACTS_LINK_OPERATION_IS_CHANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_LINK_OPERATION_TYPE_CHANGE))
#define CONTACTS_LINK_OPERATION_CHANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_LINK_OPERATION_TYPE_CHANGE, ContactsLinkOperationChangeClass))

typedef struct _ContactsLinkOperationChange ContactsLinkOperationChange;
typedef struct _ContactsLinkOperationChangeClass ContactsLinkOperationChangeClass;
enum  {
	CONTACTS_LINK_OPERATION_DUMMY_PROPERTY,
	CONTACTS_LINK_OPERATION_LAST_PROPERTY
};
static GParamSpec* contacts_link_operation_properties[CONTACTS_LINK_OPERATION_LAST_PROPERTY];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _ContactsContactPrivate ContactsContactPrivate;

#define CONTACTS_TYPE_STORE (contacts_store_get_type ())
#define CONTACTS_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_STORE, ContactsStore))
#define CONTACTS_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_STORE, ContactsStoreClass))
#define CONTACTS_IS_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_STORE))
#define CONTACTS_IS_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_STORE))
#define CONTACTS_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_STORE, ContactsStoreClass))

typedef struct _ContactsStore ContactsStore;
typedef struct _ContactsStoreClass ContactsStoreClass;

#define CONTACTS_TYPE_PERSONA_ATTRIBUTE (contacts_persona_attribute_get_type ())
#define CONTACTS_PERSONA_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttribute))
#define CONTACTS_PERSONA_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttributeClass))
#define CONTACTS_IS_PERSONA_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE))
#define CONTACTS_IS_PERSONA_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_PERSONA_ATTRIBUTE))
#define CONTACTS_PERSONA_ATTRIBUTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttributeClass))

typedef struct _ContactsPersonaAttribute ContactsPersonaAttribute;
typedef struct _ContactsPersonaAttributeClass ContactsPersonaAttributeClass;
typedef struct _ContactsLinkOperationChangePrivate ContactsLinkOperationChangePrivate;
#define _contacts_link_operation_change_unref0(var) ((var == NULL) ? NULL : (var = (contacts_link_operation_change_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _ContactsLinkOperationUndoData ContactsLinkOperationUndoData;
enum  {
	CONTACTS_LINK_OPERATION_CHANGE_DUMMY_PROPERTY,
	CONTACTS_LINK_OPERATION_CHANGE_LAST_PROPERTY
};
static GParamSpec* contacts_link_operation_change_properties[CONTACTS_LINK_OPERATION_CHANGE_LAST_PROPERTY];
typedef struct _ContactsLinkOperationParamSpecChange ContactsLinkOperationParamSpecChange;
typedef struct _ContactsPersonaAttributePrivate ContactsPersonaAttributePrivate;
enum  {
	CONTACTS_PERSONA_ATTRIBUTE_DUMMY_PROPERTY,
	CONTACTS_PERSONA_ATTRIBUTE_LAST_PROPERTY
};
static GParamSpec* contacts_persona_attribute_properties[CONTACTS_PERSONA_ATTRIBUTE_LAST_PROPERTY];
#define _g_free0(var) (var = (g_free (var), NULL))

#define CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID (contacts_persona_attribute_local_id_get_type ())
#define CONTACTS_PERSONA_ATTRIBUTE_LOCAL_ID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID, ContactsPersonaAttributeLocalId))
#define CONTACTS_PERSONA_ATTRIBUTE_LOCAL_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID, ContactsPersonaAttributeLocalIdClass))
#define CONTACTS_IS_PERSONA_ATTRIBUTE_LOCAL_ID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID))
#define CONTACTS_IS_PERSONA_ATTRIBUTE_LOCAL_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID))
#define CONTACTS_PERSONA_ATTRIBUTE_LOCAL_ID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID, ContactsPersonaAttributeLocalIdClass))

typedef struct _ContactsPersonaAttributeLocalId ContactsPersonaAttributeLocalId;
typedef struct _ContactsPersonaAttributeLocalIdClass ContactsPersonaAttributeLocalIdClass;
typedef struct _ContactsPersonaAttributeLocalIdPrivate ContactsPersonaAttributeLocalIdPrivate;
enum  {
	CONTACTS_PERSONA_ATTRIBUTE_LOCAL_ID_DUMMY_PROPERTY,
	CONTACTS_PERSONA_ATTRIBUTE_LOCAL_ID_LAST_PROPERTY
};
static GParamSpec* contacts_persona_attribute_local_id_properties[CONTACTS_PERSONA_ATTRIBUTE_LOCAL_ID_LAST_PROPERTY];
typedef struct _ContactsPersonaAttributeLocalIdPersonaApplyAttributesData ContactsPersonaAttributeLocalIdPersonaApplyAttributesData;
typedef struct _ContactsPersonaAttributeLocalIdSetValueData ContactsPersonaAttributeLocalIdSetValueData;

#define CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS (contacts_persona_attribute_im_address_get_type ())
#define CONTACTS_PERSONA_ATTRIBUTE_IM_ADDRESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, ContactsPersonaAttributeImAddress))
#define CONTACTS_PERSONA_ATTRIBUTE_IM_ADDRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, ContactsPersonaAttributeImAddressClass))
#define CONTACTS_IS_PERSONA_ATTRIBUTE_IM_ADDRESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS))
#define CONTACTS_IS_PERSONA_ATTRIBUTE_IM_ADDRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS))
#define CONTACTS_PERSONA_ATTRIBUTE_IM_ADDRESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, ContactsPersonaAttributeImAddressClass))

typedef struct _ContactsPersonaAttributeImAddress ContactsPersonaAttributeImAddress;
typedef struct _ContactsPersonaAttributeImAddressClass ContactsPersonaAttributeImAddressClass;
typedef struct _ContactsPersonaAttributeImAddressPrivate ContactsPersonaAttributeImAddressPrivate;
enum  {
	CONTACTS_PERSONA_ATTRIBUTE_IM_ADDRESS_DUMMY_PROPERTY,
	CONTACTS_PERSONA_ATTRIBUTE_IM_ADDRESS_LAST_PROPERTY
};
static GParamSpec* contacts_persona_attribute_im_address_properties[CONTACTS_PERSONA_ATTRIBUTE_IM_ADDRESS_LAST_PROPERTY];
typedef struct _ContactsPersonaAttributeImAddressPersonaApplyAttributesData ContactsPersonaAttributeImAddressPersonaApplyAttributesData;
typedef struct _ContactsPersonaAttributeImAddressSetValueData ContactsPersonaAttributeImAddressSetValueData;

#define CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE (contacts_persona_attribute_web_service_get_type ())
#define CONTACTS_PERSONA_ATTRIBUTE_WEB_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, ContactsPersonaAttributeWebService))
#define CONTACTS_PERSONA_ATTRIBUTE_WEB_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, ContactsPersonaAttributeWebServiceClass))
#define CONTACTS_IS_PERSONA_ATTRIBUTE_WEB_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE))
#define CONTACTS_IS_PERSONA_ATTRIBUTE_WEB_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE))
#define CONTACTS_PERSONA_ATTRIBUTE_WEB_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, ContactsPersonaAttributeWebServiceClass))

typedef struct _ContactsPersonaAttributeWebService ContactsPersonaAttributeWebService;
typedef struct _ContactsPersonaAttributeWebServiceClass ContactsPersonaAttributeWebServiceClass;
typedef struct _ContactsPersonaAttributeWebServicePrivate ContactsPersonaAttributeWebServicePrivate;
enum  {
	CONTACTS_PERSONA_ATTRIBUTE_WEB_SERVICE_DUMMY_PROPERTY,
	CONTACTS_PERSONA_ATTRIBUTE_WEB_SERVICE_LAST_PROPERTY
};
static GParamSpec* contacts_persona_attribute_web_service_properties[CONTACTS_PERSONA_ATTRIBUTE_WEB_SERVICE_LAST_PROPERTY];
typedef struct _ContactsPersonaAttributeWebServicePersonaApplyAttributesData ContactsPersonaAttributeWebServicePersonaApplyAttributesData;
typedef struct _ContactsPersonaAttributeWebServiceSetValueData ContactsPersonaAttributeWebServiceSetValueData;
typedef struct _ContactsPersonaApplyAttributesData ContactsPersonaApplyAttributesData;

#define CONTACTS_TYPE_APP (contacts_app_get_type ())
#define CONTACTS_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_APP, ContactsApp))
#define CONTACTS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_APP, ContactsAppClass))
#define CONTACTS_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_APP))
#define CONTACTS_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_APP))
#define CONTACTS_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_APP, ContactsAppClass))

typedef struct _ContactsApp ContactsApp;
typedef struct _ContactsAppClass ContactsAppClass;
typedef struct _ContactsAppPrivate ContactsAppPrivate;

#define CONTACTS_TYPE_WINDOW (contacts_window_get_type ())
#define CONTACTS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_WINDOW, ContactsWindow))
#define CONTACTS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_WINDOW, ContactsWindowClass))
#define CONTACTS_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_WINDOW))
#define CONTACTS_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_WINDOW))
#define CONTACTS_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_WINDOW, ContactsWindowClass))

typedef struct _ContactsWindow ContactsWindow;
typedef struct _ContactsWindowClass ContactsWindowClass;
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
typedef struct _ContactsLinkContactsData ContactsLinkContactsData;
typedef struct _ContactsUnlinkPersonaData ContactsUnlinkPersonaData;

#define CONTACTS_TYPE_LINK_OPERATION2 (contacts_link_operation2_get_type ())
#define CONTACTS_LINK_OPERATION2(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONTACTS_TYPE_LINK_OPERATION2, ContactsLinkOperation2))
#define CONTACTS_LINK_OPERATION2_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONTACTS_TYPE_LINK_OPERATION2, ContactsLinkOperation2Class))
#define CONTACTS_IS_LINK_OPERATION2(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONTACTS_TYPE_LINK_OPERATION2))
#define CONTACTS_IS_LINK_OPERATION2_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONTACTS_TYPE_LINK_OPERATION2))
#define CONTACTS_LINK_OPERATION2_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONTACTS_TYPE_LINK_OPERATION2, ContactsLinkOperation2Class))

typedef struct _ContactsLinkOperation2 ContactsLinkOperation2;
typedef struct _ContactsLinkOperation2Class ContactsLinkOperation2Class;
typedef struct _ContactsLinkOperation2Private ContactsLinkOperation2Private;
enum  {
	CONTACTS_LINK_OPERATION2_DUMMY_PROPERTY,
	CONTACTS_LINK_OPERATION2_LAST_PROPERTY
};
static GParamSpec* contacts_link_operation2_properties[CONTACTS_LINK_OPERATION2_LAST_PROPERTY];
typedef struct _ContactsLinkOperation2UndoData ContactsLinkOperation2UndoData;
typedef struct _ContactsLinkContactsListData ContactsLinkContactsListData;

struct _ContactsLinkOperation {
	GObject parent_instance;
	ContactsLinkOperationPrivate * priv;
};

struct _ContactsLinkOperationClass {
	GObjectClass parent_class;
};

struct _ContactsLinkOperationPrivate {
	FolksPersona* _added_persona;
	ContactsContact* main_contact;
	GeeArrayList* split_out_personas;
	GeeArrayList* changes;
};

struct _ContactsContact {
	GObject parent_instance;
	ContactsContactPrivate * priv;
	ContactsStore* store;
	gboolean is_main;
	FolksPresenceType presence_type;
	gchar* presence_message;
	gboolean is_phone;
	FolksIndividual* individual;
	FolksPersona* fake_persona;
};

struct _ContactsContactClass {
	GObjectClass parent_class;
};

struct _ContactsLinkOperationChange {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ContactsLinkOperationChangePrivate * priv;
	ContactsPersonaAttribute* attribute;
	FolksPersona* persona;
	GObject* old_value;
};

struct _ContactsLinkOperationChangeClass {
	GTypeClass parent_class;
	void (*finalize) (ContactsLinkOperationChange *self);
};

struct _ContactsLinkOperationUndoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsLinkOperation* self;
	ContactsContact* _tmp0_;
	ContactsContact* _tmp1_;
	GeeArrayList* _tmp2_;
	GeeArrayList* _p_list;
	GeeArrayList* _tmp3_;
	GeeArrayList* _tmp4_;
	gint _p_size;
	GeeArrayList* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	gint _p_index;
	gint _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	FolksPersona* p;
	GeeArrayList* _tmp11_;
	gint _tmp12_;
	gpointer _tmp13_;
	FolksPersona* _tmp14_;
	FolksPersona* _tmp15_;
	FolksPersona* _tmp16_;
	FolksPersonaStore* _tmp17_;
	FolksPersonaStore* _tmp18_;
	FolksPersona* _tmp19_;
	GeeArrayList* _c_list;
	GeeArrayList* _tmp20_;
	GeeArrayList* _tmp21_;
	gint _c_size;
	GeeArrayList* _tmp22_;
	gint _tmp23_;
	gint _tmp24_;
	gint _c_index;
	gint _tmp25_;
	gint _tmp26_;
	gint _tmp27_;
	ContactsLinkOperationChange* c;
	GeeArrayList* _tmp28_;
	gint _tmp29_;
	gpointer _tmp30_;
	ContactsLinkOperationChange* _tmp31_;
	FolksPersona* _tmp32_;
	FolksPersona* _tmp33_;
	ContactsLinkOperationChange* _tmp34_;
	ContactsPersonaAttribute* _tmp35_;
	ContactsLinkOperationChange* _tmp36_;
	FolksPersona* _tmp37_;
	ContactsLinkOperationChange* _tmp38_;
	GObject* _tmp39_;
	GError* e;
	GError* _tmp40_;
	const gchar* _tmp41_;
	ContactsContact* _tmp42_;
	ContactsContact* _tmp43_;
	GeeArrayList* _tmp44_;
	GeeArrayList* _vala1__p_list;
	GeeArrayList* _tmp45_;
	GeeArrayList* _tmp46_;
	gint _vala1__p_size;
	GeeArrayList* _tmp47_;
	gint _tmp48_;
	gint _tmp49_;
	gint _vala1__p_index;
	gint _tmp50_;
	gint _tmp51_;
	gint _tmp52_;
	FolksPersona* _vala1_p;
	GeeArrayList* _tmp53_;
	gint _tmp54_;
	gpointer _tmp55_;
	FolksPersona* _tmp56_;
	GError * _inner_error_;
};

struct _ContactsLinkOperationParamSpecChange {
	GParamSpec parent_instance;
};

struct _ContactsPersonaAttribute {
	GObject parent_instance;
	ContactsPersonaAttributePrivate * priv;
	gchar* property_name;
};

struct _ContactsPersonaAttributeClass {
	GObjectClass parent_class;
	gboolean (*is_removable) (ContactsPersonaAttribute* self, FolksPersona* from_persona);
	gboolean (*is_referenced_by_persona) (ContactsPersonaAttribute* self, FolksPersona* persona);
	gboolean (*equal) (ContactsPersonaAttribute* self, ContactsPersonaAttribute* that);
	guint (*hash) (ContactsPersonaAttribute* self);
	void (*persona_apply_attributes) (ContactsPersonaAttribute* self, FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*persona_apply_attributes_finish) (ContactsPersonaAttribute* self, GAsyncResult* _res_);
	void (*set_value) (ContactsPersonaAttribute* self, FolksPersona* persona, GObject* value, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*set_value_finish) (ContactsPersonaAttribute* self, GAsyncResult* _res_);
};

struct _ContactsPersonaAttributeLocalId {
	ContactsPersonaAttribute parent_instance;
	ContactsPersonaAttributeLocalIdPrivate * priv;
};

struct _ContactsPersonaAttributeLocalIdClass {
	ContactsPersonaAttributeClass parent_class;
};

struct _ContactsPersonaAttributeLocalIdPrivate {
	gchar* value;
};

struct _ContactsPersonaAttributeLocalIdPersonaApplyAttributesData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsPersonaAttributeLocalId* self;
	FolksPersona* persona;
	GeeSet* added_attributes;
	GeeSet* removed_attributes;
	ContactsLinkOperation* operation;
	FolksLocalIdDetails* details;
	FolksPersona* _tmp0_;
	FolksLocalIdDetails* _tmp1_;
	FolksLocalIdDetails* _tmp2_;
	GeeHashSet* added_values;
	GeeHashSet* _tmp3_;
	GeeIterator* _added_it;
	GeeSet* _tmp4_;
	GeeIterator* _tmp5_;
	GeeIterator* _tmp6_;
	gboolean _tmp7_;
	ContactsPersonaAttribute* added;
	GeeIterator* _tmp8_;
	gpointer _tmp9_;
	GeeHashSet* _tmp10_;
	ContactsPersonaAttribute* _tmp11_;
	const gchar* _tmp12_;
	GeeHashSet* removed_values;
	GeeHashSet* _tmp13_;
	GeeIterator* _removed_it;
	GeeSet* _tmp14_;
	GeeIterator* _tmp15_;
	GeeIterator* _tmp16_;
	gboolean _tmp17_;
	ContactsPersonaAttribute* removed;
	GeeIterator* _tmp18_;
	gpointer _tmp19_;
	GeeHashSet* _tmp20_;
	ContactsPersonaAttribute* _tmp21_;
	const gchar* _tmp22_;
	GeeHashSet* new_values;
	GeeHashSet* _tmp23_;
	gboolean changed;
	GeeIterator* _v_it;
	FolksLocalIdDetails* _tmp24_;
	GeeSet* _tmp25_;
	GeeSet* _tmp26_;
	GeeIterator* _tmp27_;
	GeeIterator* _tmp28_;
	gboolean _tmp29_;
	gchar* v;
	GeeIterator* _tmp30_;
	gpointer _tmp31_;
	GeeHashSet* _tmp32_;
	const gchar* _tmp33_;
	gboolean _tmp34_;
	GeeHashSet* _tmp35_;
	const gchar* _tmp36_;
	GeeHashSet* _tmp37_;
	const gchar* _tmp38_;
	gboolean _tmp39_;
	GeeHashSet* _tmp40_;
	const gchar* _tmp41_;
	GeeIterator* _v2_it;
	GeeHashSet* _tmp42_;
	GeeIterator* _tmp43_;
	GeeIterator* _tmp44_;
	gboolean _tmp45_;
	gchar* v2;
	GeeIterator* _tmp46_;
	gpointer _tmp47_;
	GeeHashSet* _tmp48_;
	const gchar* _tmp49_;
	gboolean _tmp50_;
	GeeHashSet* old_value;
	GeeHashSet* _tmp51_;
	GeeHashSet* _tmp52_;
	FolksLocalIdDetails* _tmp53_;
	GeeSet* _tmp54_;
	GeeSet* _tmp55_;
	FolksLocalIdDetails* _tmp56_;
	GeeHashSet* _tmp57_;
	ContactsLinkOperation* _tmp58_;
	FolksPersona* _tmp59_;
	GeeHashSet* _tmp60_;
	GError* e;
	GError* _tmp61_;
	const gchar* _tmp62_;
	GError * _inner_error_;
};

struct _ContactsPersonaAttributeLocalIdSetValueData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsPersonaAttributeLocalId* self;
	FolksPersona* persona;
	GObject* value;
	FolksLocalIdDetails* details;
	FolksPersona* _tmp0_;
	FolksLocalIdDetails* _tmp1_;
	FolksLocalIdDetails* _tmp2_;
	GeeHashSet* v;
	GObject* _tmp3_;
	GeeHashSet* _tmp4_;
	FolksLocalIdDetails* _tmp5_;
	GeeHashSet* _tmp6_;
	GError* e;
	GError* _tmp7_;
	const gchar* _tmp8_;
	GError * _inner_error_;
};

struct _ContactsPersonaAttributeImAddress {
	ContactsPersonaAttribute parent_instance;
	ContactsPersonaAttributeImAddressPrivate * priv;
};

struct _ContactsPersonaAttributeImAddressClass {
	ContactsPersonaAttributeClass parent_class;
};

struct _ContactsPersonaAttributeImAddressPrivate {
	gchar* protocol;
	FolksImFieldDetails* detail;
};

struct _ContactsPersonaAttributeImAddressPersonaApplyAttributesData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsPersonaAttributeImAddress* self;
	FolksPersona* persona;
	GeeSet* added_attributes;
	GeeSet* removed_attributes;
	ContactsLinkOperation* operation;
	FolksImDetails* details;
	FolksPersona* _tmp0_;
	FolksImDetails* _tmp1_;
	FolksImDetails* _tmp2_;
	GeeHashMultiMap* added_values;
	GeeHashMultiMap* _tmp3_;
	GeeIterator* _added_it;
	GeeSet* _tmp4_;
	GeeIterator* _tmp5_;
	GeeIterator* _tmp6_;
	gboolean _tmp7_;
	ContactsPersonaAttribute* added;
	GeeIterator* _tmp8_;
	gpointer _tmp9_;
	GeeHashMultiMap* _tmp10_;
	ContactsPersonaAttribute* _tmp11_;
	const gchar* _tmp12_;
	ContactsPersonaAttribute* _tmp13_;
	FolksImFieldDetails* _tmp14_;
	GeeHashMultiMap* removed_values;
	GeeHashMultiMap* _tmp15_;
	GeeIterator* _removed_it;
	GeeSet* _tmp16_;
	GeeIterator* _tmp17_;
	GeeIterator* _tmp18_;
	gboolean _tmp19_;
	ContactsPersonaAttribute* removed;
	GeeIterator* _tmp20_;
	gpointer _tmp21_;
	GeeHashMultiMap* _tmp22_;
	ContactsPersonaAttribute* _tmp23_;
	const gchar* _tmp24_;
	ContactsPersonaAttribute* _tmp25_;
	FolksImFieldDetails* _tmp26_;
	GeeHashMultiMap* new_values;
	GeeHashMultiMap* _tmp27_;
	gboolean changed;
	GeeIterator* _proto1_it;
	FolksImDetails* _tmp28_;
	GeeMultiMap* _tmp29_;
	GeeMultiMap* _tmp30_;
	GeeSet* _tmp31_;
	GeeSet* _tmp32_;
	GeeIterator* _tmp33_;
	GeeIterator* _tmp34_;
	GeeIterator* _tmp35_;
	gboolean _tmp36_;
	gchar* proto1;
	GeeIterator* _tmp37_;
	gpointer _tmp38_;
	GeeIterator* _detail1_it;
	FolksImDetails* _tmp39_;
	GeeMultiMap* _tmp40_;
	GeeMultiMap* _tmp41_;
	const gchar* _tmp42_;
	GeeCollection* _tmp43_;
	GeeCollection* _tmp44_;
	GeeIterator* _tmp45_;
	GeeIterator* _tmp46_;
	GeeIterator* _tmp47_;
	gboolean _tmp48_;
	FolksImFieldDetails* detail1;
	GeeIterator* _tmp49_;
	gpointer _tmp50_;
	GeeHashMultiMap* _tmp51_;
	const gchar* _tmp52_;
	GeeCollection* _tmp53_;
	GeeCollection* _tmp54_;
	FolksImFieldDetails* _tmp55_;
	gboolean _tmp56_;
	gboolean _tmp57_;
	GeeHashMultiMap* _tmp58_;
	const gchar* _tmp59_;
	FolksImFieldDetails* _tmp60_;
	GeeHashMultiMap* _tmp61_;
	const gchar* _tmp62_;
	GeeCollection* _tmp63_;
	GeeCollection* _tmp64_;
	FolksImFieldDetails* _tmp65_;
	gboolean _tmp66_;
	gboolean _tmp67_;
	GeeHashMultiMap* _tmp68_;
	const gchar* _tmp69_;
	FolksImFieldDetails* _tmp70_;
	GeeIterator* _proto2_it;
	GeeHashMultiMap* _tmp71_;
	GeeSet* _tmp72_;
	GeeSet* _tmp73_;
	GeeIterator* _tmp74_;
	GeeIterator* _tmp75_;
	GeeIterator* _tmp76_;
	gboolean _tmp77_;
	gchar* proto2;
	GeeIterator* _tmp78_;
	gpointer _tmp79_;
	GeeIterator* _detail2_it;
	GeeHashMultiMap* _tmp80_;
	const gchar* _tmp81_;
	GeeCollection* _tmp82_;
	GeeCollection* _tmp83_;
	GeeIterator* _tmp84_;
	GeeIterator* _tmp85_;
	GeeIterator* _tmp86_;
	gboolean _tmp87_;
	FolksImFieldDetails* detail2;
	GeeIterator* _tmp88_;
	gpointer _tmp89_;
	GeeHashMultiMap* _tmp90_;
	const gchar* _tmp91_;
	FolksImFieldDetails* _tmp92_;
	gboolean _tmp93_;
	GeeMultiMap* old_value;
	FolksImDetails* _tmp94_;
	GeeMultiMap* _tmp95_;
	GeeMultiMap* _tmp96_;
	GeeMultiMap* _tmp97_;
	FolksImDetails* _tmp98_;
	GeeHashMultiMap* _tmp99_;
	ContactsLinkOperation* _tmp100_;
	FolksPersona* _tmp101_;
	GeeMultiMap* _tmp102_;
	GError* e;
	GError* _tmp103_;
	const gchar* _tmp104_;
	GError * _inner_error_;
};

struct _ContactsPersonaAttributeImAddressSetValueData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsPersonaAttributeImAddress* self;
	FolksPersona* persona;
	GObject* value;
	FolksImDetails* details;
	FolksPersona* _tmp0_;
	FolksImDetails* _tmp1_;
	FolksImDetails* _tmp2_;
	GeeHashMultiMap* v;
	GObject* _tmp3_;
	GeeHashMultiMap* _tmp4_;
	FolksImDetails* _tmp5_;
	GeeHashMultiMap* _tmp6_;
	GError* e;
	GError* _tmp7_;
	const gchar* _tmp8_;
	GError * _inner_error_;
};

struct _ContactsPersonaAttributeWebService {
	ContactsPersonaAttribute parent_instance;
	ContactsPersonaAttributeWebServicePrivate * priv;
};

struct _ContactsPersonaAttributeWebServiceClass {
	ContactsPersonaAttributeClass parent_class;
};

struct _ContactsPersonaAttributeWebServicePrivate {
	gchar* service;
	FolksWebServiceFieldDetails* detail;
};

struct _ContactsPersonaAttributeWebServicePersonaApplyAttributesData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsPersonaAttributeWebService* self;
	FolksPersona* persona;
	GeeSet* added_attributes;
	GeeSet* removed_attributes;
	ContactsLinkOperation* operation;
	FolksWebServiceDetails* details;
	FolksPersona* _tmp0_;
	FolksWebServiceDetails* _tmp1_;
	FolksWebServiceDetails* _tmp2_;
	GeeHashMultiMap* added_values;
	GeeHashMultiMap* _tmp3_;
	GeeIterator* _added_it;
	GeeSet* _tmp4_;
	GeeIterator* _tmp5_;
	GeeIterator* _tmp6_;
	gboolean _tmp7_;
	ContactsPersonaAttribute* added;
	GeeIterator* _tmp8_;
	gpointer _tmp9_;
	GeeHashMultiMap* _tmp10_;
	ContactsPersonaAttribute* _tmp11_;
	const gchar* _tmp12_;
	ContactsPersonaAttribute* _tmp13_;
	FolksWebServiceFieldDetails* _tmp14_;
	GeeHashMultiMap* removed_values;
	GeeHashMultiMap* _tmp15_;
	GeeIterator* _removed_it;
	GeeSet* _tmp16_;
	GeeIterator* _tmp17_;
	GeeIterator* _tmp18_;
	gboolean _tmp19_;
	ContactsPersonaAttribute* removed;
	GeeIterator* _tmp20_;
	gpointer _tmp21_;
	GeeHashMultiMap* _tmp22_;
	ContactsPersonaAttribute* _tmp23_;
	const gchar* _tmp24_;
	ContactsPersonaAttribute* _tmp25_;
	FolksWebServiceFieldDetails* _tmp26_;
	GeeHashMultiMap* new_values;
	GeeHashMultiMap* _tmp27_;
	gboolean changed;
	GeeIterator* _srv1_it;
	FolksWebServiceDetails* _tmp28_;
	GeeMultiMap* _tmp29_;
	GeeMultiMap* _tmp30_;
	GeeSet* _tmp31_;
	GeeSet* _tmp32_;
	GeeIterator* _tmp33_;
	GeeIterator* _tmp34_;
	GeeIterator* _tmp35_;
	gboolean _tmp36_;
	gchar* srv1;
	GeeIterator* _tmp37_;
	gpointer _tmp38_;
	GeeIterator* _detail1_it;
	FolksWebServiceDetails* _tmp39_;
	GeeMultiMap* _tmp40_;
	GeeMultiMap* _tmp41_;
	const gchar* _tmp42_;
	GeeCollection* _tmp43_;
	GeeCollection* _tmp44_;
	GeeIterator* _tmp45_;
	GeeIterator* _tmp46_;
	GeeIterator* _tmp47_;
	gboolean _tmp48_;
	FolksWebServiceFieldDetails* detail1;
	GeeIterator* _tmp49_;
	gpointer _tmp50_;
	GeeHashMultiMap* _tmp51_;
	const gchar* _tmp52_;
	GeeCollection* _tmp53_;
	GeeCollection* _tmp54_;
	FolksWebServiceFieldDetails* _tmp55_;
	gboolean _tmp56_;
	gboolean _tmp57_;
	GeeHashMultiMap* _tmp58_;
	const gchar* _tmp59_;
	FolksWebServiceFieldDetails* _tmp60_;
	GeeHashMultiMap* _tmp61_;
	const gchar* _tmp62_;
	GeeCollection* _tmp63_;
	GeeCollection* _tmp64_;
	FolksWebServiceFieldDetails* _tmp65_;
	gboolean _tmp66_;
	gboolean _tmp67_;
	GeeHashMultiMap* _tmp68_;
	const gchar* _tmp69_;
	FolksWebServiceFieldDetails* _tmp70_;
	GeeIterator* _srv2_it;
	GeeHashMultiMap* _tmp71_;
	GeeSet* _tmp72_;
	GeeSet* _tmp73_;
	GeeIterator* _tmp74_;
	GeeIterator* _tmp75_;
	GeeIterator* _tmp76_;
	gboolean _tmp77_;
	gchar* srv2;
	GeeIterator* _tmp78_;
	gpointer _tmp79_;
	GeeIterator* _detail2_it;
	GeeHashMultiMap* _tmp80_;
	const gchar* _tmp81_;
	GeeCollection* _tmp82_;
	GeeCollection* _tmp83_;
	GeeIterator* _tmp84_;
	GeeIterator* _tmp85_;
	GeeIterator* _tmp86_;
	gboolean _tmp87_;
	FolksWebServiceFieldDetails* detail2;
	GeeIterator* _tmp88_;
	gpointer _tmp89_;
	GeeHashMultiMap* _tmp90_;
	const gchar* _tmp91_;
	FolksWebServiceFieldDetails* _tmp92_;
	gboolean _tmp93_;
	GeeMultiMap* old_value;
	FolksWebServiceDetails* _tmp94_;
	GeeMultiMap* _tmp95_;
	GeeMultiMap* _tmp96_;
	GeeMultiMap* _tmp97_;
	FolksWebServiceDetails* _tmp98_;
	GeeHashMultiMap* _tmp99_;
	ContactsLinkOperation* _tmp100_;
	FolksPersona* _tmp101_;
	GeeMultiMap* _tmp102_;
	GError* e;
	GError* _tmp103_;
	const gchar* _tmp104_;
	GError * _inner_error_;
};

struct _ContactsPersonaAttributeWebServiceSetValueData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsPersonaAttributeWebService* self;
	FolksPersona* persona;
	GObject* value;
	FolksWebServiceDetails* details;
	FolksPersona* _tmp0_;
	FolksWebServiceDetails* _tmp1_;
	FolksWebServiceDetails* _tmp2_;
	GeeHashMultiMap* v;
	GObject* _tmp3_;
	GeeHashMultiMap* _tmp4_;
	FolksWebServiceDetails* _tmp5_;
	GeeHashMultiMap* _tmp6_;
	GError* e;
	GError* _tmp7_;
	const gchar* _tmp8_;
	GError * _inner_error_;
};

struct _ContactsPersonaApplyAttributesData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	FolksPersona* persona;
	GeeSet* added_attributes;
	GeeSet* removed_attributes;
	ContactsLinkOperation* operation;
	GeeHashSet* properties;
	GeeHashSet* _tmp0_;
	GeeSet* _tmp1_;
	GeeIterator* _a1_it;
	GeeSet* _tmp2_;
	GeeIterator* _tmp3_;
	GeeIterator* _tmp4_;
	gboolean _tmp5_;
	ContactsPersonaAttribute* a1;
	GeeIterator* _tmp6_;
	gpointer _tmp7_;
	GeeHashSet* _tmp8_;
	ContactsPersonaAttribute* _tmp9_;
	GeeSet* _tmp10_;
	GeeIterator* _a2_it;
	GeeSet* _tmp11_;
	GeeIterator* _tmp12_;
	GeeIterator* _tmp13_;
	gboolean _tmp14_;
	ContactsPersonaAttribute* a2;
	GeeIterator* _tmp15_;
	gpointer _tmp16_;
	GeeHashSet* _tmp17_;
	ContactsPersonaAttribute* _tmp18_;
	GeeIterator* _property_it;
	GeeHashSet* _tmp19_;
	GeeIterator* _tmp20_;
	GeeIterator* _tmp21_;
	gboolean _tmp22_;
	ContactsPersonaAttribute* property;
	GeeIterator* _tmp23_;
	gpointer _tmp24_;
	GeeHashSet* added;
	GeeHashSet* _tmp25_;
	GeeHashSet* removed;
	GeeHashSet* _tmp26_;
	GeeSet* _tmp27_;
	GeeIterator* _a3_it;
	GeeSet* _tmp28_;
	GeeIterator* _tmp29_;
	GeeIterator* _tmp30_;
	gboolean _tmp31_;
	ContactsPersonaAttribute* a3;
	GeeIterator* _tmp32_;
	gpointer _tmp33_;
	ContactsPersonaAttribute* _tmp34_;
	ContactsPersonaAttribute* _tmp35_;
	gboolean _tmp36_;
	GeeHashSet* _tmp37_;
	ContactsPersonaAttribute* _tmp38_;
	GeeSet* _tmp39_;
	GeeIterator* _a4_it;
	GeeSet* _tmp40_;
	GeeIterator* _tmp41_;
	GeeIterator* _tmp42_;
	gboolean _tmp43_;
	ContactsPersonaAttribute* a4;
	GeeIterator* _tmp44_;
	gpointer _tmp45_;
	ContactsPersonaAttribute* _tmp46_;
	ContactsPersonaAttribute* _tmp47_;
	gboolean _tmp48_;
	GeeHashSet* _tmp49_;
	ContactsPersonaAttribute* _tmp50_;
	ContactsPersonaAttribute* _tmp51_;
	FolksPersona* _tmp52_;
	GeeHashSet* _tmp53_;
	GeeHashSet* _tmp54_;
	ContactsLinkOperation* _tmp55_;
};

struct _ContactsApp {
	GtkApplication parent_instance;
	ContactsAppPrivate * priv;
	GSettings* settings;
	ContactsStore* contacts_store;
	ContactsWindow* window;
};

struct _ContactsAppClass {
	GtkApplicationClass parent_class;
};

struct _ContactsLinkContactsData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsContact* main;
	ContactsContact* other;
	ContactsLinkOperation* result;
	ContactsContact* _tmp0_;
	ContactsLinkOperation* operation;
	ContactsLinkOperation* _tmp1_;
	ContactsLinkOperation* _tmp2_;
	ContactsContact* _tmp3_;
	GeeSet* main_linkables;
	ContactsContact* _tmp4_;
	FolksIndividual* _tmp5_;
	GeeSet* _tmp6_;
	GeeSet* other_linkables;
	ContactsContact* _tmp7_;
	ContactsContact* _tmp8_;
	FolksIndividual* _tmp9_;
	GeeSet* _tmp10_;
	GeeSet* linkables;
	GeeSet* _tmp11_;
	GeeSet* _tmp12_;
	GeeSet* _tmp13_;
	GeeSet* _tmp14_;
	GeeSet* _tmp15_;
	FolksPersona* write_persona;
	GeeIterator* _p1_it;
	ContactsContact* _tmp16_;
	FolksIndividual* _tmp17_;
	GeeSet* _tmp18_;
	GeeSet* _tmp19_;
	GeeIterator* _tmp20_;
	GeeIterator* _tmp21_;
	gboolean _tmp22_;
	FolksPersona* p1;
	GeeIterator* _tmp23_;
	gpointer _tmp24_;
	gboolean _tmp25_;
	GeeSet* _tmp26_;
	FolksPersona* _tmp27_;
	GeeSet* _tmp28_;
	gboolean _tmp29_;
	FolksPersona* _tmp30_;
	FolksPersona* _tmp31_;
	GeeSet* _tmp32_;
	GeeSet* _tmp33_;
	FolksPersona* _tmp34_;
	FolksPersonaStore* _tmp35_;
	FolksPersonaStore* _tmp36_;
	gboolean _tmp37_;
	gboolean _tmp38_;
	gboolean _tmp39_;
	ContactsContact* _tmp40_;
	gboolean _tmp41_;
	FolksPersona* _tmp42_;
	FolksPersona* _tmp43_;
	FolksPersonaStore* _tmp44_;
	FolksPersonaStore* _tmp45_;
	gboolean _tmp46_;
	gboolean _tmp47_;
	GeeIterator* _p2_it;
	ContactsContact* _tmp48_;
	FolksIndividual* _tmp49_;
	GeeSet* _tmp50_;
	GeeSet* _tmp51_;
	GeeIterator* _tmp52_;
	GeeIterator* _tmp53_;
	gboolean _tmp54_;
	FolksPersona* p2;
	GeeIterator* _tmp55_;
	gpointer _tmp56_;
	FolksPersona* _tmp57_;
	GeeSet* _tmp58_;
	gboolean _tmp59_;
	gboolean _tmp60_;
	FolksPersona* _tmp61_;
	FolksPersona* _tmp62_;
	FolksPersonaStore* _tmp63_;
	FolksPersonaStore* _tmp64_;
	gboolean _tmp65_;
	gboolean _tmp66_;
	FolksPersona* _tmp67_;
	FolksPersona* _tmp68_;
	GeeSet* _tmp69_;
	GeeSet* _tmp70_;
	FolksPersona* _tmp71_;
	FolksPersonaStore* _tmp72_;
	FolksPersonaStore* _tmp73_;
	gboolean _tmp74_;
	gboolean _tmp75_;
	FolksPersona* _tmp76_;
	GHashTable* details;
	GHashFunc _tmp77_;
	GEqualFunc _tmp78_;
	GHashTable* _tmp79_;
	GValue v;
	GValue _tmp80_;
	ContactsContact* _tmp81_;
	const gchar* _tmp82_;
	const gchar* _tmp83_;
	GHashTable* _tmp84_;
	gchar* _tmp85_;
	GValue _tmp86_;
	GValue _tmp87_;
	GValue* _tmp88_;
	FolksPersona* _tmp89_;
	ContactsApp* _tmp90_;
	ContactsStore* _tmp91_;
	FolksIndividualAggregator* _tmp92_;
	FolksIndividualAggregator* _tmp93_;
	FolksPersonaStore* _tmp94_;
	FolksPersonaStore* _tmp95_;
	GHashTable* _tmp96_;
	FolksPersona* _tmp97_;
	FolksPersona* _tmp98_;
	ContactsLinkOperation* _tmp99_;
	FolksPersona* _tmp100_;
	GeeSet* _tmp101_;
	GeeSet* _tmp102_;
	GeeSet* _tmp103_;
	GeeSet* _tmp104_;
	GeeSet* _tmp105_;
	GError* e;
	ContactsContact* _tmp106_;
	GError* _tmp107_;
	const gchar* _tmp108_;
	FolksPersona* _tmp109_;
	GeeSet* _tmp110_;
	ContactsLinkOperation* _tmp111_;
	ContactsContact* _tmp112_;
	GError * _inner_error_;
};

struct _ContactsUnlinkPersonaData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsContact* contact;
	FolksPersona* persona_to_unlink;
	ContactsLinkOperation* result;
	FolksIndividual* individual;
	ContactsContact* _tmp0_;
	FolksIndividual* _tmp1_;
	FolksIndividual* _tmp2_;
	GeeHashSet* persona_to_unlink_removals;
	GeeHashSet* _tmp3_;
	GeeHashSet* other_personas_removals;
	GeeHashSet* _tmp4_;
	ContactsLinkOperation* operation;
	ContactsLinkOperation* _tmp5_;
	ContactsLinkOperation* _tmp6_;
	ContactsContact* _tmp7_;
	GeeIterator* _a1_it;
	FolksPersona* _tmp8_;
	GeeSet* _tmp9_;
	GeeSet* _tmp10_;
	GeeIterator* _tmp11_;
	GeeIterator* _tmp12_;
	GeeIterator* _tmp13_;
	gboolean _tmp14_;
	ContactsPersonaAttribute* a1;
	GeeIterator* _tmp15_;
	gpointer _tmp16_;
	gboolean used_to_link;
	GeeIterator* _persona_it;
	FolksIndividual* _tmp17_;
	GeeSet* _tmp18_;
	GeeSet* _tmp19_;
	GeeIterator* _tmp20_;
	GeeIterator* _tmp21_;
	gboolean _tmp22_;
	FolksPersona* persona;
	GeeIterator* _tmp23_;
	gpointer _tmp24_;
	gboolean _tmp25_;
	FolksPersona* _tmp26_;
	FolksPersona* _tmp27_;
	ContactsPersonaAttribute* _tmp28_;
	FolksPersona* _tmp29_;
	gboolean _tmp30_;
	gboolean _tmp31_;
	ContactsPersonaAttribute* _tmp32_;
	FolksPersona* _tmp33_;
	gboolean _tmp34_;
	GeeHashSet* _tmp35_;
	ContactsPersonaAttribute* _tmp36_;
	GeeHashSet* _tmp37_;
	ContactsPersonaAttribute* _tmp38_;
	GeeHashSet* main_persona_additions;
	GeeHashSet* _tmp39_;
	GeeIterator* _p1_it;
	FolksIndividual* _tmp40_;
	GeeSet* _tmp41_;
	GeeSet* _tmp42_;
	GeeIterator* _tmp43_;
	GeeIterator* _tmp44_;
	gboolean _tmp45_;
	FolksPersona* p1;
	GeeIterator* _tmp46_;
	gpointer _tmp47_;
	FolksPersona* _tmp48_;
	FolksPersona* _tmp49_;
	GeeIterator* _a2_it;
	FolksPersona* _tmp50_;
	GeeSet* _tmp51_;
	GeeSet* _tmp52_;
	GeeIterator* _tmp53_;
	GeeIterator* _tmp54_;
	GeeIterator* _tmp55_;
	gboolean _tmp56_;
	ContactsPersonaAttribute* a2;
	GeeIterator* _tmp57_;
	gpointer _tmp58_;
	GeeHashSet* _tmp59_;
	ContactsPersonaAttribute* _tmp60_;
	gboolean _tmp61_;
	GeeHashSet* _tmp62_;
	ContactsPersonaAttribute* _tmp63_;
	FolksPersona* main_persona;
	GeeIterator* _p2_it;
	FolksIndividual* _tmp64_;
	GeeSet* _tmp65_;
	GeeSet* _tmp66_;
	GeeIterator* _tmp67_;
	GeeIterator* _tmp68_;
	gboolean _tmp69_;
	FolksPersona* p2;
	GeeIterator* _tmp70_;
	gpointer _tmp71_;
	gboolean _tmp72_;
	FolksPersona* _tmp73_;
	FolksPersona* _tmp74_;
	FolksPersona* _tmp75_;
	GeeHashSet* _tmp76_;
	gboolean _tmp77_;
	FolksPersona* _tmp78_;
	FolksPersona* _tmp79_;
	FolksPersona* _tmp80_;
	FolksPersonaStore* _tmp81_;
	FolksPersonaStore* _tmp82_;
	gboolean _tmp83_;
	gboolean _tmp84_;
	GeeHashSet* other_personas;
	GeeHashSet* _tmp85_;
	GeeIterator* _p3_it;
	FolksIndividual* _tmp86_;
	GeeSet* _tmp87_;
	GeeSet* _tmp88_;
	GeeIterator* _tmp89_;
	GeeIterator* _tmp90_;
	gboolean _tmp91_;
	FolksPersona* p3;
	GeeIterator* _tmp92_;
	gpointer _tmp93_;
	gboolean _tmp94_;
	FolksPersona* _tmp95_;
	FolksPersona* _tmp96_;
	FolksPersona* _tmp97_;
	FolksPersona* _tmp98_;
	GeeHashSet* _tmp99_;
	FolksPersona* _tmp100_;
	gboolean _tmp101_;
	FolksPersona* _tmp102_;
	GeeHashSet* _tmp103_;
	gint _tmp104_;
	gint _tmp105_;
	GHashTable* details;
	GHashFunc _tmp106_;
	GEqualFunc _tmp107_;
	GHashTable* _tmp108_;
	FolksPersona* _tmp109_;
	ContactsContact* _tmp110_;
	ContactsStore* _tmp111_;
	FolksIndividualAggregator* _tmp112_;
	FolksIndividualAggregator* _tmp113_;
	FolksPersonaStore* _tmp114_;
	FolksPersonaStore* _tmp115_;
	GHashTable* _tmp116_;
	FolksPersona* _tmp117_;
	FolksPersona* _tmp118_;
	FolksPersona* _tmp119_;
	ContactsContact* _tmp120_;
	const gchar* _tmp121_;
	const gchar* _tmp122_;
	ContactsLinkOperation* _tmp123_;
	FolksPersona* _tmp124_;
	GError* e;
	GError* _tmp125_;
	const gchar* _tmp126_;
	FolksPersona* _tmp127_;
	FolksPersona* _tmp128_;
	FolksPersona* _tmp129_;
	GeeHashSet* _tmp130_;
	GeeHashSet* _tmp131_;
	ContactsLinkOperation* _tmp132_;
	GeeIterator* _p_it;
	GeeHashSet* _tmp133_;
	GeeIterator* _tmp134_;
	GeeIterator* _tmp135_;
	gboolean _tmp136_;
	FolksPersona* p;
	GeeIterator* _tmp137_;
	gpointer _tmp138_;
	FolksPersona* _tmp139_;
	GeeHashSet* _tmp140_;
	ContactsLinkOperation* _tmp141_;
	FolksPersona* _tmp142_;
	GeeHashSet* _tmp143_;
	ContactsLinkOperation* _tmp144_;
	FolksPersona* _tmp145_;
	GError * _inner_error_;
};

struct _ContactsLinkOperation2 {
	GObject parent_instance;
	ContactsLinkOperation2Private * priv;
};

struct _ContactsLinkOperation2Class {
	GObjectClass parent_class;
};

struct _ContactsLinkOperation2Private {
	GeeLinkedList* old_personas_distribution;
};

struct _ContactsLinkOperation2UndoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	ContactsLinkOperation2* self;
	FolksIndividual* ind;
	GeeLinkedList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	GeeHashSet* ps;
	GeeLinkedList* _tmp3_;
	gpointer _tmp4_;
	GeeIterator* _p_it;
	GeeHashSet* _tmp5_;
	GeeIterator* _tmp6_;
	GeeIterator* _tmp7_;
	gboolean _tmp8_;
	FolksPersona* p;
	GeeIterator* _tmp9_;
	gpointer _tmp10_;
	FolksPersona* _tmp11_;
	FolksIndividual* _tmp12_;
	FolksIndividual* _tmp13_;
	FolksIndividual* _tmp14_;
	FolksIndividual* _tmp15_;
	ContactsApp* _tmp16_;
	ContactsStore* _tmp17_;
	FolksIndividualAggregator* _tmp18_;
	FolksIndividualAggregator* _tmp19_;
	FolksIndividual* _tmp20_;
	GError* e1;
	FolksIndividual* _tmp21_;
	const gchar* _tmp22_;
	const gchar* _tmp23_;
	GError* _tmp24_;
	const gchar* _tmp25_;
	GeeLinkedList* _ps_list;
	GeeLinkedList* _tmp26_;
	GeeLinkedList* _tmp27_;
	gint _ps_size;
	GeeLinkedList* _tmp28_;
	gint _tmp29_;
	gint _tmp30_;
	gint _ps_index;
	gint _tmp31_;
	gint _tmp32_;
	gint _tmp33_;
	GeeHashSet* _vala1_ps;
	GeeLinkedList* _tmp34_;
	gint _tmp35_;
	gpointer _tmp36_;
	ContactsApp* _tmp37_;
	ContactsStore* _tmp38_;
	FolksIndividualAggregator* _tmp39_;
	FolksIndividualAggregator* _tmp40_;
	GeeHashSet* _tmp41_;
	GError* _vala1_e1;
	GError* _tmp42_;
	const gchar* _tmp43_;
	GError * _inner_error_;
};

struct _ContactsLinkContactsListData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GAsyncReadyCallback _callback_;
	gboolean _task_complete_;
	GeeLinkedList* contact_list;
	ContactsLinkOperation2* result;
	ContactsLinkOperation2* operation;
	ContactsLinkOperation2* _tmp0_;
	GeeHashSet* all_personas;
	GeeHashSet* _tmp1_;
	GeeLinkedList* _c_list;
	GeeLinkedList* _tmp2_;
	GeeLinkedList* _tmp3_;
	gint _c_size;
	GeeLinkedList* _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gint _c_index;
	gint _tmp7_;
	gint _tmp8_;
	gint _tmp9_;
	ContactsContact* c;
	GeeLinkedList* _tmp10_;
	gint _tmp11_;
	gpointer _tmp12_;
	GeeSet* ps;
	ContactsContact* _tmp13_;
	FolksIndividual* _tmp14_;
	GeeSet* _tmp15_;
	GeeSet* _tmp16_;
	GeeSet* _tmp17_;
	GeeHashSet* _tmp18_;
	GeeSet* _tmp19_;
	ContactsLinkOperation2* _tmp20_;
	GeeSet* _tmp21_;
	ContactsApp* _tmp22_;
	ContactsStore* _tmp23_;
	FolksIndividualAggregator* _tmp24_;
	FolksIndividualAggregator* _tmp25_;
	GeeHashSet* _tmp26_;
	GError* e1;
	GError* _tmp27_;
	const gchar* _tmp28_;
	GError * _inner_error_;
};


static gpointer contacts_link_operation_parent_class = NULL;
static gpointer contacts_link_operation_change_parent_class = NULL;
static gpointer contacts_persona_attribute_parent_class = NULL;
static gpointer contacts_persona_attribute_local_id_parent_class = NULL;
static gpointer contacts_persona_attribute_im_address_parent_class = NULL;
static gpointer contacts_persona_attribute_web_service_parent_class = NULL;
extern ContactsApp* contacts_app_app;
static gpointer contacts_link_operation2_parent_class = NULL;

GType contacts_link_operation_get_type (void) G_GNUC_CONST;
GType contacts_contact_get_type (void) G_GNUC_CONST;
gpointer contacts_link_operation_change_ref (gpointer instance);
void contacts_link_operation_change_unref (gpointer instance);
GParamSpec* contacts_link_operation_param_spec_change (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void contacts_link_operation_value_set_change (GValue* value, gpointer v_object);
void contacts_link_operation_value_take_change (GValue* value, gpointer v_object);
gpointer contacts_link_operation_value_get_change (const GValue* value);
GType contacts_link_operation_change_get_type (void) G_GNUC_CONST;
#define CONTACTS_LINK_OPERATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CONTACTS_TYPE_LINK_OPERATION, ContactsLinkOperationPrivate))
ContactsLinkOperation* contacts_link_operation_new (void);
ContactsLinkOperation* contacts_link_operation_construct (GType object_type);
void contacts_link_operation_set_main_contact (ContactsLinkOperation* self, ContactsContact* contact);
void contacts_link_operation_set_split_out_contact (ContactsLinkOperation* self, ContactsContact* contact);
GType contacts_store_get_type (void) G_GNUC_CONST;
void contacts_link_operation_added_persona (ContactsLinkOperation* self, FolksPersona* persona);
GType contacts_persona_attribute_get_type (void) G_GNUC_CONST;
void contacts_link_operation_add_change (ContactsLinkOperation* self, ContactsPersonaAttribute* attribute, FolksPersona* persona, GObject* old_value);
ContactsLinkOperationChange* contacts_link_operation_change_new (void);
ContactsLinkOperationChange* contacts_link_operation_change_construct (GType object_type);
static void contacts_link_operation_undo_data_free (gpointer _data);
static void contacts_link_operation_undo_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
void contacts_link_operation_undo (ContactsLinkOperation* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void contacts_link_operation_undo_finish (ContactsLinkOperation* self, GAsyncResult* _res_);
static gboolean contacts_link_operation_undo_co (ContactsLinkOperationUndoData* _data_);
static void contacts_link_operation_undo_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void contacts_persona_attribute_set_value (ContactsPersonaAttribute* self, FolksPersona* persona, GObject* value, GAsyncReadyCallback _callback_, gpointer _user_data_);
void contacts_persona_attribute_set_value_finish (ContactsPersonaAttribute* self, GAsyncResult* _res_);
static void contacts_link_operation_change_finalize (ContactsLinkOperationChange * obj);
static void contacts_link_operation_finalize (GObject * obj);
GeeHashSet* contacts_persona_attribute_create_set (void);
guint contacts_persona_attribute_hash (ContactsPersonaAttribute* self);
gboolean contacts_persona_attribute_equal (ContactsPersonaAttribute* self, ContactsPersonaAttribute* that);
gboolean contacts_persona_attribute_is_removable (ContactsPersonaAttribute* self, FolksPersona* from_persona);
static gboolean contacts_persona_attribute_real_is_removable (ContactsPersonaAttribute* self, FolksPersona* from_persona);
static gboolean _vala_string_array_contains (gchar* * stack, int stack_length, gchar* needle);
gboolean contacts_persona_attribute_is_referenced_by_persona (ContactsPersonaAttribute* self, FolksPersona* persona);
static gboolean contacts_persona_attribute_real_is_referenced_by_persona (ContactsPersonaAttribute* self, FolksPersona* persona);
static gboolean contacts_persona_attribute_real_equal (ContactsPersonaAttribute* self, ContactsPersonaAttribute* that);
static guint contacts_persona_attribute_real_hash (ContactsPersonaAttribute* self);
void contacts_persona_attribute_persona_apply_attributes (ContactsPersonaAttribute* self, FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_);
void contacts_persona_attribute_persona_apply_attributes_finish (ContactsPersonaAttribute* self, GAsyncResult* _res_);
ContactsPersonaAttribute* contacts_persona_attribute_construct (GType object_type);
static void contacts_persona_attribute_finalize (GObject * obj);
GType contacts_persona_attribute_local_id_get_type (void) G_GNUC_CONST;
#define CONTACTS_PERSONA_ATTRIBUTE_LOCAL_ID_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID, ContactsPersonaAttributeLocalIdPrivate))
ContactsPersonaAttributeLocalId* contacts_persona_attribute_local_id_new (const gchar* value);
ContactsPersonaAttributeLocalId* contacts_persona_attribute_local_id_construct (GType object_type, const gchar* value);
static gboolean contacts_persona_attribute_local_id_real_is_removable (ContactsPersonaAttribute* base, FolksPersona* from_persona);
static gboolean contacts_persona_attribute_local_id_real_is_referenced_by_persona (ContactsPersonaAttribute* base, FolksPersona* persona);
static void contacts_persona_attribute_local_id_real_persona_apply_attributes_data_free (gpointer _data);
static void contacts_persona_attribute_local_id_real_persona_apply_attributes_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static void contacts_persona_attribute_local_id_real_persona_apply_attributes (ContactsPersonaAttribute* base, FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean contacts_persona_attribute_local_id_real_persona_apply_attributes_co (ContactsPersonaAttributeLocalIdPersonaApplyAttributesData* _data_);
static void contacts_persona_attribute_local_id_persona_apply_attributes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void contacts_persona_attribute_local_id_real_set_value_data_free (gpointer _data);
static void contacts_persona_attribute_local_id_real_set_value_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static void contacts_persona_attribute_local_id_real_set_value (ContactsPersonaAttribute* base, FolksPersona* persona, GObject* value, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean contacts_persona_attribute_local_id_real_set_value_co (ContactsPersonaAttributeLocalIdSetValueData* _data_);
static void contacts_persona_attribute_local_id_set_value_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static gboolean contacts_persona_attribute_local_id_real_equal (ContactsPersonaAttribute* base, ContactsPersonaAttribute* _that);
static guint contacts_persona_attribute_local_id_real_hash (ContactsPersonaAttribute* base);
static void contacts_persona_attribute_local_id_finalize (GObject * obj);
GType contacts_persona_attribute_im_address_get_type (void) G_GNUC_CONST;
#define CONTACTS_PERSONA_ATTRIBUTE_IM_ADDRESS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, ContactsPersonaAttributeImAddressPrivate))
ContactsPersonaAttributeImAddress* contacts_persona_attribute_im_address_new (const gchar* protocol, FolksImFieldDetails* detail);
ContactsPersonaAttributeImAddress* contacts_persona_attribute_im_address_construct (GType object_type, const gchar* protocol, FolksImFieldDetails* detail);
static gboolean contacts_persona_attribute_im_address_real_is_referenced_by_persona (ContactsPersonaAttribute* base, FolksPersona* persona);
static void contacts_persona_attribute_im_address_real_persona_apply_attributes_data_free (gpointer _data);
static void contacts_persona_attribute_im_address_real_persona_apply_attributes_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static void contacts_persona_attribute_im_address_real_persona_apply_attributes (ContactsPersonaAttribute* base, FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean contacts_persona_attribute_im_address_real_persona_apply_attributes_co (ContactsPersonaAttributeImAddressPersonaApplyAttributesData* _data_);
static guint _folks_abstract_field_details_hash_static_gee_hash_data_func (gconstpointer v, gpointer self);
static gboolean _folks_abstract_field_details_equal_static_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
static void contacts_persona_attribute_im_address_persona_apply_attributes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void contacts_persona_attribute_im_address_real_set_value_data_free (gpointer _data);
static void contacts_persona_attribute_im_address_real_set_value_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static void contacts_persona_attribute_im_address_real_set_value (ContactsPersonaAttribute* base, FolksPersona* persona, GObject* value, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean contacts_persona_attribute_im_address_real_set_value_co (ContactsPersonaAttributeImAddressSetValueData* _data_);
static void contacts_persona_attribute_im_address_set_value_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static gboolean contacts_persona_attribute_im_address_real_equal (ContactsPersonaAttribute* base, ContactsPersonaAttribute* _that);
static guint contacts_persona_attribute_im_address_real_hash (ContactsPersonaAttribute* base);
static void contacts_persona_attribute_im_address_finalize (GObject * obj);
GType contacts_persona_attribute_web_service_get_type (void) G_GNUC_CONST;
#define CONTACTS_PERSONA_ATTRIBUTE_WEB_SERVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, ContactsPersonaAttributeWebServicePrivate))
ContactsPersonaAttributeWebService* contacts_persona_attribute_web_service_new (const gchar* service, FolksWebServiceFieldDetails* detail);
ContactsPersonaAttributeWebService* contacts_persona_attribute_web_service_construct (GType object_type, const gchar* service, FolksWebServiceFieldDetails* detail);
static gboolean contacts_persona_attribute_web_service_real_is_referenced_by_persona (ContactsPersonaAttribute* base, FolksPersona* persona);
static void contacts_persona_attribute_web_service_real_persona_apply_attributes_data_free (gpointer _data);
static void contacts_persona_attribute_web_service_real_persona_apply_attributes_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static void contacts_persona_attribute_web_service_real_persona_apply_attributes (ContactsPersonaAttribute* base, FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean contacts_persona_attribute_web_service_real_persona_apply_attributes_co (ContactsPersonaAttributeWebServicePersonaApplyAttributesData* _data_);
static void contacts_persona_attribute_web_service_persona_apply_attributes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void contacts_persona_attribute_web_service_real_set_value_data_free (gpointer _data);
static void contacts_persona_attribute_web_service_real_set_value_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
static void contacts_persona_attribute_web_service_real_set_value (ContactsPersonaAttribute* base, FolksPersona* persona, GObject* value, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean contacts_persona_attribute_web_service_real_set_value_co (ContactsPersonaAttributeWebServiceSetValueData* _data_);
static void contacts_persona_attribute_web_service_set_value_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static gboolean contacts_persona_attribute_web_service_real_equal (ContactsPersonaAttribute* base, ContactsPersonaAttribute* _that);
static guint contacts_persona_attribute_web_service_real_hash (ContactsPersonaAttribute* base);
static void contacts_persona_attribute_web_service_finalize (GObject * obj);
void contacts_add_linkable_attributes (GeeHashSet* set, FolksPersona* persona);
GeeSet* contacts_get_linkable_attributes (FolksPersona* persona);
GeeSet* contacts_get_linkable_attributes_for_individual (FolksIndividual* individual);
gboolean contacts_persona_can_link_to (FolksPersona* persona, GeeSet* attributes);
gboolean contacts_attr_type_equal (ContactsPersonaAttribute* a, ContactsPersonaAttribute* b);
static void contacts_persona_apply_attributes_data_free (gpointer _data);
static void contacts_persona_apply_attributes_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
void contacts_persona_apply_attributes (FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_);
void contacts_persona_apply_attributes_finish (GAsyncResult* _res_);
static gboolean contacts_persona_apply_attributes_co (ContactsPersonaApplyAttributesData* _data_);
static void contacts_persona_apply_attributes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void contacts_link_contacts_data_free (gpointer _data);
static void contacts_link_contacts_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
void contacts_link_contacts (ContactsContact* main, ContactsContact* other, GAsyncReadyCallback _callback_, gpointer _user_data_);
ContactsLinkOperation* contacts_link_contacts_finish (GAsyncResult* _res_);
static gboolean contacts_link_contacts_co (ContactsLinkContactsData* _data_);
static void _g_free0_ (gpointer var);
static void _vala_GValue_free (GValue* self);
static void __vala_GValue_free0_ (gpointer var);
const gchar* contacts_contact_get_display_name (ContactsContact* self);
static GValue* _g_value_dup (GValue* self);
void contacts_contact_create_primary_persona_for_details (FolksPersonaStore* store, GHashTable* details, GAsyncReadyCallback _callback_, gpointer _user_data_);
FolksPersona* contacts_contact_create_primary_persona_for_details_finish (GAsyncResult* _res_, GError** error);
GType contacts_app_get_type (void) G_GNUC_CONST;
GType contacts_window_get_type (void) G_GNUC_CONST;
FolksIndividualAggregator* contacts_store_get_aggregator (ContactsStore* self);
static void contacts_link_contacts_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void contacts_unlink_persona_data_free (gpointer _data);
static void contacts_unlink_persona_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
void contacts_unlink_persona (ContactsContact* contact, FolksPersona* persona_to_unlink, GAsyncReadyCallback _callback_, gpointer _user_data_);
ContactsLinkOperation* contacts_unlink_persona_finish (GAsyncResult* _res_);
static gboolean contacts_unlink_persona_co (ContactsUnlinkPersonaData* _data_);
static void contacts_unlink_persona_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
GType contacts_link_operation2_get_type (void) G_GNUC_CONST;
#define CONTACTS_LINK_OPERATION2_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CONTACTS_TYPE_LINK_OPERATION2, ContactsLinkOperation2Private))
ContactsLinkOperation2* contacts_link_operation2_new (void);
ContactsLinkOperation2* contacts_link_operation2_construct (GType object_type);
void contacts_link_operation2_add_persona_set (ContactsLinkOperation2* self, GeeSet* persona_set);
static void contacts_link_operation2_undo_data_free (gpointer _data);
static void contacts_link_operation2_undo_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
void contacts_link_operation2_undo (ContactsLinkOperation2* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void contacts_link_operation2_undo_finish (ContactsLinkOperation2* self, GAsyncResult* _res_);
static gboolean contacts_link_operation2_undo_co (ContactsLinkOperation2UndoData* _data_);
static void contacts_link_operation2_undo_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void contacts_link_operation2_finalize (GObject * obj);
static void contacts_link_contacts_list_data_free (gpointer _data);
static void contacts_link_contacts_list_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data);
void contacts_link_contacts_list (GeeLinkedList* contact_list, GAsyncReadyCallback _callback_, gpointer _user_data_);
ContactsLinkOperation2* contacts_link_contacts_list_finish (GAsyncResult* _res_);
static gboolean contacts_link_contacts_list_co (ContactsLinkContactsListData* _data_);
static void contacts_link_contacts_list_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);


ContactsLinkOperation* contacts_link_operation_construct (GType object_type) {
	ContactsLinkOperation * self = NULL;
	GeeArrayList* _tmp0_;
#line 35 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsLinkOperation*) g_object_new (object_type, NULL);
#line 36 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = gee_array_list_new (CONTACTS_LINK_OPERATION_TYPE_CHANGE, (GBoxedCopyFunc) contacts_link_operation_change_ref, (GDestroyNotify) contacts_link_operation_change_unref, NULL, NULL, NULL);
#line 36 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->changes);
#line 36 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv->changes = _tmp0_;
#line 35 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return self;
#line 1561 "contacts-linking.c"
}


ContactsLinkOperation* contacts_link_operation_new (void) {
#line 35 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return contacts_link_operation_construct (CONTACTS_TYPE_LINK_OPERATION);
#line 1568 "contacts-linking.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 40 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return self ? g_object_ref (self) : NULL;
#line 1575 "contacts-linking.c"
}


void contacts_link_operation_set_main_contact (ContactsLinkOperation* self, ContactsContact* contact) {
	ContactsContact* _tmp0_;
	ContactsContact* _tmp1_;
#line 39 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (self != NULL);
#line 40 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = contact;
#line 40 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 40 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->main_contact);
#line 40 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv->main_contact = _tmp1_;
#line 1592 "contacts-linking.c"
}


void contacts_link_operation_set_split_out_contact (ContactsLinkOperation* self, ContactsContact* contact) {
	ContactsContact* _tmp0_;
#line 43 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (self != NULL);
#line 44 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = contact;
#line 44 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp0_ != NULL) {
#line 1604 "contacts-linking.c"
		GeeArrayList* _tmp1_;
		GeeArrayList* _tmp2_;
		ContactsContact* _tmp3_;
		FolksIndividual* _tmp4_;
		GeeSet* _tmp5_;
		GeeSet* _tmp6_;
#line 45 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp1_ = gee_array_list_new (FOLKS_TYPE_PERSONA, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 45 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (self->priv->split_out_personas);
#line 45 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		self->priv->split_out_personas = _tmp1_;
#line 46 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp2_ = self->priv->split_out_personas;
#line 46 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = contact;
#line 46 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp4_ = _tmp3_->individual;
#line 46 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp5_ = folks_individual_get_personas (_tmp4_);
#line 46 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp6_ = _tmp5_;
#line 46 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		gee_array_list_add_all (_tmp2_, (GeeCollection*) _tmp6_);
#line 1629 "contacts-linking.c"
	}
}


void contacts_link_operation_added_persona (ContactsLinkOperation* self, FolksPersona* persona) {
	FolksPersona* _tmp0_;
	FolksPersona* _tmp1_;
#line 50 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (self != NULL);
#line 50 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (persona != NULL);
#line 51 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = persona;
#line 51 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 51 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->_added_persona);
#line 51 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv->_added_persona = _tmp1_;
#line 1649 "contacts-linking.c"
}


void contacts_link_operation_add_change (ContactsLinkOperation* self, ContactsPersonaAttribute* attribute, FolksPersona* persona, GObject* old_value) {
	ContactsLinkOperationChange* c = NULL;
	ContactsLinkOperationChange* _tmp0_;
	ContactsPersonaAttribute* _tmp1_;
	ContactsPersonaAttribute* _tmp2_;
	FolksPersona* _tmp3_;
	FolksPersona* _tmp4_;
	GObject* _tmp5_;
	GObject* _tmp6_;
	GeeArrayList* _tmp7_;
#line 54 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (self != NULL);
#line 54 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (attribute != NULL);
#line 54 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (persona != NULL);
#line 54 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (old_value != NULL);
#line 55 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = contacts_link_operation_change_new ();
#line 55 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	c = _tmp0_;
#line 56 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = attribute;
#line 56 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 56 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (c->attribute);
#line 56 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	c->attribute = _tmp2_;
#line 57 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = persona;
#line 57 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 57 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (c->persona);
#line 57 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	c->persona = _tmp4_;
#line 58 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp5_ = old_value;
#line 58 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp6_ = _g_object_ref0 (_tmp5_);
#line 58 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (c->old_value);
#line 58 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	c->old_value = _tmp6_;
#line 59 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp7_ = self->priv->changes;
#line 59 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, c);
#line 54 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_contacts_link_operation_change_unref0 (c);
#line 1705 "contacts-linking.c"
}


static void contacts_link_operation_undo_data_free (gpointer _data) {
	ContactsLinkOperationUndoData* _data_;
	_data_ = _data;
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->self);
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_slice_free (ContactsLinkOperationUndoData, _data_);
#line 1716 "contacts-linking.c"
}


static void contacts_link_operation_undo_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsLinkOperationUndoData* _task_data_;
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_task_data_->_callback_ != NULL) {
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 1728 "contacts-linking.c"
	}
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_->_task_complete_ = TRUE;
#line 1732 "contacts-linking.c"
}


void contacts_link_operation_undo (ContactsLinkOperation* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsLinkOperationUndoData* _data_;
	ContactsLinkOperation* _tmp0_;
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_slice_new0 (ContactsLinkOperationUndoData);
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_callback_ = _callback_;
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, contacts_link_operation_undo_async_ready_wrapper, _user_data_);
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_callback_ == NULL) {
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_task_complete_ = TRUE;
#line 1749 "contacts-linking.c"
	}
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_set_task_data (_data_->_async_result, _data_, contacts_link_operation_undo_data_free);
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->self = _tmp0_;
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_operation_undo_co (_data_);
#line 1759 "contacts-linking.c"
}


void contacts_link_operation_undo_finish (ContactsLinkOperation* self, GAsyncResult* _res_) {
	ContactsLinkOperationUndoData* _data_;
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 1767 "contacts-linking.c"
}


static void contacts_link_operation_undo_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsLinkOperationUndoData* _data_;
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_operation_undo_co (_data_);
#line 1783 "contacts-linking.c"
}


static gboolean contacts_link_operation_undo_co (ContactsLinkOperationUndoData* _data_) {
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 1792 "contacts-linking.c"
		goto _state_0;
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 1796 "contacts-linking.c"
		goto _state_1;
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 2:
#line 1800 "contacts-linking.c"
		goto _state_2;
		default:
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 1805 "contacts-linking.c"
	}
	_state_0:
#line 63 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->self->priv->main_contact;
#line 63 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp0_ != NULL) {
#line 64 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp1_ = _data_->self->priv->main_contact;
#line 64 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_set_data_full ((GObject*) _data_->_tmp1_, "contacts-master-at-join", (gpointer) ((gintptr) TRUE), NULL);
#line 1816 "contacts-linking.c"
	}
#line 65 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _data_->self->priv->split_out_personas;
#line 65 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp2_ != NULL) {
#line 1822 "contacts-linking.c"
		{
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp3_ = _data_->self->priv->split_out_personas;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp4_ = _g_object_ref0 (_data_->_tmp3_);
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_p_list = _data_->_tmp4_;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp5_ = _data_->_p_list;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data_->_tmp5_);
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp7_ = _data_->_tmp6_;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_p_size = _data_->_tmp7_;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_p_index = -1;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp8_ = _data_->_p_index;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_p_index = _data_->_tmp8_ + 1;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp9_ = _data_->_p_index;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp10_ = _data_->_p_size;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!(_data_->_tmp9_ < _data_->_tmp10_)) {
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 1854 "contacts-linking.c"
				}
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp11_ = _data_->_p_list;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp12_ = _data_->_p_index;
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp13_ = gee_abstract_list_get ((GeeAbstractList*) _data_->_tmp11_, _data_->_tmp12_);
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->p = (FolksPersona*) _data_->_tmp13_;
#line 67 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp14_ = _data_->p;
#line 67 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_object_set_data_full ((GObject*) _data_->_tmp14_, "contacts-new-contact", (gpointer) ((gintptr) TRUE), NULL);
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->p);
#line 1870 "contacts-linking.c"
			}
#line 66 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_p_list);
#line 1874 "contacts-linking.c"
		}
	}
	{
#line 71 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp15_ = _data_->self->priv->_added_persona;
#line 71 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (_data_->_tmp15_ != NULL) {
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp16_ = _data_->self->priv->_added_persona;
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp17_ = folks_persona_get_store (_data_->_tmp16_);
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp18_ = _data_->_tmp17_;
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp19_ = _data_->self->priv->_added_persona;
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 1;
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_persona_store_remove_persona (_data_->_tmp18_, _data_->_tmp19_, contacts_link_operation_undo_ready, _data_);
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 1896 "contacts-linking.c"
			_state_1:
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_persona_store_remove_persona_finish (_data_->_tmp18_, _data_->_res_, &_data_->_inner_error_);
#line 72 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 1902 "contacts-linking.c"
				goto __catch11_g_error;
			}
		}
		{
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp20_ = _data_->self->priv->changes;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp21_ = _g_object_ref0 (_data_->_tmp20_);
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_c_list = _data_->_tmp21_;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp22_ = _data_->_c_list;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp23_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data_->_tmp22_);
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp24_ = _data_->_tmp23_;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_c_size = _data_->_tmp24_;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_c_index = -1;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp25_ = _data_->_c_index;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_c_index = _data_->_tmp25_ + 1;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp26_ = _data_->_c_index;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp27_ = _data_->_c_size;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!(_data_->_tmp26_ < _data_->_tmp27_)) {
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 1937 "contacts-linking.c"
				}
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp28_ = _data_->_c_list;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp29_ = _data_->_c_index;
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp30_ = gee_abstract_list_get ((GeeAbstractList*) _data_->_tmp28_, _data_->_tmp29_);
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->c = (ContactsLinkOperationChange*) _data_->_tmp30_;
#line 75 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp31_ = _data_->c;
#line 75 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp32_ = _data_->_tmp31_->persona;
#line 75 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp33_ = _data_->self->priv->_added_persona;
#line 75 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (_data_->_tmp32_ != _data_->_tmp33_) {
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp34_ = _data_->c;
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp35_ = _data_->_tmp34_->attribute;
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp36_ = _data_->c;
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp37_ = _data_->_tmp36_->persona;
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp38_ = _data_->c;
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp39_ = _data_->_tmp38_->old_value;
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_state_ = 2;
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					contacts_persona_attribute_set_value (_data_->_tmp35_, _data_->_tmp37_, _data_->_tmp39_, contacts_link_operation_undo_ready, _data_);
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					return FALSE;
#line 1973 "contacts-linking.c"
					_state_2:
#line 76 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					contacts_persona_attribute_set_value_finish (_data_->_tmp35_, _data_->_res_);
#line 1977 "contacts-linking.c"
				}
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_contacts_link_operation_change_unref0 (_data_->c);
#line 1981 "contacts-linking.c"
			}
#line 74 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_c_list);
#line 1985 "contacts-linking.c"
		}
	}
	goto __finally11;
	__catch11_g_error:
	{
#line 70 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->e = _data_->_inner_error_;
#line 70 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_inner_error_ = NULL;
#line 80 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp40_ = _data_->e;
#line 80 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp41_ = _data_->_tmp40_->message;
#line 80 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_warning ("contacts-linking.vala:80: Error when undoing linking: %s\n", _data_->_tmp41_);
#line 70 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_error_free0 (_data_->e);
#line 2003 "contacts-linking.c"
	}
	__finally11:
#line 70 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 70 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 70 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_clear_error (&_data_->_inner_error_);
#line 70 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 70 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 2016 "contacts-linking.c"
	}
#line 83 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp42_ = _data_->self->priv->main_contact;
#line 83 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp42_ != NULL) {
#line 84 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp43_ = _data_->self->priv->main_contact;
#line 84 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_set_data_full ((GObject*) _data_->_tmp43_, "contacts-master-at-join", (gpointer) ((gintptr) FALSE), NULL);
#line 2026 "contacts-linking.c"
	}
#line 86 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp44_ = _data_->self->priv->split_out_personas;
#line 86 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp44_ != NULL) {
#line 2032 "contacts-linking.c"
		{
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp45_ = _data_->self->priv->split_out_personas;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp46_ = _g_object_ref0 (_data_->_tmp45_);
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_vala1__p_list = _data_->_tmp46_;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp47_ = _data_->_vala1__p_list;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp48_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data_->_tmp47_);
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp49_ = _data_->_tmp48_;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_vala1__p_size = _data_->_tmp49_;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_vala1__p_index = -1;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp50_ = _data_->_vala1__p_index;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_vala1__p_index = _data_->_tmp50_ + 1;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp51_ = _data_->_vala1__p_index;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp52_ = _data_->_vala1__p_size;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!(_data_->_tmp51_ < _data_->_tmp52_)) {
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 2064 "contacts-linking.c"
				}
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp53_ = _data_->_vala1__p_list;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp54_ = _data_->_vala1__p_index;
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp55_ = gee_abstract_list_get ((GeeAbstractList*) _data_->_tmp53_, _data_->_tmp54_);
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_vala1_p = (FolksPersona*) _data_->_tmp55_;
#line 88 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp56_ = _data_->_vala1_p;
#line 88 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_object_set_data_full ((GObject*) _data_->_tmp56_, "contacts-new-contact", (gpointer) ((gintptr) FALSE), NULL);
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_vala1_p);
#line 2080 "contacts-linking.c"
			}
#line 87 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_vala1__p_list);
#line 2084 "contacts-linking.c"
		}
	}
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 2095 "contacts-linking.c"
		}
	}
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 62 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 2102 "contacts-linking.c"
}


ContactsLinkOperationChange* contacts_link_operation_change_construct (GType object_type) {
	ContactsLinkOperationChange* self = NULL;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsLinkOperationChange*) g_type_create_instance (object_type);
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return self;
#line 2112 "contacts-linking.c"
}


ContactsLinkOperationChange* contacts_link_operation_change_new (void) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return contacts_link_operation_change_construct (CONTACTS_LINK_OPERATION_TYPE_CHANGE);
#line 2119 "contacts-linking.c"
}


static void contacts_link_operation_value_change_init (GValue* value) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	value->data[0].v_pointer = NULL;
#line 2126 "contacts-linking.c"
}


static void contacts_link_operation_value_change_free_value (GValue* value) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (value->data[0].v_pointer) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		contacts_link_operation_change_unref (value->data[0].v_pointer);
#line 2135 "contacts-linking.c"
	}
}


static void contacts_link_operation_value_change_copy_value (const GValue* src_value, GValue* dest_value) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (src_value->data[0].v_pointer) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		dest_value->data[0].v_pointer = contacts_link_operation_change_ref (src_value->data[0].v_pointer);
#line 2145 "contacts-linking.c"
	} else {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		dest_value->data[0].v_pointer = NULL;
#line 2149 "contacts-linking.c"
	}
}


static gpointer contacts_link_operation_value_change_peek_pointer (const GValue* value) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return value->data[0].v_pointer;
#line 2157 "contacts-linking.c"
}


static gchar* contacts_link_operation_value_change_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (collect_values[0].v_pointer) {
#line 2164 "contacts-linking.c"
		ContactsLinkOperationChange * object;
		object = collect_values[0].v_pointer;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (object->parent_instance.g_class == NULL) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 2171 "contacts-linking.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 2175 "contacts-linking.c"
		}
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		value->data[0].v_pointer = contacts_link_operation_change_ref (object);
#line 2179 "contacts-linking.c"
	} else {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		value->data[0].v_pointer = NULL;
#line 2183 "contacts-linking.c"
	}
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return NULL;
#line 2187 "contacts-linking.c"
}


static gchar* contacts_link_operation_value_change_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
	ContactsLinkOperationChange ** object_p;
	object_p = collect_values[0].v_pointer;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (!object_p) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 2198 "contacts-linking.c"
	}
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (!value->data[0].v_pointer) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		*object_p = NULL;
#line 2204 "contacts-linking.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		*object_p = value->data[0].v_pointer;
#line 2208 "contacts-linking.c"
	} else {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		*object_p = contacts_link_operation_change_ref (value->data[0].v_pointer);
#line 2212 "contacts-linking.c"
	}
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return NULL;
#line 2216 "contacts-linking.c"
}


GParamSpec* contacts_link_operation_param_spec_change (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
	ContactsLinkOperationParamSpecChange* spec;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (g_type_is_a (object_type, CONTACTS_LINK_OPERATION_TYPE_CHANGE), NULL);
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return G_PARAM_SPEC (spec);
#line 2230 "contacts-linking.c"
}


gpointer contacts_link_operation_value_get_change (const GValue* value) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CONTACTS_LINK_OPERATION_TYPE_CHANGE), NULL);
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return value->data[0].v_pointer;
#line 2239 "contacts-linking.c"
}


void contacts_link_operation_value_set_change (GValue* value, gpointer v_object) {
	ContactsLinkOperationChange * old;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CONTACTS_LINK_OPERATION_TYPE_CHANGE));
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	old = value->data[0].v_pointer;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (v_object) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, CONTACTS_LINK_OPERATION_TYPE_CHANGE));
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		value->data[0].v_pointer = v_object;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		contacts_link_operation_change_ref (value->data[0].v_pointer);
#line 2259 "contacts-linking.c"
	} else {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		value->data[0].v_pointer = NULL;
#line 2263 "contacts-linking.c"
	}
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (old) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		contacts_link_operation_change_unref (old);
#line 2269 "contacts-linking.c"
	}
}


void contacts_link_operation_value_take_change (GValue* value, gpointer v_object) {
	ContactsLinkOperationChange * old;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CONTACTS_LINK_OPERATION_TYPE_CHANGE));
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	old = value->data[0].v_pointer;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (v_object) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, CONTACTS_LINK_OPERATION_TYPE_CHANGE));
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		value->data[0].v_pointer = v_object;
#line 2288 "contacts-linking.c"
	} else {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		value->data[0].v_pointer = NULL;
#line 2292 "contacts-linking.c"
	}
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (old) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		contacts_link_operation_change_unref (old);
#line 2298 "contacts-linking.c"
	}
}


static void contacts_link_operation_change_class_init (ContactsLinkOperationChangeClass * klass) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_operation_change_parent_class = g_type_class_peek_parent (klass);
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsLinkOperationChangeClass *) klass)->finalize = contacts_link_operation_change_finalize;
#line 2308 "contacts-linking.c"
}


static void contacts_link_operation_change_instance_init (ContactsLinkOperationChange * self) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->ref_count = 1;
#line 2315 "contacts-linking.c"
}


static void contacts_link_operation_change_finalize (ContactsLinkOperationChange * obj) {
	ContactsLinkOperationChange * self;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CONTACTS_LINK_OPERATION_TYPE_CHANGE, ContactsLinkOperationChange);
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_signal_handlers_destroy (self);
#line 26 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->attribute);
#line 27 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->persona);
#line 28 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->old_value);
#line 2331 "contacts-linking.c"
}


GType contacts_link_operation_change_get_type (void) {
	static volatile gsize contacts_link_operation_change_type_id__volatile = 0;
	if (g_once_init_enter (&contacts_link_operation_change_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { contacts_link_operation_value_change_init, contacts_link_operation_value_change_free_value, contacts_link_operation_value_change_copy_value, contacts_link_operation_value_change_peek_pointer, "p", contacts_link_operation_value_change_collect_value, "p", contacts_link_operation_value_change_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (ContactsLinkOperationChangeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) contacts_link_operation_change_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ContactsLinkOperationChange), 0, (GInstanceInitFunc) contacts_link_operation_change_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType contacts_link_operation_change_type_id;
		contacts_link_operation_change_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ContactsLinkOperationChange", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&contacts_link_operation_change_type_id__volatile, contacts_link_operation_change_type_id);
	}
	return contacts_link_operation_change_type_id__volatile;
}


gpointer contacts_link_operation_change_ref (gpointer instance) {
	ContactsLinkOperationChange * self;
	self = instance;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_atomic_int_inc (&self->ref_count);
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return instance;
#line 2356 "contacts-linking.c"
}


void contacts_link_operation_change_unref (gpointer instance) {
	ContactsLinkOperationChange * self;
	self = instance;
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		CONTACTS_LINK_OPERATION_CHANGE_GET_CLASS (self)->finalize (self);
#line 25 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 2369 "contacts-linking.c"
	}
}


static void contacts_link_operation_class_init (ContactsLinkOperationClass * klass) {
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_operation_parent_class = g_type_class_peek_parent (klass);
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_type_class_add_private (klass, sizeof (ContactsLinkOperationPrivate));
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (klass)->finalize = contacts_link_operation_finalize;
#line 2381 "contacts-linking.c"
}


static void contacts_link_operation_instance_init (ContactsLinkOperation * self) {
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv = CONTACTS_LINK_OPERATION_GET_PRIVATE (self);
#line 2388 "contacts-linking.c"
}


static void contacts_link_operation_finalize (GObject * obj) {
	ContactsLinkOperation * self;
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CONTACTS_TYPE_LINK_OPERATION, ContactsLinkOperation);
#line 30 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->_added_persona);
#line 31 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->main_contact);
#line 32 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->split_out_personas);
#line 33 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->changes);
#line 24 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (contacts_link_operation_parent_class)->finalize (obj);
#line 2406 "contacts-linking.c"
}


GType contacts_link_operation_get_type (void) {
	static volatile gsize contacts_link_operation_type_id__volatile = 0;
	if (g_once_init_enter (&contacts_link_operation_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ContactsLinkOperationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) contacts_link_operation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ContactsLinkOperation), 0, (GInstanceInitFunc) contacts_link_operation_instance_init, NULL };
		GType contacts_link_operation_type_id;
		contacts_link_operation_type_id = g_type_register_static (G_TYPE_OBJECT, "ContactsLinkOperation", &g_define_type_info, 0);
		g_once_init_leave (&contacts_link_operation_type_id__volatile, contacts_link_operation_type_id);
	}
	return contacts_link_operation_type_id__volatile;
}


GeeHashSet* contacts_persona_attribute_create_set (void) {
	GeeHashSet* result = NULL;
	GeeHashSet* _tmp0_;
#line 97 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = gee_hash_set_new (CONTACTS_TYPE_PERSONA_ATTRIBUTE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, (GeeHashDataFunc) contacts_persona_attribute_hash, NULL, NULL, (GeeEqualDataFunc) contacts_persona_attribute_equal, NULL, NULL);
#line 97 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp0_;
#line 97 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 2431 "contacts-linking.c"
}


static gboolean _vala_string_array_contains (gchar* * stack, int stack_length, gchar* needle) {
	int i;
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	for (i = 0; i < stack_length; i++) {
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (g_strcmp0 (stack[i], needle) == 0) {
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return TRUE;
#line 2443 "contacts-linking.c"
		}
	}
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 2448 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_real_is_removable (ContactsPersonaAttribute* self, FolksPersona* from_persona) {
	gboolean result = FALSE;
	const gchar* _tmp0_;
	FolksPersona* _tmp1_;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gchar** _tmp3_;
	gint _tmp3__length1;
#line 101 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (from_persona != NULL, FALSE);
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = self->property_name;
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = from_persona;
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = folks_persona_get_writeable_properties (_tmp1_, &_tmp2__length1);
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = _tmp2_;
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3__length1 = _tmp2__length1;
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _vala_string_array_contains (_tmp3_, _tmp3__length1, _tmp0_);
#line 102 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 2476 "contacts-linking.c"
}


gboolean contacts_persona_attribute_is_removable (ContactsPersonaAttribute* self, FolksPersona* from_persona) {
#line 101 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 101 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return CONTACTS_PERSONA_ATTRIBUTE_GET_CLASS (self)->is_removable (self, from_persona);
#line 2485 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_real_is_referenced_by_persona (ContactsPersonaAttribute* self, FolksPersona* persona) {
	gboolean _tmp0_ = FALSE;
#line 105 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_critical ("Type `%s' does not implement abstract method `contacts_persona_attribute_is_referenced_by_persona'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
#line 105 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return _tmp0_;
#line 2495 "contacts-linking.c"
}


gboolean contacts_persona_attribute_is_referenced_by_persona (ContactsPersonaAttribute* self, FolksPersona* persona) {
#line 105 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 105 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return CONTACTS_PERSONA_ATTRIBUTE_GET_CLASS (self)->is_referenced_by_persona (self, persona);
#line 2504 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_real_equal (ContactsPersonaAttribute* self, ContactsPersonaAttribute* that) {
	gboolean result = FALSE;
	const gchar* _tmp0_;
	ContactsPersonaAttribute* _tmp1_;
	const gchar* _tmp2_;
#line 111 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (that != NULL, FALSE);
#line 112 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = self->property_name;
#line 112 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = that;
#line 112 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = _tmp1_->property_name;
#line 112 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = g_strcmp0 (_tmp0_, _tmp2_) == 0;
#line 112 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 2525 "contacts-linking.c"
}


gboolean contacts_persona_attribute_equal (ContactsPersonaAttribute* self, ContactsPersonaAttribute* that) {
#line 111 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 111 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return CONTACTS_PERSONA_ATTRIBUTE_GET_CLASS (self)->equal (self, that);
#line 2534 "contacts-linking.c"
}


static guint contacts_persona_attribute_real_hash (ContactsPersonaAttribute* self) {
	guint result = 0U;
	const gchar* _tmp0_;
	guint _tmp1_;
#line 116 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = self->property_name;
#line 116 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = g_str_hash (_tmp0_);
#line 116 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp1_;
#line 116 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 2550 "contacts-linking.c"
}


guint contacts_persona_attribute_hash (ContactsPersonaAttribute* self) {
#line 115 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (self != NULL, 0U);
#line 115 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return CONTACTS_PERSONA_ATTRIBUTE_GET_CLASS (self)->hash (self);
#line 2559 "contacts-linking.c"
}


void contacts_persona_attribute_persona_apply_attributes (ContactsPersonaAttribute* self, FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_) {
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	CONTACTS_PERSONA_ATTRIBUTE_GET_CLASS (self)->persona_apply_attributes (self, persona, added_attributes, removed_attributes, operation, _callback_, _user_data_);
#line 2566 "contacts-linking.c"
}


void contacts_persona_attribute_persona_apply_attributes_finish (ContactsPersonaAttribute* self, GAsyncResult* _res_) {
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	CONTACTS_PERSONA_ATTRIBUTE_GET_CLASS (self)->persona_apply_attributes_finish (self, _res_);
#line 2573 "contacts-linking.c"
}


void contacts_persona_attribute_set_value (ContactsPersonaAttribute* self, FolksPersona* persona, GObject* value, GAsyncReadyCallback _callback_, gpointer _user_data_) {
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	CONTACTS_PERSONA_ATTRIBUTE_GET_CLASS (self)->set_value (self, persona, value, _callback_, _user_data_);
#line 2580 "contacts-linking.c"
}


void contacts_persona_attribute_set_value_finish (ContactsPersonaAttribute* self, GAsyncResult* _res_) {
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	CONTACTS_PERSONA_ATTRIBUTE_GET_CLASS (self)->set_value_finish (self, _res_);
#line 2587 "contacts-linking.c"
}


ContactsPersonaAttribute* contacts_persona_attribute_construct (GType object_type) {
	ContactsPersonaAttribute * self = NULL;
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttribute*) g_object_new (object_type, NULL);
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return self;
#line 2597 "contacts-linking.c"
}


static void contacts_persona_attribute_class_init (ContactsPersonaAttributeClass * klass) {
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_parent_class = g_type_class_peek_parent (klass);
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->is_removable = (gboolean (*) (ContactsPersonaAttribute *, FolksPersona*)) contacts_persona_attribute_real_is_removable;
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->is_referenced_by_persona = (gboolean (*) (ContactsPersonaAttribute *, FolksPersona*)) contacts_persona_attribute_real_is_referenced_by_persona;
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->equal = (gboolean (*) (ContactsPersonaAttribute *, ContactsPersonaAttribute*)) contacts_persona_attribute_real_equal;
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->hash = (guint (*) (ContactsPersonaAttribute *)) contacts_persona_attribute_real_hash;
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (klass)->finalize = contacts_persona_attribute_finalize;
#line 2614 "contacts-linking.c"
}


static void contacts_persona_attribute_instance_init (ContactsPersonaAttribute * self) {
}


static void contacts_persona_attribute_finalize (GObject * obj) {
	ContactsPersonaAttribute * self;
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttribute);
#line 94 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (self->property_name);
#line 93 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (contacts_persona_attribute_parent_class)->finalize (obj);
#line 2630 "contacts-linking.c"
}


GType contacts_persona_attribute_get_type (void) {
	static volatile gsize contacts_persona_attribute_type_id__volatile = 0;
	if (g_once_init_enter (&contacts_persona_attribute_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ContactsPersonaAttributeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) contacts_persona_attribute_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ContactsPersonaAttribute), 0, (GInstanceInitFunc) contacts_persona_attribute_instance_init, NULL };
		GType contacts_persona_attribute_type_id;
		contacts_persona_attribute_type_id = g_type_register_static (G_TYPE_OBJECT, "ContactsPersonaAttribute", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&contacts_persona_attribute_type_id__volatile, contacts_persona_attribute_type_id);
	}
	return contacts_persona_attribute_type_id__volatile;
}


ContactsPersonaAttributeLocalId* contacts_persona_attribute_local_id_construct (GType object_type, const gchar* value) {
	ContactsPersonaAttributeLocalId * self = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
#line 129 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (value != NULL, NULL);
#line 129 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeLocalId*) contacts_persona_attribute_construct (object_type);
#line 130 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = g_strdup ("local-ids");
#line 130 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (((ContactsPersonaAttribute*) self)->property_name);
#line 130 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttribute*) self)->property_name = _tmp0_;
#line 131 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = value;
#line 131 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 131 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (self->priv->value);
#line 131 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv->value = _tmp2_;
#line 129 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return self;
#line 2671 "contacts-linking.c"
}


ContactsPersonaAttributeLocalId* contacts_persona_attribute_local_id_new (const gchar* value) {
#line 129 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return contacts_persona_attribute_local_id_construct (CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID, value);
#line 2678 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_local_id_real_is_removable (ContactsPersonaAttribute* base, FolksPersona* from_persona) {
	ContactsPersonaAttributeLocalId * self;
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	FolksPersona* _tmp1_;
	gboolean _tmp2_;
#line 134 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeLocalId*) base;
#line 134 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (from_persona != NULL, FALSE);
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = from_persona;
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = CONTACTS_PERSONA_ATTRIBUTE_CLASS (contacts_persona_attribute_local_id_parent_class)->is_removable (G_TYPE_CHECK_INSTANCE_CAST (self, CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttribute), _tmp1_);
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp2_) {
#line 2698 "contacts-linking.c"
		const gchar* _tmp3_;
		FolksPersona* _tmp4_;
		const gchar* _tmp5_;
		const gchar* _tmp6_;
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = self->priv->value;
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp4_ = from_persona;
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp5_ = folks_persona_get_iid (_tmp4_);
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp6_ = _tmp5_;
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp0_ = g_strcmp0 (_tmp3_, _tmp6_) != 0;
#line 2713 "contacts-linking.c"
	} else {
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp0_ = FALSE;
#line 2717 "contacts-linking.c"
	}
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp0_;
#line 135 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 2723 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_local_id_real_is_referenced_by_persona (ContactsPersonaAttribute* base, FolksPersona* persona) {
	ContactsPersonaAttributeLocalId * self;
	gboolean result = FALSE;
	FolksLocalIdDetails* details = NULL;
	FolksPersona* _tmp0_;
	FolksLocalIdDetails* _tmp1_;
	FolksLocalIdDetails* _tmp2_;
	FolksLocalIdDetails* _tmp3_;
	GeeSet* _tmp4_;
	GeeSet* _tmp5_;
	const gchar* _tmp6_;
	gboolean _tmp7_;
#line 144 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeLocalId*) base;
#line 144 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (persona != NULL, FALSE);
#line 145 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = persona;
#line 145 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, FOLKS_TYPE_LOCAL_ID_DETAILS) ? ((FolksLocalIdDetails*) _tmp0_) : NULL);
#line 145 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	details = _tmp1_;
#line 146 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = details;
#line 146 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp2_ == NULL) {
#line 147 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		result = FALSE;
#line 147 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (details);
#line 147 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return result;
#line 2759 "contacts-linking.c"
	}
#line 149 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = details;
#line 149 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = folks_local_id_details_get_local_ids (_tmp3_);
#line 149 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp5_ = _tmp4_;
#line 149 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp6_ = self->priv->value;
#line 149 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp7_ = gee_collection_contains ((GeeCollection*) _tmp5_, _tmp6_);
#line 149 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp7_;
#line 149 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (details);
#line 149 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 2777 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_real_persona_apply_attributes_data_free (gpointer _data) {
	ContactsPersonaAttributeLocalIdPersonaApplyAttributesData* _data_;
	_data_ = _data;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->added_attributes);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->removed_attributes);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->operation);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->self);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_slice_free (ContactsPersonaAttributeLocalIdPersonaApplyAttributesData, _data_);
#line 2796 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_real_persona_apply_attributes_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsPersonaAttributeLocalIdPersonaApplyAttributesData* _task_data_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_task_data_->_callback_ != NULL) {
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 2808 "contacts-linking.c"
	}
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_->_task_complete_ = TRUE;
#line 2812 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_real_persona_apply_attributes (ContactsPersonaAttribute* base, FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsPersonaAttributeLocalId * self;
	ContactsPersonaAttributeLocalIdPersonaApplyAttributesData* _data_;
	ContactsPersonaAttributeLocalId* _tmp0_;
	FolksPersona* _tmp1_;
	FolksPersona* _tmp2_;
	GeeSet* _tmp3_;
	GeeSet* _tmp4_;
	GeeSet* _tmp5_;
	GeeSet* _tmp6_;
	ContactsLinkOperation* _tmp7_;
	ContactsLinkOperation* _tmp8_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeLocalId*) base;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_slice_new0 (ContactsPersonaAttributeLocalIdPersonaApplyAttributesData);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_callback_ = _callback_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, contacts_persona_attribute_local_id_real_persona_apply_attributes_async_ready_wrapper, _user_data_);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_callback_ == NULL) {
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_task_complete_ = TRUE;
#line 2840 "contacts-linking.c"
	}
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_set_task_data (_data_->_async_result, _data_, contacts_persona_attribute_local_id_real_persona_apply_attributes_data_free);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->self = _tmp0_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = persona;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->persona = _tmp2_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = added_attributes;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->added_attributes);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->added_attributes = _tmp4_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp5_ = removed_attributes;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp6_ = _g_object_ref0 (_tmp5_);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->removed_attributes);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->removed_attributes = _tmp6_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp7_ = operation;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp8_ = _g_object_ref0 (_tmp7_);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->operation);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->operation = _tmp8_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_local_id_real_persona_apply_attributes_co (_data_);
#line 2882 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_real_persona_apply_attributes_finish (ContactsPersonaAttribute* base, GAsyncResult* _res_) {
	ContactsPersonaAttributeLocalIdPersonaApplyAttributesData* _data_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 2890 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_persona_apply_attributes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsPersonaAttributeLocalIdPersonaApplyAttributesData* _data_;
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_local_id_real_persona_apply_attributes_co (_data_);
#line 2906 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_local_id_real_persona_apply_attributes_co (ContactsPersonaAttributeLocalIdPersonaApplyAttributesData* _data_) {
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 2915 "contacts-linking.c"
		goto _state_0;
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 2919 "contacts-linking.c"
		goto _state_1;
		default:
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 2924 "contacts-linking.c"
	}
	_state_0:
#line 156 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->persona;
#line 156 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp0_, FOLKS_TYPE_LOCAL_ID_DETAILS) ? ((FolksLocalIdDetails*) _data_->_tmp0_) : NULL);
#line 156 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->details = _data_->_tmp1_;
#line 157 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _data_->details;
#line 157 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp2_ == NULL) {
#line 158 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->details);
#line 158 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 158 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (_data_->_state_ != 0) {
#line 158 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 158 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 2947 "contacts-linking.c"
			}
		}
#line 158 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 158 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 2954 "contacts-linking.c"
	}
#line 160 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp3_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
#line 160 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->added_values = _data_->_tmp3_;
#line 2960 "contacts-linking.c"
	{
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp4_ = _data_->added_attributes;
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp5_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp4_);
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_added_it = _data_->_tmp5_;
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp6_ = _data_->_added_it;
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp7_ = gee_iterator_next (_data_->_tmp6_);
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp7_) {
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 2978 "contacts-linking.c"
			}
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp8_ = _data_->_added_it;
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp9_ = gee_iterator_get (_data_->_tmp8_);
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->added = (ContactsPersonaAttribute*) _data_->_tmp9_;
#line 162 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp10_ = _data_->added_values;
#line 162 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp11_ = _data_->added;
#line 162 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp11_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID, ContactsPersonaAttributeLocalId)->priv->value;
#line 162 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp10_, _data_->_tmp12_);
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->added);
#line 2996 "contacts-linking.c"
		}
#line 161 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_added_it);
#line 3000 "contacts-linking.c"
	}
#line 165 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp13_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
#line 165 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->removed_values = _data_->_tmp13_;
#line 3006 "contacts-linking.c"
	{
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp14_ = _data_->removed_attributes;
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp15_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp14_);
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_removed_it = _data_->_tmp15_;
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp16_ = _data_->_removed_it;
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp17_ = gee_iterator_next (_data_->_tmp16_);
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp17_) {
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 3024 "contacts-linking.c"
			}
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp18_ = _data_->_removed_it;
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp19_ = gee_iterator_get (_data_->_tmp18_);
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->removed = (ContactsPersonaAttribute*) _data_->_tmp19_;
#line 167 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp20_ = _data_->removed_values;
#line 167 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp21_ = _data_->removed;
#line 167 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp21_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID, ContactsPersonaAttributeLocalId)->priv->value;
#line 167 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp20_, _data_->_tmp22_);
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->removed);
#line 3042 "contacts-linking.c"
		}
#line 166 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_removed_it);
#line 3046 "contacts-linking.c"
	}
#line 170 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp23_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
#line 170 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->new_values = _data_->_tmp23_;
#line 171 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->changed = FALSE;
#line 3054 "contacts-linking.c"
	{
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp24_ = _data_->details;
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp25_ = folks_local_id_details_get_local_ids (_data_->_tmp24_);
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp26_ = _data_->_tmp25_;
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp27_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp26_);
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_v_it = _data_->_tmp27_;
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp28_ = _data_->_v_it;
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp29_ = gee_iterator_next (_data_->_tmp28_);
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp29_) {
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 3076 "contacts-linking.c"
			}
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp30_ = _data_->_v_it;
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp31_ = gee_iterator_get (_data_->_tmp30_);
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->v = (gchar*) _data_->_tmp31_;
#line 173 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp32_ = _data_->removed_values;
#line 173 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp33_ = _data_->v;
#line 173 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp34_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _data_->_tmp32_, _data_->_tmp33_);
#line 173 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp34_) {
#line 174 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->changed = TRUE;
#line 175 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_free0 (_data_->v);
#line 175 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				continue;
#line 3098 "contacts-linking.c"
			}
#line 177 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp35_ = _data_->new_values;
#line 177 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp36_ = _data_->v;
#line 177 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp35_, _data_->_tmp36_);
#line 178 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp37_ = _data_->added_values;
#line 178 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp38_ = _data_->v;
#line 178 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp39_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _data_->_tmp37_, _data_->_tmp38_);
#line 178 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp39_) {
#line 179 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp40_ = _data_->added_values;
#line 179 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp41_ = _data_->v;
#line 179 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				gee_abstract_collection_remove ((GeeAbstractCollection*) _data_->_tmp40_, _data_->_tmp41_);
#line 3120 "contacts-linking.c"
			}
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_free0 (_data_->v);
#line 3124 "contacts-linking.c"
		}
#line 172 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_v_it);
#line 3128 "contacts-linking.c"
	}
	{
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp42_ = _data_->added_values;
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp43_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) _data_->_tmp42_);
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_v2_it = _data_->_tmp43_;
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp44_ = _data_->_v2_it;
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp45_ = gee_iterator_next (_data_->_tmp44_);
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp45_) {
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 3147 "contacts-linking.c"
			}
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp46_ = _data_->_v2_it;
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp47_ = gee_iterator_get (_data_->_tmp46_);
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->v2 = (gchar*) _data_->_tmp47_;
#line 182 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->changed = TRUE;
#line 183 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp48_ = _data_->new_values;
#line 183 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp49_ = _data_->v2;
#line 183 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp48_, _data_->_tmp49_);
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_free0 (_data_->v2);
#line 3165 "contacts-linking.c"
		}
#line 181 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_v2_it);
#line 3169 "contacts-linking.c"
	}
#line 186 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp50_ = _data_->changed;
#line 186 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp50_) {
#line 3175 "contacts-linking.c"
		{
#line 188 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp51_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
#line 188 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->old_value = _data_->_tmp51_;
#line 189 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp52_ = _data_->old_value;
#line 189 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp53_ = _data_->details;
#line 189 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp54_ = folks_local_id_details_get_local_ids (_data_->_tmp53_);
#line 189 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp55_ = _data_->_tmp54_;
#line 189 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_collection_add_all ((GeeCollection*) _data_->_tmp52_, (GeeCollection*) _data_->_tmp55_);
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp56_ = _data_->details;
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp57_ = _data_->new_values;
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 1;
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_local_id_details_change_local_ids (_data_->_tmp56_, (GeeSet*) _data_->_tmp57_, contacts_persona_attribute_local_id_persona_apply_attributes_ready, _data_);
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 3201 "contacts-linking.c"
			_state_1:
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_local_id_details_change_local_ids_finish (_data_->_tmp56_, _data_->_res_, &_data_->_inner_error_);
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 190 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->old_value);
#line 3209 "contacts-linking.c"
				goto __catch12_g_error;
			}
#line 191 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp58_ = _data_->operation;
#line 191 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp59_ = _data_->persona;
#line 191 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp60_ = _data_->old_value;
#line 191 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_link_operation_add_change (_data_->_tmp58_, (ContactsPersonaAttribute*) _data_->self, _data_->_tmp59_, (GObject*) _data_->_tmp60_);
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->old_value);
#line 3222 "contacts-linking.c"
		}
		goto __finally12;
		__catch12_g_error:
		{
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->e = _data_->_inner_error_;
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_inner_error_ = NULL;
#line 193 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp61_ = _data_->e;
#line 193 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp62_ = _data_->_tmp61_->message;
#line 193 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_warning ("contacts-linking.vala:193: Unable to set local ids when linking: %s\n", _data_->_tmp62_);
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_error_free0 (_data_->e);
#line 3239 "contacts-linking.c"
		}
		__finally12:
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->new_values);
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->removed_values);
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->added_values);
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->details);
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_clear_error (&_data_->_inner_error_);
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_object_unref (_data_->_async_result);
#line 187 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 3260 "contacts-linking.c"
		}
	}
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->new_values);
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->removed_values);
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->added_values);
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->details);
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3279 "contacts-linking.c"
		}
	}
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 152 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 3286 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_real_set_value_data_free (gpointer _data) {
	ContactsPersonaAttributeLocalIdSetValueData* _data_;
	_data_ = _data;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->value);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->self);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_slice_free (ContactsPersonaAttributeLocalIdSetValueData, _data_);
#line 3301 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_real_set_value_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsPersonaAttributeLocalIdSetValueData* _task_data_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_task_data_->_callback_ != NULL) {
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 3313 "contacts-linking.c"
	}
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_->_task_complete_ = TRUE;
#line 3317 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_real_set_value (ContactsPersonaAttribute* base, FolksPersona* persona, GObject* value, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsPersonaAttributeLocalId * self;
	ContactsPersonaAttributeLocalIdSetValueData* _data_;
	ContactsPersonaAttributeLocalId* _tmp0_;
	FolksPersona* _tmp1_;
	FolksPersona* _tmp2_;
	GObject* _tmp3_;
	GObject* _tmp4_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeLocalId*) base;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_slice_new0 (ContactsPersonaAttributeLocalIdSetValueData);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_callback_ = _callback_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, contacts_persona_attribute_local_id_real_set_value_async_ready_wrapper, _user_data_);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_callback_ == NULL) {
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_task_complete_ = TRUE;
#line 3341 "contacts-linking.c"
	}
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_set_task_data (_data_->_async_result, _data_, contacts_persona_attribute_local_id_real_set_value_data_free);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->self = _tmp0_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = persona;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->persona = _tmp2_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = value;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->value);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->value = _tmp4_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_local_id_real_set_value_co (_data_);
#line 3367 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_real_set_value_finish (ContactsPersonaAttribute* base, GAsyncResult* _res_) {
	ContactsPersonaAttributeLocalIdSetValueData* _data_;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 3375 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_set_value_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsPersonaAttributeLocalIdSetValueData* _data_;
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_local_id_real_set_value_co (_data_);
#line 3391 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_local_id_real_set_value_co (ContactsPersonaAttributeLocalIdSetValueData* _data_) {
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 3400 "contacts-linking.c"
		goto _state_0;
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 3404 "contacts-linking.c"
		goto _state_1;
		default:
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 3409 "contacts-linking.c"
	}
	_state_0:
#line 199 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->persona;
#line 199 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp0_, FOLKS_TYPE_LOCAL_ID_DETAILS) ? ((FolksLocalIdDetails*) _data_->_tmp0_) : NULL);
#line 199 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->details = _data_->_tmp1_;
#line 200 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _data_->details;
#line 200 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp2_ == NULL) {
#line 201 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->details);
#line 201 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 201 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (_data_->_state_ != 0) {
#line 201 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 201 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3432 "contacts-linking.c"
			}
		}
#line 201 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 201 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 3439 "contacts-linking.c"
	}
	{
#line 204 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp3_ = _data_->value;
#line 204 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp3_, GEE_TYPE_HASH_SET) ? ((GeeHashSet*) _data_->_tmp3_) : NULL);
#line 204 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->v = _data_->_tmp4_;
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp5_ = _data_->details;
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp6_ = _data_->v;
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_state_ = 1;
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		folks_local_id_details_change_local_ids (_data_->_tmp5_, (GeeSet*) _data_->_tmp6_, contacts_persona_attribute_local_id_set_value_ready, _data_);
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 3458 "contacts-linking.c"
		_state_1:
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		folks_local_id_details_change_local_ids_finish (_data_->_tmp5_, _data_->_res_, &_data_->_inner_error_);
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 205 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->v);
#line 3466 "contacts-linking.c"
			goto __catch13_g_error;
		}
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->v);
#line 3471 "contacts-linking.c"
	}
	goto __finally13;
	__catch13_g_error:
	{
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->e = _data_->_inner_error_;
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_inner_error_ = NULL;
#line 207 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp7_ = _data_->e;
#line 207 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp8_ = _data_->_tmp7_->message;
#line 207 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_warning ("contacts-linking.vala:207: Unable to set local ids when undoing link: " \
"%s\n", _data_->_tmp8_);
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_error_free0 (_data_->e);
#line 3488 "contacts-linking.c"
	}
	__finally13:
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->details);
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_clear_error (&_data_->_inner_error_);
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 203 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 3503 "contacts-linking.c"
	}
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->details);
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3515 "contacts-linking.c"
		}
	}
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 198 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 3522 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_local_id_real_equal (ContactsPersonaAttribute* base, ContactsPersonaAttribute* _that) {
	ContactsPersonaAttributeLocalId * self;
	gboolean result = FALSE;
	ContactsPersonaAttributeLocalId* that = NULL;
	ContactsPersonaAttribute* _tmp0_;
	ContactsPersonaAttributeLocalId* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	ContactsPersonaAttributeLocalId* _tmp4_;
#line 211 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeLocalId*) base;
#line 211 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (_that != NULL, FALSE);
#line 212 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _that;
#line 212 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID) ? ((ContactsPersonaAttributeLocalId*) _tmp0_) : NULL);
#line 212 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	that = _tmp1_;
#line 214 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = that;
#line 214 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp4_ != NULL) {
#line 3549 "contacts-linking.c"
		ContactsPersonaAttributeLocalId* _tmp5_;
		gboolean _tmp6_;
#line 215 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp5_ = that;
#line 215 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp6_ = CONTACTS_PERSONA_ATTRIBUTE_CLASS (contacts_persona_attribute_local_id_parent_class)->equal (G_TYPE_CHECK_INSTANCE_CAST (self, CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttribute), (ContactsPersonaAttribute*) _tmp5_);
#line 215 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = _tmp6_;
#line 3558 "contacts-linking.c"
	} else {
#line 214 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = FALSE;
#line 3562 "contacts-linking.c"
	}
#line 214 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp3_) {
#line 3566 "contacts-linking.c"
		const gchar* _tmp7_;
		ContactsPersonaAttributeLocalId* _tmp8_;
		const gchar* _tmp9_;
#line 216 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp7_ = self->priv->value;
#line 216 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp8_ = that;
#line 216 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp9_ = _tmp8_->priv->value;
#line 216 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp2_ = g_strcmp0 (_tmp7_, _tmp9_) == 0;
#line 3578 "contacts-linking.c"
	} else {
#line 214 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp2_ = FALSE;
#line 3582 "contacts-linking.c"
	}
#line 213 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp2_;
#line 213 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (that);
#line 213 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 3590 "contacts-linking.c"
}


static guint contacts_persona_attribute_local_id_real_hash (ContactsPersonaAttribute* base) {
	ContactsPersonaAttributeLocalId * self;
	guint result = 0U;
	const gchar* _tmp0_;
	guint _tmp1_;
	guint _tmp2_;
#line 219 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeLocalId*) base;
#line 220 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = self->priv->value;
#line 220 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = g_str_hash (_tmp0_);
#line 220 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = CONTACTS_PERSONA_ATTRIBUTE_CLASS (contacts_persona_attribute_local_id_parent_class)->hash (G_TYPE_CHECK_INSTANCE_CAST (self, CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttribute));
#line 220 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp1_ ^ _tmp2_;
#line 220 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 3612 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_class_init (ContactsPersonaAttributeLocalIdClass * klass) {
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_local_id_parent_class = g_type_class_peek_parent (klass);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_type_class_add_private (klass, sizeof (ContactsPersonaAttributeLocalIdPrivate));
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->is_removable = (gboolean (*) (ContactsPersonaAttribute *, FolksPersona*)) contacts_persona_attribute_local_id_real_is_removable;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->is_referenced_by_persona = (gboolean (*) (ContactsPersonaAttribute *, FolksPersona*)) contacts_persona_attribute_local_id_real_is_referenced_by_persona;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->persona_apply_attributes = (void (*) (ContactsPersonaAttribute *, FolksPersona*, GeeSet*, GeeSet*, ContactsLinkOperation*, GAsyncReadyCallback, gpointer)) contacts_persona_attribute_local_id_real_persona_apply_attributes;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->persona_apply_attributes_finish = (void (*) (ContactsPersonaAttribute *, GAsyncResult*)) contacts_persona_attribute_local_id_real_persona_apply_attributes_finish;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->set_value = (void (*) (ContactsPersonaAttribute *, FolksPersona*, GObject*, GAsyncReadyCallback, gpointer)) contacts_persona_attribute_local_id_real_set_value;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->set_value_finish = (void (*) (ContactsPersonaAttribute *, GAsyncResult*)) contacts_persona_attribute_local_id_real_set_value_finish;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->equal = (gboolean (*) (ContactsPersonaAttribute *, ContactsPersonaAttribute*)) contacts_persona_attribute_local_id_real_equal;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->hash = (guint (*) (ContactsPersonaAttribute *)) contacts_persona_attribute_local_id_real_hash;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (klass)->finalize = contacts_persona_attribute_local_id_finalize;
#line 3639 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_instance_init (ContactsPersonaAttributeLocalId * self) {
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv = CONTACTS_PERSONA_ATTRIBUTE_LOCAL_ID_GET_PRIVATE (self);
#line 3646 "contacts-linking.c"
}


static void contacts_persona_attribute_local_id_finalize (GObject * obj) {
	ContactsPersonaAttributeLocalId * self;
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CONTACTS_TYPE_PERSONA_ATTRIBUTE_LOCAL_ID, ContactsPersonaAttributeLocalId);
#line 127 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (self->priv->value);
#line 126 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (contacts_persona_attribute_local_id_parent_class)->finalize (obj);
#line 3658 "contacts-linking.c"
}


GType contacts_persona_attribute_local_id_get_type (void) {
	static volatile gsize contacts_persona_attribute_local_id_type_id__volatile = 0;
	if (g_once_init_enter (&contacts_persona_attribute_local_id_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ContactsPersonaAttributeLocalIdClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) contacts_persona_attribute_local_id_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ContactsPersonaAttributeLocalId), 0, (GInstanceInitFunc) contacts_persona_attribute_local_id_instance_init, NULL };
		GType contacts_persona_attribute_local_id_type_id;
		contacts_persona_attribute_local_id_type_id = g_type_register_static (CONTACTS_TYPE_PERSONA_ATTRIBUTE, "ContactsPersonaAttributeLocalId", &g_define_type_info, 0);
		g_once_init_leave (&contacts_persona_attribute_local_id_type_id__volatile, contacts_persona_attribute_local_id_type_id);
	}
	return contacts_persona_attribute_local_id_type_id__volatile;
}


ContactsPersonaAttributeImAddress* contacts_persona_attribute_im_address_construct (GType object_type, const gchar* protocol, FolksImFieldDetails* detail) {
	ContactsPersonaAttributeImAddress * self = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	FolksImFieldDetails* _tmp3_;
	FolksImFieldDetails* _tmp4_;
#line 228 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (protocol != NULL, NULL);
#line 228 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (detail != NULL, NULL);
#line 228 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeImAddress*) contacts_persona_attribute_construct (object_type);
#line 229 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = g_strdup ("im-addresses");
#line 229 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (((ContactsPersonaAttribute*) self)->property_name);
#line 229 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttribute*) self)->property_name = _tmp0_;
#line 230 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = protocol;
#line 230 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 230 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (self->priv->protocol);
#line 230 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv->protocol = _tmp2_;
#line 231 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = detail;
#line 231 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 231 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->detail);
#line 231 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv->detail = _tmp4_;
#line 228 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return self;
#line 3711 "contacts-linking.c"
}


ContactsPersonaAttributeImAddress* contacts_persona_attribute_im_address_new (const gchar* protocol, FolksImFieldDetails* detail) {
#line 228 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return contacts_persona_attribute_im_address_construct (CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, protocol, detail);
#line 3718 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_im_address_real_is_referenced_by_persona (ContactsPersonaAttribute* base, FolksPersona* persona) {
	ContactsPersonaAttributeImAddress * self;
	gboolean result = FALSE;
	FolksImDetails* details = NULL;
	FolksPersona* _tmp0_;
	FolksImDetails* _tmp1_;
	FolksImDetails* _tmp2_;
	FolksImDetails* _tmp3_;
	GeeMultiMap* _tmp4_;
	GeeMultiMap* _tmp5_;
	const gchar* _tmp6_;
	GeeCollection* _tmp7_;
	GeeCollection* _tmp8_;
	FolksImFieldDetails* _tmp9_;
	gboolean _tmp10_;
	gboolean _tmp11_;
#line 240 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeImAddress*) base;
#line 240 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (persona != NULL, FALSE);
#line 241 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = persona;
#line 241 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, FOLKS_TYPE_IM_DETAILS) ? ((FolksImDetails*) _tmp0_) : NULL);
#line 241 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	details = _tmp1_;
#line 242 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = details;
#line 242 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp2_ == NULL) {
#line 243 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		result = FALSE;
#line 243 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (details);
#line 243 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return result;
#line 3758 "contacts-linking.c"
	}
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = details;
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = folks_im_details_get_im_addresses (_tmp3_);
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp5_ = _tmp4_;
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp6_ = self->priv->protocol;
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp7_ = gee_multi_map_get (_tmp5_, _tmp6_);
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp8_ = _tmp7_;
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp9_ = self->priv->detail;
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp10_ = gee_collection_contains (_tmp8_, _tmp9_);
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp11_ = _tmp10_;
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_tmp8_);
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp11_;
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (details);
#line 245 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 3786 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_real_persona_apply_attributes_data_free (gpointer _data) {
	ContactsPersonaAttributeImAddressPersonaApplyAttributesData* _data_;
	_data_ = _data;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->added_attributes);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->removed_attributes);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->operation);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->self);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_slice_free (ContactsPersonaAttributeImAddressPersonaApplyAttributesData, _data_);
#line 3805 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_real_persona_apply_attributes_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsPersonaAttributeImAddressPersonaApplyAttributesData* _task_data_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_task_data_->_callback_ != NULL) {
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 3817 "contacts-linking.c"
	}
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_->_task_complete_ = TRUE;
#line 3821 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_real_persona_apply_attributes (ContactsPersonaAttribute* base, FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsPersonaAttributeImAddress * self;
	ContactsPersonaAttributeImAddressPersonaApplyAttributesData* _data_;
	ContactsPersonaAttributeImAddress* _tmp0_;
	FolksPersona* _tmp1_;
	FolksPersona* _tmp2_;
	GeeSet* _tmp3_;
	GeeSet* _tmp4_;
	GeeSet* _tmp5_;
	GeeSet* _tmp6_;
	ContactsLinkOperation* _tmp7_;
	ContactsLinkOperation* _tmp8_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeImAddress*) base;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_slice_new0 (ContactsPersonaAttributeImAddressPersonaApplyAttributesData);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_callback_ = _callback_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, contacts_persona_attribute_im_address_real_persona_apply_attributes_async_ready_wrapper, _user_data_);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_callback_ == NULL) {
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_task_complete_ = TRUE;
#line 3849 "contacts-linking.c"
	}
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_set_task_data (_data_->_async_result, _data_, contacts_persona_attribute_im_address_real_persona_apply_attributes_data_free);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->self = _tmp0_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = persona;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->persona = _tmp2_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = added_attributes;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->added_attributes);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->added_attributes = _tmp4_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp5_ = removed_attributes;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp6_ = _g_object_ref0 (_tmp5_);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->removed_attributes);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->removed_attributes = _tmp6_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp7_ = operation;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp8_ = _g_object_ref0 (_tmp7_);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->operation);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->operation = _tmp8_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_im_address_real_persona_apply_attributes_co (_data_);
#line 3891 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_real_persona_apply_attributes_finish (ContactsPersonaAttribute* base, GAsyncResult* _res_) {
	ContactsPersonaAttributeImAddressPersonaApplyAttributesData* _data_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 3899 "contacts-linking.c"
}


static guint _folks_abstract_field_details_hash_static_gee_hash_data_func (gconstpointer v, gpointer self) {
	guint result;
	result = folks_abstract_field_details_hash_static ((FolksAbstractFieldDetails*) v);
#line 256 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 3908 "contacts-linking.c"
}


static gboolean _folks_abstract_field_details_equal_static_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
	gboolean result;
	result = folks_abstract_field_details_equal_static ((FolksAbstractFieldDetails*) a, (FolksAbstractFieldDetails*) b);
#line 256 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 3917 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_persona_apply_attributes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsPersonaAttributeImAddressPersonaApplyAttributesData* _data_;
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_im_address_real_persona_apply_attributes_co (_data_);
#line 3933 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_im_address_real_persona_apply_attributes_co (ContactsPersonaAttributeImAddressPersonaApplyAttributesData* _data_) {
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 3942 "contacts-linking.c"
		goto _state_0;
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 3946 "contacts-linking.c"
		goto _state_1;
		default:
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 3951 "contacts-linking.c"
	}
	_state_0:
#line 252 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->persona;
#line 252 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp0_, FOLKS_TYPE_IM_DETAILS) ? ((FolksImDetails*) _data_->_tmp0_) : NULL);
#line 252 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->details = _data_->_tmp1_;
#line 253 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _data_->details;
#line 253 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp2_ == NULL) {
#line 254 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->details);
#line 254 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 254 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (_data_->_state_ != 0) {
#line 254 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 254 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3974 "contacts-linking.c"
			}
		}
#line 254 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 254 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 3981 "contacts-linking.c"
	}
#line 256 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp3_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, FOLKS_TYPE_IM_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _folks_abstract_field_details_hash_static_gee_hash_data_func, NULL, NULL, _folks_abstract_field_details_equal_static_gee_equal_data_func, NULL, NULL);
#line 256 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->added_values = _data_->_tmp3_;
#line 3987 "contacts-linking.c"
	{
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp4_ = _data_->added_attributes;
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp5_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp4_);
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_added_it = _data_->_tmp5_;
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp6_ = _data_->_added_it;
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp7_ = gee_iterator_next (_data_->_tmp6_);
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp7_) {
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 4005 "contacts-linking.c"
			}
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp8_ = _data_->_added_it;
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp9_ = gee_iterator_get (_data_->_tmp8_);
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->added = (ContactsPersonaAttribute*) _data_->_tmp9_;
#line 260 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp10_ = _data_->added_values;
#line 260 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp11_ = _data_->added;
#line 260 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp11_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, ContactsPersonaAttributeImAddress)->priv->protocol;
#line 260 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp13_ = _data_->added;
#line 260 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp14_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp13_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, ContactsPersonaAttributeImAddress)->priv->detail;
#line 260 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_multi_map_set ((GeeMultiMap*) _data_->_tmp10_, _data_->_tmp12_, _data_->_tmp14_);
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->added);
#line 4027 "contacts-linking.c"
		}
#line 259 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_added_it);
#line 4031 "contacts-linking.c"
	}
#line 263 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp15_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, FOLKS_TYPE_IM_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _folks_abstract_field_details_hash_static_gee_hash_data_func, NULL, NULL, _folks_abstract_field_details_equal_static_gee_equal_data_func, NULL, NULL);
#line 263 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->removed_values = _data_->_tmp15_;
#line 4037 "contacts-linking.c"
	{
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp16_ = _data_->removed_attributes;
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp17_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp16_);
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_removed_it = _data_->_tmp17_;
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp18_ = _data_->_removed_it;
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp19_ = gee_iterator_next (_data_->_tmp18_);
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp19_) {
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 4055 "contacts-linking.c"
			}
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp20_ = _data_->_removed_it;
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp21_ = gee_iterator_get (_data_->_tmp20_);
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->removed = (ContactsPersonaAttribute*) _data_->_tmp21_;
#line 268 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp22_ = _data_->removed_values;
#line 268 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp23_ = _data_->removed;
#line 268 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp24_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp23_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, ContactsPersonaAttributeImAddress)->priv->protocol;
#line 268 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp25_ = _data_->removed;
#line 268 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp26_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp25_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, ContactsPersonaAttributeImAddress)->priv->detail;
#line 268 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_multi_map_set ((GeeMultiMap*) _data_->_tmp22_, _data_->_tmp24_, _data_->_tmp26_);
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->removed);
#line 4077 "contacts-linking.c"
		}
#line 267 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_removed_it);
#line 4081 "contacts-linking.c"
	}
#line 271 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp27_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, FOLKS_TYPE_IM_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _folks_abstract_field_details_hash_static_gee_hash_data_func, NULL, NULL, _folks_abstract_field_details_equal_static_gee_equal_data_func, NULL, NULL);
#line 271 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->new_values = _data_->_tmp27_;
#line 275 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->changed = FALSE;
#line 4089 "contacts-linking.c"
	{
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp28_ = _data_->details;
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp29_ = folks_im_details_get_im_addresses (_data_->_tmp28_);
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp30_ = _data_->_tmp29_;
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp31_ = gee_multi_map_get_keys (_data_->_tmp30_);
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp32_ = _data_->_tmp31_;
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp33_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp32_);
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp34_ = _data_->_tmp33_;
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_tmp32_);
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_proto1_it = _data_->_tmp34_;
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp35_ = _data_->_proto1_it;
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp36_ = gee_iterator_next (_data_->_tmp35_);
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp36_) {
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 4119 "contacts-linking.c"
			}
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp37_ = _data_->_proto1_it;
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp38_ = gee_iterator_get (_data_->_tmp37_);
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->proto1 = (gchar*) _data_->_tmp38_;
#line 4127 "contacts-linking.c"
			{
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp39_ = _data_->details;
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp40_ = folks_im_details_get_im_addresses (_data_->_tmp39_);
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp41_ = _data_->_tmp40_;
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp42_ = _data_->proto1;
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp43_ = gee_multi_map_get (_data_->_tmp41_, _data_->_tmp42_);
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp44_ = _data_->_tmp43_;
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp45_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp44_);
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp46_ = _data_->_tmp45_;
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_tmp44_);
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_detail1_it = _data_->_tmp46_;
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				while (TRUE) {
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp47_ = _data_->_detail1_it;
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp48_ = gee_iterator_next (_data_->_tmp47_);
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (!_data_->_tmp48_) {
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						break;
#line 4159 "contacts-linking.c"
					}
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp49_ = _data_->_detail1_it;
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp50_ = gee_iterator_get (_data_->_tmp49_);
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->detail1 = (FolksImFieldDetails*) _data_->_tmp50_;
#line 278 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp51_ = _data_->removed_values;
#line 278 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp52_ = _data_->proto1;
#line 278 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp53_ = gee_multi_map_get ((GeeMultiMap*) _data_->_tmp51_, _data_->_tmp52_);
#line 278 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp54_ = _data_->_tmp53_;
#line 278 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp55_ = _data_->detail1;
#line 278 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp56_ = gee_collection_contains (_data_->_tmp54_, _data_->_tmp55_);
#line 278 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp57_ = _data_->_tmp56_;
#line 278 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->_tmp54_);
#line 278 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (_data_->_tmp57_) {
#line 279 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->changed = TRUE;
#line 280 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_data_->detail1);
#line 280 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						continue;
#line 4191 "contacts-linking.c"
					}
#line 282 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp58_ = _data_->new_values;
#line 282 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp59_ = _data_->proto1;
#line 282 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp60_ = _data_->detail1;
#line 282 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					gee_multi_map_set ((GeeMultiMap*) _data_->_tmp58_, _data_->_tmp59_, _data_->_tmp60_);
#line 283 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp61_ = _data_->added_values;
#line 283 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp62_ = _data_->proto1;
#line 283 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp63_ = gee_multi_map_get ((GeeMultiMap*) _data_->_tmp61_, _data_->_tmp62_);
#line 283 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp64_ = _data_->_tmp63_;
#line 283 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp65_ = _data_->detail1;
#line 283 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp66_ = gee_collection_contains (_data_->_tmp64_, _data_->_tmp65_);
#line 283 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp67_ = _data_->_tmp66_;
#line 283 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->_tmp64_);
#line 283 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (_data_->_tmp67_) {
#line 284 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp68_ = _data_->added_values;
#line 284 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp69_ = _data_->proto1;
#line 284 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp70_ = _data_->detail1;
#line 284 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						gee_multi_map_remove ((GeeMultiMap*) _data_->_tmp68_, _data_->_tmp69_, _data_->_tmp70_);
#line 4227 "contacts-linking.c"
					}
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->detail1);
#line 4231 "contacts-linking.c"
				}
#line 277 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_detail1_it);
#line 4235 "contacts-linking.c"
			}
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_free0 (_data_->proto1);
#line 4239 "contacts-linking.c"
		}
#line 276 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_proto1_it);
#line 4243 "contacts-linking.c"
	}
	{
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp71_ = _data_->added_values;
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp72_ = gee_multi_map_get_keys ((GeeMultiMap*) _data_->_tmp71_);
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp73_ = _data_->_tmp72_;
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp74_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp73_);
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp75_ = _data_->_tmp74_;
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_tmp73_);
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_proto2_it = _data_->_tmp75_;
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp76_ = _data_->_proto2_it;
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp77_ = gee_iterator_next (_data_->_tmp76_);
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp77_) {
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 4270 "contacts-linking.c"
			}
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp78_ = _data_->_proto2_it;
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp79_ = gee_iterator_get (_data_->_tmp78_);
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->proto2 = (gchar*) _data_->_tmp79_;
#line 4278 "contacts-linking.c"
			{
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp80_ = _data_->added_values;
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp81_ = _data_->proto2;
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp82_ = gee_multi_map_get ((GeeMultiMap*) _data_->_tmp80_, _data_->_tmp81_);
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp83_ = _data_->_tmp82_;
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp84_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp83_);
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp85_ = _data_->_tmp84_;
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_tmp83_);
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_detail2_it = _data_->_tmp85_;
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				while (TRUE) {
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp86_ = _data_->_detail2_it;
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp87_ = gee_iterator_next (_data_->_tmp86_);
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (!_data_->_tmp87_) {
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						break;
#line 4306 "contacts-linking.c"
					}
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp88_ = _data_->_detail2_it;
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp89_ = gee_iterator_get (_data_->_tmp88_);
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->detail2 = (FolksImFieldDetails*) _data_->_tmp89_;
#line 290 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->changed = TRUE;
#line 291 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp90_ = _data_->new_values;
#line 291 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp91_ = _data_->proto2;
#line 291 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp92_ = _data_->detail2;
#line 291 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					gee_multi_map_set ((GeeMultiMap*) _data_->_tmp90_, _data_->_tmp91_, _data_->_tmp92_);
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->detail2);
#line 4326 "contacts-linking.c"
				}
#line 289 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_detail2_it);
#line 4330 "contacts-linking.c"
			}
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_free0 (_data_->proto2);
#line 4334 "contacts-linking.c"
		}
#line 288 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_proto2_it);
#line 4338 "contacts-linking.c"
	}
#line 295 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp93_ = _data_->changed;
#line 295 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp93_) {
#line 4344 "contacts-linking.c"
		{
#line 297 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp94_ = _data_->details;
#line 297 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp95_ = folks_im_details_get_im_addresses (_data_->_tmp94_);
#line 297 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp96_ = _data_->_tmp95_;
#line 297 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp97_ = _g_object_ref0 (_data_->_tmp96_);
#line 297 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->old_value = _data_->_tmp97_;
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp98_ = _data_->details;
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp99_ = _data_->new_values;
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 1;
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_im_details_change_im_addresses (_data_->_tmp98_, (GeeMultiMap*) _data_->_tmp99_, contacts_persona_attribute_im_address_persona_apply_attributes_ready, _data_);
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 4366 "contacts-linking.c"
			_state_1:
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_im_details_change_im_addresses_finish (_data_->_tmp98_, _data_->_res_, &_data_->_inner_error_);
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 298 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->old_value);
#line 4374 "contacts-linking.c"
				goto __catch14_g_error;
			}
#line 299 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp100_ = _data_->operation;
#line 299 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp101_ = _data_->persona;
#line 299 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp102_ = _data_->old_value;
#line 299 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_link_operation_add_change (_data_->_tmp100_, (ContactsPersonaAttribute*) _data_->self, _data_->_tmp101_, (GObject*) _data_->_tmp102_);
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->old_value);
#line 4387 "contacts-linking.c"
		}
		goto __finally14;
		__catch14_g_error:
		{
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->e = _data_->_inner_error_;
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_inner_error_ = NULL;
#line 301 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp103_ = _data_->e;
#line 301 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp104_ = _data_->_tmp103_->message;
#line 301 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_warning ("contacts-linking.vala:301: Unable to set im address when linking: %s\n", _data_->_tmp104_);
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_error_free0 (_data_->e);
#line 4404 "contacts-linking.c"
		}
		__finally14:
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->new_values);
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->removed_values);
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->added_values);
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->details);
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_clear_error (&_data_->_inner_error_);
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_object_unref (_data_->_async_result);
#line 296 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 4425 "contacts-linking.c"
		}
	}
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->new_values);
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->removed_values);
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->added_values);
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->details);
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 4444 "contacts-linking.c"
		}
	}
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 248 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 4451 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_real_set_value_data_free (gpointer _data) {
	ContactsPersonaAttributeImAddressSetValueData* _data_;
	_data_ = _data;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->value);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->self);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_slice_free (ContactsPersonaAttributeImAddressSetValueData, _data_);
#line 4466 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_real_set_value_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsPersonaAttributeImAddressSetValueData* _task_data_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_task_data_->_callback_ != NULL) {
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 4478 "contacts-linking.c"
	}
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_->_task_complete_ = TRUE;
#line 4482 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_real_set_value (ContactsPersonaAttribute* base, FolksPersona* persona, GObject* value, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsPersonaAttributeImAddress * self;
	ContactsPersonaAttributeImAddressSetValueData* _data_;
	ContactsPersonaAttributeImAddress* _tmp0_;
	FolksPersona* _tmp1_;
	FolksPersona* _tmp2_;
	GObject* _tmp3_;
	GObject* _tmp4_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeImAddress*) base;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_slice_new0 (ContactsPersonaAttributeImAddressSetValueData);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_callback_ = _callback_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, contacts_persona_attribute_im_address_real_set_value_async_ready_wrapper, _user_data_);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_callback_ == NULL) {
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_task_complete_ = TRUE;
#line 4506 "contacts-linking.c"
	}
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_set_task_data (_data_->_async_result, _data_, contacts_persona_attribute_im_address_real_set_value_data_free);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->self = _tmp0_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = persona;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->persona = _tmp2_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = value;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->value);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->value = _tmp4_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_im_address_real_set_value_co (_data_);
#line 4532 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_real_set_value_finish (ContactsPersonaAttribute* base, GAsyncResult* _res_) {
	ContactsPersonaAttributeImAddressSetValueData* _data_;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 4540 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_set_value_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsPersonaAttributeImAddressSetValueData* _data_;
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_im_address_real_set_value_co (_data_);
#line 4556 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_im_address_real_set_value_co (ContactsPersonaAttributeImAddressSetValueData* _data_) {
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 4565 "contacts-linking.c"
		goto _state_0;
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 4569 "contacts-linking.c"
		goto _state_1;
		default:
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 4574 "contacts-linking.c"
	}
	_state_0:
#line 307 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->persona;
#line 307 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp0_, FOLKS_TYPE_IM_DETAILS) ? ((FolksImDetails*) _data_->_tmp0_) : NULL);
#line 307 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->details = _data_->_tmp1_;
#line 308 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _data_->details;
#line 308 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp2_ == NULL) {
#line 309 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->details);
#line 309 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 309 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (_data_->_state_ != 0) {
#line 309 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 309 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 4597 "contacts-linking.c"
			}
		}
#line 309 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 309 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 4604 "contacts-linking.c"
	}
	{
#line 312 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp3_ = _data_->value;
#line 312 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp3_, GEE_TYPE_HASH_MULTI_MAP) ? ((GeeHashMultiMap*) _data_->_tmp3_) : NULL);
#line 312 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->v = _data_->_tmp4_;
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp5_ = _data_->details;
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp6_ = _data_->v;
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_state_ = 1;
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		folks_im_details_change_im_addresses (_data_->_tmp5_, (GeeMultiMap*) _data_->_tmp6_, contacts_persona_attribute_im_address_set_value_ready, _data_);
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 4623 "contacts-linking.c"
		_state_1:
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		folks_im_details_change_im_addresses_finish (_data_->_tmp5_, _data_->_res_, &_data_->_inner_error_);
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 313 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->v);
#line 4631 "contacts-linking.c"
			goto __catch15_g_error;
		}
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->v);
#line 4636 "contacts-linking.c"
	}
	goto __finally15;
	__catch15_g_error:
	{
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->e = _data_->_inner_error_;
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_inner_error_ = NULL;
#line 315 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp7_ = _data_->e;
#line 315 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp8_ = _data_->_tmp7_->message;
#line 315 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_warning ("contacts-linking.vala:315: Unable to set local ids when undoing link: " \
"%s\n", _data_->_tmp8_);
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_error_free0 (_data_->e);
#line 4653 "contacts-linking.c"
	}
	__finally15:
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->details);
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_clear_error (&_data_->_inner_error_);
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 311 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 4668 "contacts-linking.c"
	}
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->details);
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 4680 "contacts-linking.c"
		}
	}
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 306 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 4687 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_im_address_real_equal (ContactsPersonaAttribute* base, ContactsPersonaAttribute* _that) {
	ContactsPersonaAttributeImAddress * self;
	gboolean result = FALSE;
	ContactsPersonaAttributeImAddress* that = NULL;
	ContactsPersonaAttribute* _tmp0_;
	ContactsPersonaAttributeImAddress* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_ = FALSE;
	ContactsPersonaAttributeImAddress* _tmp5_;
#line 319 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeImAddress*) base;
#line 319 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (_that != NULL, FALSE);
#line 320 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _that;
#line 320 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS) ? ((ContactsPersonaAttributeImAddress*) _tmp0_) : NULL);
#line 320 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	that = _tmp1_;
#line 322 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp5_ = that;
#line 322 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp5_ != NULL) {
#line 4715 "contacts-linking.c"
		ContactsPersonaAttributeImAddress* _tmp6_;
		gboolean _tmp7_;
#line 323 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp6_ = that;
#line 323 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp7_ = CONTACTS_PERSONA_ATTRIBUTE_CLASS (contacts_persona_attribute_im_address_parent_class)->equal (G_TYPE_CHECK_INSTANCE_CAST (self, CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttribute), (ContactsPersonaAttribute*) _tmp6_);
#line 323 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp4_ = _tmp7_;
#line 4724 "contacts-linking.c"
	} else {
#line 322 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp4_ = FALSE;
#line 4728 "contacts-linking.c"
	}
#line 322 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp4_) {
#line 4732 "contacts-linking.c"
		const gchar* _tmp8_;
		ContactsPersonaAttributeImAddress* _tmp9_;
		const gchar* _tmp10_;
#line 324 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp8_ = self->priv->protocol;
#line 324 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp9_ = that;
#line 324 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp10_ = _tmp9_->priv->protocol;
#line 324 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = g_strcmp0 (_tmp8_, _tmp10_) == 0;
#line 4744 "contacts-linking.c"
	} else {
#line 322 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = FALSE;
#line 4748 "contacts-linking.c"
	}
#line 322 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp3_) {
#line 4752 "contacts-linking.c"
		FolksImFieldDetails* _tmp11_;
		ContactsPersonaAttributeImAddress* _tmp12_;
		FolksImFieldDetails* _tmp13_;
		gboolean _tmp14_;
#line 325 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp11_ = self->priv->detail;
#line 325 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp12_ = that;
#line 325 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp13_ = _tmp12_->priv->detail;
#line 325 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp14_ = folks_abstract_field_details_equal ((FolksAbstractFieldDetails*) _tmp11_, (FolksAbstractFieldDetails*) _tmp13_);
#line 325 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp2_ = _tmp14_;
#line 4767 "contacts-linking.c"
	} else {
#line 322 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp2_ = FALSE;
#line 4771 "contacts-linking.c"
	}
#line 321 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp2_;
#line 321 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (that);
#line 321 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 4779 "contacts-linking.c"
}


static guint contacts_persona_attribute_im_address_real_hash (ContactsPersonaAttribute* base) {
	ContactsPersonaAttributeImAddress * self;
	guint result = 0U;
	const gchar* _tmp0_;
	guint _tmp1_;
	FolksImFieldDetails* _tmp2_;
	guint _tmp3_;
	guint _tmp4_;
#line 328 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeImAddress*) base;
#line 329 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = self->priv->protocol;
#line 329 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = g_str_hash (_tmp0_);
#line 329 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = self->priv->detail;
#line 329 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = folks_abstract_field_details_hash ((FolksAbstractFieldDetails*) _tmp2_);
#line 329 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = CONTACTS_PERSONA_ATTRIBUTE_CLASS (contacts_persona_attribute_im_address_parent_class)->hash (G_TYPE_CHECK_INSTANCE_CAST (self, CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttribute));
#line 329 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = (_tmp1_ ^ _tmp3_) ^ _tmp4_;
#line 329 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 4807 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_class_init (ContactsPersonaAttributeImAddressClass * klass) {
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_im_address_parent_class = g_type_class_peek_parent (klass);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_type_class_add_private (klass, sizeof (ContactsPersonaAttributeImAddressPrivate));
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->is_referenced_by_persona = (gboolean (*) (ContactsPersonaAttribute *, FolksPersona*)) contacts_persona_attribute_im_address_real_is_referenced_by_persona;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->persona_apply_attributes = (void (*) (ContactsPersonaAttribute *, FolksPersona*, GeeSet*, GeeSet*, ContactsLinkOperation*, GAsyncReadyCallback, gpointer)) contacts_persona_attribute_im_address_real_persona_apply_attributes;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->persona_apply_attributes_finish = (void (*) (ContactsPersonaAttribute *, GAsyncResult*)) contacts_persona_attribute_im_address_real_persona_apply_attributes_finish;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->set_value = (void (*) (ContactsPersonaAttribute *, FolksPersona*, GObject*, GAsyncReadyCallback, gpointer)) contacts_persona_attribute_im_address_real_set_value;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->set_value_finish = (void (*) (ContactsPersonaAttribute *, GAsyncResult*)) contacts_persona_attribute_im_address_real_set_value_finish;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->equal = (gboolean (*) (ContactsPersonaAttribute *, ContactsPersonaAttribute*)) contacts_persona_attribute_im_address_real_equal;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->hash = (guint (*) (ContactsPersonaAttribute *)) contacts_persona_attribute_im_address_real_hash;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (klass)->finalize = contacts_persona_attribute_im_address_finalize;
#line 4832 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_instance_init (ContactsPersonaAttributeImAddress * self) {
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv = CONTACTS_PERSONA_ATTRIBUTE_IM_ADDRESS_GET_PRIVATE (self);
#line 4839 "contacts-linking.c"
}


static void contacts_persona_attribute_im_address_finalize (GObject * obj) {
	ContactsPersonaAttributeImAddress * self;
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CONTACTS_TYPE_PERSONA_ATTRIBUTE_IM_ADDRESS, ContactsPersonaAttributeImAddress);
#line 225 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (self->priv->protocol);
#line 226 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->detail);
#line 224 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (contacts_persona_attribute_im_address_parent_class)->finalize (obj);
#line 4853 "contacts-linking.c"
}


GType contacts_persona_attribute_im_address_get_type (void) {
	static volatile gsize contacts_persona_attribute_im_address_type_id__volatile = 0;
	if (g_once_init_enter (&contacts_persona_attribute_im_address_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ContactsPersonaAttributeImAddressClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) contacts_persona_attribute_im_address_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ContactsPersonaAttributeImAddress), 0, (GInstanceInitFunc) contacts_persona_attribute_im_address_instance_init, NULL };
		GType contacts_persona_attribute_im_address_type_id;
		contacts_persona_attribute_im_address_type_id = g_type_register_static (CONTACTS_TYPE_PERSONA_ATTRIBUTE, "ContactsPersonaAttributeImAddress", &g_define_type_info, 0);
		g_once_init_leave (&contacts_persona_attribute_im_address_type_id__volatile, contacts_persona_attribute_im_address_type_id);
	}
	return contacts_persona_attribute_im_address_type_id__volatile;
}


ContactsPersonaAttributeWebService* contacts_persona_attribute_web_service_construct (GType object_type, const gchar* service, FolksWebServiceFieldDetails* detail) {
	ContactsPersonaAttributeWebService * self = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	FolksWebServiceFieldDetails* _tmp3_;
	FolksWebServiceFieldDetails* _tmp4_;
#line 337 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (service != NULL, NULL);
#line 337 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (detail != NULL, NULL);
#line 337 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeWebService*) contacts_persona_attribute_construct (object_type);
#line 338 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = g_strdup ("web-service-addresses");
#line 338 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (((ContactsPersonaAttribute*) self)->property_name);
#line 338 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttribute*) self)->property_name = _tmp0_;
#line 339 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = service;
#line 339 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 339 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (self->priv->service);
#line 339 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv->service = _tmp2_;
#line 340 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = detail;
#line 340 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 340 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->detail);
#line 340 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv->detail = _tmp4_;
#line 337 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return self;
#line 4906 "contacts-linking.c"
}


ContactsPersonaAttributeWebService* contacts_persona_attribute_web_service_new (const gchar* service, FolksWebServiceFieldDetails* detail) {
#line 337 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return contacts_persona_attribute_web_service_construct (CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, service, detail);
#line 4913 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_web_service_real_is_referenced_by_persona (ContactsPersonaAttribute* base, FolksPersona* persona) {
	ContactsPersonaAttributeWebService * self;
	gboolean result = FALSE;
	FolksWebServiceDetails* details = NULL;
	FolksPersona* _tmp0_;
	FolksWebServiceDetails* _tmp1_;
	FolksWebServiceDetails* _tmp2_;
	FolksWebServiceDetails* _tmp3_;
	GeeMultiMap* _tmp4_;
	GeeMultiMap* _tmp5_;
	const gchar* _tmp6_;
	GeeCollection* _tmp7_;
	GeeCollection* _tmp8_;
	FolksWebServiceFieldDetails* _tmp9_;
	gboolean _tmp10_;
	gboolean _tmp11_;
#line 349 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeWebService*) base;
#line 349 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (persona != NULL, FALSE);
#line 350 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = persona;
#line 350 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, FOLKS_TYPE_WEB_SERVICE_DETAILS) ? ((FolksWebServiceDetails*) _tmp0_) : NULL);
#line 350 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	details = _tmp1_;
#line 351 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = details;
#line 351 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp2_ == NULL) {
#line 352 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		result = FALSE;
#line 352 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (details);
#line 352 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return result;
#line 4953 "contacts-linking.c"
	}
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = details;
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = folks_web_service_details_get_web_service_addresses (_tmp3_);
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp5_ = _tmp4_;
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp6_ = self->priv->service;
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp7_ = gee_multi_map_get (_tmp5_, _tmp6_);
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp8_ = _tmp7_;
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp9_ = self->priv->detail;
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp10_ = gee_collection_contains (_tmp8_, _tmp9_);
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp11_ = _tmp10_;
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_tmp8_);
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp11_;
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (details);
#line 354 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 4981 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_real_persona_apply_attributes_data_free (gpointer _data) {
	ContactsPersonaAttributeWebServicePersonaApplyAttributesData* _data_;
	_data_ = _data;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->added_attributes);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->removed_attributes);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->operation);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->self);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_slice_free (ContactsPersonaAttributeWebServicePersonaApplyAttributesData, _data_);
#line 5000 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_real_persona_apply_attributes_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsPersonaAttributeWebServicePersonaApplyAttributesData* _task_data_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_task_data_->_callback_ != NULL) {
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 5012 "contacts-linking.c"
	}
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_->_task_complete_ = TRUE;
#line 5016 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_real_persona_apply_attributes (ContactsPersonaAttribute* base, FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsPersonaAttributeWebService * self;
	ContactsPersonaAttributeWebServicePersonaApplyAttributesData* _data_;
	ContactsPersonaAttributeWebService* _tmp0_;
	FolksPersona* _tmp1_;
	FolksPersona* _tmp2_;
	GeeSet* _tmp3_;
	GeeSet* _tmp4_;
	GeeSet* _tmp5_;
	GeeSet* _tmp6_;
	ContactsLinkOperation* _tmp7_;
	ContactsLinkOperation* _tmp8_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeWebService*) base;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_slice_new0 (ContactsPersonaAttributeWebServicePersonaApplyAttributesData);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_callback_ = _callback_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, contacts_persona_attribute_web_service_real_persona_apply_attributes_async_ready_wrapper, _user_data_);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_callback_ == NULL) {
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_task_complete_ = TRUE;
#line 5044 "contacts-linking.c"
	}
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_set_task_data (_data_->_async_result, _data_, contacts_persona_attribute_web_service_real_persona_apply_attributes_data_free);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->self = _tmp0_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = persona;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->persona = _tmp2_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = added_attributes;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->added_attributes);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->added_attributes = _tmp4_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp5_ = removed_attributes;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp6_ = _g_object_ref0 (_tmp5_);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->removed_attributes);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->removed_attributes = _tmp6_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp7_ = operation;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp8_ = _g_object_ref0 (_tmp7_);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->operation);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->operation = _tmp8_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_web_service_real_persona_apply_attributes_co (_data_);
#line 5086 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_real_persona_apply_attributes_finish (ContactsPersonaAttribute* base, GAsyncResult* _res_) {
	ContactsPersonaAttributeWebServicePersonaApplyAttributesData* _data_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 5094 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_persona_apply_attributes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsPersonaAttributeWebServicePersonaApplyAttributesData* _data_;
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_web_service_real_persona_apply_attributes_co (_data_);
#line 5110 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_web_service_real_persona_apply_attributes_co (ContactsPersonaAttributeWebServicePersonaApplyAttributesData* _data_) {
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 5119 "contacts-linking.c"
		goto _state_0;
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 5123 "contacts-linking.c"
		goto _state_1;
		default:
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 5128 "contacts-linking.c"
	}
	_state_0:
#line 361 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->persona;
#line 361 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp0_, FOLKS_TYPE_WEB_SERVICE_DETAILS) ? ((FolksWebServiceDetails*) _data_->_tmp0_) : NULL);
#line 361 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->details = _data_->_tmp1_;
#line 362 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _data_->details;
#line 362 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp2_ == NULL) {
#line 363 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->details);
#line 363 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 363 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (_data_->_state_ != 0) {
#line 363 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 363 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 5151 "contacts-linking.c"
			}
		}
#line 363 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 363 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 5158 "contacts-linking.c"
	}
#line 365 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp3_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, FOLKS_TYPE_WEB_SERVICE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _folks_abstract_field_details_hash_static_gee_hash_data_func, NULL, NULL, _folks_abstract_field_details_equal_static_gee_equal_data_func, NULL, NULL);
#line 365 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->added_values = _data_->_tmp3_;
#line 5164 "contacts-linking.c"
	{
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp4_ = _data_->added_attributes;
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp5_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp4_);
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_added_it = _data_->_tmp5_;
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp6_ = _data_->_added_it;
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp7_ = gee_iterator_next (_data_->_tmp6_);
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp7_) {
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 5182 "contacts-linking.c"
			}
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp8_ = _data_->_added_it;
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp9_ = gee_iterator_get (_data_->_tmp8_);
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->added = (ContactsPersonaAttribute*) _data_->_tmp9_;
#line 369 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp10_ = _data_->added_values;
#line 369 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp11_ = _data_->added;
#line 369 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp11_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, ContactsPersonaAttributeWebService)->priv->service;
#line 369 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp13_ = _data_->added;
#line 369 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp14_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp13_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, ContactsPersonaAttributeWebService)->priv->detail;
#line 369 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_multi_map_set ((GeeMultiMap*) _data_->_tmp10_, _data_->_tmp12_, _data_->_tmp14_);
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->added);
#line 5204 "contacts-linking.c"
		}
#line 368 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_added_it);
#line 5208 "contacts-linking.c"
	}
#line 372 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp15_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, FOLKS_TYPE_WEB_SERVICE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _folks_abstract_field_details_hash_static_gee_hash_data_func, NULL, NULL, _folks_abstract_field_details_equal_static_gee_equal_data_func, NULL, NULL);
#line 372 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->removed_values = _data_->_tmp15_;
#line 5214 "contacts-linking.c"
	{
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp16_ = _data_->removed_attributes;
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp17_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp16_);
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_removed_it = _data_->_tmp17_;
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp18_ = _data_->_removed_it;
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp19_ = gee_iterator_next (_data_->_tmp18_);
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp19_) {
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 5232 "contacts-linking.c"
			}
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp20_ = _data_->_removed_it;
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp21_ = gee_iterator_get (_data_->_tmp20_);
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->removed = (ContactsPersonaAttribute*) _data_->_tmp21_;
#line 376 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp22_ = _data_->removed_values;
#line 376 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp23_ = _data_->removed;
#line 376 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp24_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp23_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, ContactsPersonaAttributeWebService)->priv->service;
#line 376 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp25_ = _data_->removed;
#line 376 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp26_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp25_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, ContactsPersonaAttributeWebService)->priv->detail;
#line 376 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_multi_map_set ((GeeMultiMap*) _data_->_tmp22_, _data_->_tmp24_, _data_->_tmp26_);
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->removed);
#line 5254 "contacts-linking.c"
		}
#line 375 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_removed_it);
#line 5258 "contacts-linking.c"
	}
#line 379 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp27_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, FOLKS_TYPE_WEB_SERVICE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _folks_abstract_field_details_hash_static_gee_hash_data_func, NULL, NULL, _folks_abstract_field_details_equal_static_gee_equal_data_func, NULL, NULL);
#line 379 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->new_values = _data_->_tmp27_;
#line 383 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->changed = FALSE;
#line 5266 "contacts-linking.c"
	{
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp28_ = _data_->details;
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp29_ = folks_web_service_details_get_web_service_addresses (_data_->_tmp28_);
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp30_ = _data_->_tmp29_;
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp31_ = gee_multi_map_get_keys (_data_->_tmp30_);
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp32_ = _data_->_tmp31_;
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp33_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp32_);
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp34_ = _data_->_tmp33_;
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_tmp32_);
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_srv1_it = _data_->_tmp34_;
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp35_ = _data_->_srv1_it;
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp36_ = gee_iterator_next (_data_->_tmp35_);
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp36_) {
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 5296 "contacts-linking.c"
			}
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp37_ = _data_->_srv1_it;
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp38_ = gee_iterator_get (_data_->_tmp37_);
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->srv1 = (gchar*) _data_->_tmp38_;
#line 5304 "contacts-linking.c"
			{
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp39_ = _data_->details;
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp40_ = folks_web_service_details_get_web_service_addresses (_data_->_tmp39_);
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp41_ = _data_->_tmp40_;
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp42_ = _data_->srv1;
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp43_ = gee_multi_map_get (_data_->_tmp41_, _data_->_tmp42_);
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp44_ = _data_->_tmp43_;
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp45_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp44_);
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp46_ = _data_->_tmp45_;
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_tmp44_);
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_detail1_it = _data_->_tmp46_;
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				while (TRUE) {
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp47_ = _data_->_detail1_it;
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp48_ = gee_iterator_next (_data_->_tmp47_);
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (!_data_->_tmp48_) {
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						break;
#line 5336 "contacts-linking.c"
					}
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp49_ = _data_->_detail1_it;
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp50_ = gee_iterator_get (_data_->_tmp49_);
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->detail1 = (FolksWebServiceFieldDetails*) _data_->_tmp50_;
#line 386 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp51_ = _data_->removed_values;
#line 386 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp52_ = _data_->srv1;
#line 386 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp53_ = gee_multi_map_get ((GeeMultiMap*) _data_->_tmp51_, _data_->_tmp52_);
#line 386 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp54_ = _data_->_tmp53_;
#line 386 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp55_ = _data_->detail1;
#line 386 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp56_ = gee_collection_contains (_data_->_tmp54_, _data_->_tmp55_);
#line 386 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp57_ = _data_->_tmp56_;
#line 386 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->_tmp54_);
#line 386 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (_data_->_tmp57_) {
#line 387 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->changed = TRUE;
#line 388 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_data_->detail1);
#line 388 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						continue;
#line 5368 "contacts-linking.c"
					}
#line 390 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp58_ = _data_->new_values;
#line 390 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp59_ = _data_->srv1;
#line 390 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp60_ = _data_->detail1;
#line 390 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					gee_multi_map_set ((GeeMultiMap*) _data_->_tmp58_, _data_->_tmp59_, _data_->_tmp60_);
#line 391 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp61_ = _data_->added_values;
#line 391 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp62_ = _data_->srv1;
#line 391 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp63_ = gee_multi_map_get ((GeeMultiMap*) _data_->_tmp61_, _data_->_tmp62_);
#line 391 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp64_ = _data_->_tmp63_;
#line 391 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp65_ = _data_->detail1;
#line 391 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp66_ = gee_collection_contains (_data_->_tmp64_, _data_->_tmp65_);
#line 391 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp67_ = _data_->_tmp66_;
#line 391 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->_tmp64_);
#line 391 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (_data_->_tmp67_) {
#line 392 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp68_ = _data_->added_values;
#line 392 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp69_ = _data_->srv1;
#line 392 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp70_ = _data_->detail1;
#line 392 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						gee_multi_map_remove ((GeeMultiMap*) _data_->_tmp68_, _data_->_tmp69_, _data_->_tmp70_);
#line 5404 "contacts-linking.c"
					}
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->detail1);
#line 5408 "contacts-linking.c"
				}
#line 385 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_detail1_it);
#line 5412 "contacts-linking.c"
			}
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_free0 (_data_->srv1);
#line 5416 "contacts-linking.c"
		}
#line 384 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_srv1_it);
#line 5420 "contacts-linking.c"
	}
	{
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp71_ = _data_->added_values;
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp72_ = gee_multi_map_get_keys ((GeeMultiMap*) _data_->_tmp71_);
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp73_ = _data_->_tmp72_;
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp74_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp73_);
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp75_ = _data_->_tmp74_;
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_tmp73_);
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_srv2_it = _data_->_tmp75_;
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp76_ = _data_->_srv2_it;
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp77_ = gee_iterator_next (_data_->_tmp76_);
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp77_) {
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 5447 "contacts-linking.c"
			}
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp78_ = _data_->_srv2_it;
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp79_ = gee_iterator_get (_data_->_tmp78_);
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->srv2 = (gchar*) _data_->_tmp79_;
#line 5455 "contacts-linking.c"
			{
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp80_ = _data_->added_values;
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp81_ = _data_->srv2;
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp82_ = gee_multi_map_get ((GeeMultiMap*) _data_->_tmp80_, _data_->_tmp81_);
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp83_ = _data_->_tmp82_;
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp84_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp83_);
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp85_ = _data_->_tmp84_;
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_tmp83_);
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_detail2_it = _data_->_tmp85_;
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				while (TRUE) {
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp86_ = _data_->_detail2_it;
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp87_ = gee_iterator_next (_data_->_tmp86_);
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (!_data_->_tmp87_) {
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						break;
#line 5483 "contacts-linking.c"
					}
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp88_ = _data_->_detail2_it;
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp89_ = gee_iterator_get (_data_->_tmp88_);
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->detail2 = (FolksWebServiceFieldDetails*) _data_->_tmp89_;
#line 398 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->changed = TRUE;
#line 399 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp90_ = _data_->new_values;
#line 399 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp91_ = _data_->srv2;
#line 399 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp92_ = _data_->detail2;
#line 399 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					gee_multi_map_set ((GeeMultiMap*) _data_->_tmp90_, _data_->_tmp91_, _data_->_tmp92_);
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->detail2);
#line 5503 "contacts-linking.c"
				}
#line 397 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_detail2_it);
#line 5507 "contacts-linking.c"
			}
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_free0 (_data_->srv2);
#line 5511 "contacts-linking.c"
		}
#line 396 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_srv2_it);
#line 5515 "contacts-linking.c"
	}
#line 403 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp93_ = _data_->changed;
#line 403 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp93_) {
#line 5521 "contacts-linking.c"
		{
#line 405 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp94_ = _data_->details;
#line 405 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp95_ = folks_web_service_details_get_web_service_addresses (_data_->_tmp94_);
#line 405 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp96_ = _data_->_tmp95_;
#line 405 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp97_ = _g_object_ref0 (_data_->_tmp96_);
#line 405 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->old_value = _data_->_tmp97_;
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp98_ = _data_->details;
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp99_ = _data_->new_values;
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 1;
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_web_service_details_change_web_service_addresses (_data_->_tmp98_, (GeeMultiMap*) _data_->_tmp99_, contacts_persona_attribute_web_service_persona_apply_attributes_ready, _data_);
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 5543 "contacts-linking.c"
			_state_1:
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_web_service_details_change_web_service_addresses_finish (_data_->_tmp98_, _data_->_res_, &_data_->_inner_error_);
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 406 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->old_value);
#line 5551 "contacts-linking.c"
				goto __catch16_g_error;
			}
#line 407 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp100_ = _data_->operation;
#line 407 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp101_ = _data_->persona;
#line 407 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp102_ = _data_->old_value;
#line 407 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_link_operation_add_change (_data_->_tmp100_, (ContactsPersonaAttribute*) _data_->self, _data_->_tmp101_, (GObject*) _data_->_tmp102_);
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->old_value);
#line 5564 "contacts-linking.c"
		}
		goto __finally16;
		__catch16_g_error:
		{
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->e = _data_->_inner_error_;
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_inner_error_ = NULL;
#line 409 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp103_ = _data_->e;
#line 409 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp104_ = _data_->_tmp103_->message;
#line 409 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_warning ("contacts-linking.vala:409: Unable to set web service when linking: %s\n", _data_->_tmp104_);
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_error_free0 (_data_->e);
#line 5581 "contacts-linking.c"
		}
		__finally16:
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->new_values);
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->removed_values);
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->added_values);
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->details);
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_clear_error (&_data_->_inner_error_);
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_object_unref (_data_->_async_result);
#line 404 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 5602 "contacts-linking.c"
		}
	}
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->new_values);
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->removed_values);
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->added_values);
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->details);
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 5621 "contacts-linking.c"
		}
	}
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 357 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 5628 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_real_set_value_data_free (gpointer _data) {
	ContactsPersonaAttributeWebServiceSetValueData* _data_;
	_data_ = _data;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->value);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->self);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_slice_free (ContactsPersonaAttributeWebServiceSetValueData, _data_);
#line 5643 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_real_set_value_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsPersonaAttributeWebServiceSetValueData* _task_data_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_task_data_->_callback_ != NULL) {
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 5655 "contacts-linking.c"
	}
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_->_task_complete_ = TRUE;
#line 5659 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_real_set_value (ContactsPersonaAttribute* base, FolksPersona* persona, GObject* value, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsPersonaAttributeWebService * self;
	ContactsPersonaAttributeWebServiceSetValueData* _data_;
	ContactsPersonaAttributeWebService* _tmp0_;
	FolksPersona* _tmp1_;
	FolksPersona* _tmp2_;
	GObject* _tmp3_;
	GObject* _tmp4_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeWebService*) base;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_slice_new0 (ContactsPersonaAttributeWebServiceSetValueData);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_callback_ = _callback_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, contacts_persona_attribute_web_service_real_set_value_async_ready_wrapper, _user_data_);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_callback_ == NULL) {
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_task_complete_ = TRUE;
#line 5683 "contacts-linking.c"
	}
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_set_task_data (_data_->_async_result, _data_, contacts_persona_attribute_web_service_real_set_value_data_free);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->self = _tmp0_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = persona;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->persona = _tmp2_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = value;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->value);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->value = _tmp4_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_web_service_real_set_value_co (_data_);
#line 5709 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_real_set_value_finish (ContactsPersonaAttribute* base, GAsyncResult* _res_) {
	ContactsPersonaAttributeWebServiceSetValueData* _data_;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 5717 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_set_value_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsPersonaAttributeWebServiceSetValueData* _data_;
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_web_service_real_set_value_co (_data_);
#line 5733 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_web_service_real_set_value_co (ContactsPersonaAttributeWebServiceSetValueData* _data_) {
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 5742 "contacts-linking.c"
		goto _state_0;
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 5746 "contacts-linking.c"
		goto _state_1;
		default:
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 5751 "contacts-linking.c"
	}
	_state_0:
#line 415 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->persona;
#line 415 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp0_, FOLKS_TYPE_WEB_SERVICE_DETAILS) ? ((FolksWebServiceDetails*) _data_->_tmp0_) : NULL);
#line 415 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->details = _data_->_tmp1_;
#line 416 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _data_->details;
#line 416 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp2_ == NULL) {
#line 417 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->details);
#line 417 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 417 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (_data_->_state_ != 0) {
#line 417 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (_data_->_task_complete_ != TRUE) {
#line 417 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 5774 "contacts-linking.c"
			}
		}
#line 417 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 417 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 5781 "contacts-linking.c"
	}
	{
#line 420 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp3_ = _data_->value;
#line 420 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp3_, GEE_TYPE_HASH_MULTI_MAP) ? ((GeeHashMultiMap*) _data_->_tmp3_) : NULL);
#line 420 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->v = _data_->_tmp4_;
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp5_ = _data_->details;
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp6_ = _data_->v;
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_state_ = 1;
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		folks_web_service_details_change_web_service_addresses (_data_->_tmp5_, (GeeMultiMap*) _data_->_tmp6_, contacts_persona_attribute_web_service_set_value_ready, _data_);
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 5800 "contacts-linking.c"
		_state_1:
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		folks_web_service_details_change_web_service_addresses_finish (_data_->_tmp5_, _data_->_res_, &_data_->_inner_error_);
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 421 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->v);
#line 5808 "contacts-linking.c"
			goto __catch17_g_error;
		}
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->v);
#line 5813 "contacts-linking.c"
	}
	goto __finally17;
	__catch17_g_error:
	{
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->e = _data_->_inner_error_;
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_inner_error_ = NULL;
#line 423 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp7_ = _data_->e;
#line 423 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp8_ = _data_->_tmp7_->message;
#line 423 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_warning ("contacts-linking.vala:423: Unable to set local ids when undoing link: " \
"%s\n", _data_->_tmp8_);
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_error_free0 (_data_->e);
#line 5830 "contacts-linking.c"
	}
	__finally17:
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->details);
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_clear_error (&_data_->_inner_error_);
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 419 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 5845 "contacts-linking.c"
	}
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->details);
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 5857 "contacts-linking.c"
		}
	}
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 414 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 5864 "contacts-linking.c"
}


static gboolean contacts_persona_attribute_web_service_real_equal (ContactsPersonaAttribute* base, ContactsPersonaAttribute* _that) {
	ContactsPersonaAttributeWebService * self;
	gboolean result = FALSE;
	ContactsPersonaAttributeWebService* that = NULL;
	ContactsPersonaAttribute* _tmp0_;
	ContactsPersonaAttributeWebService* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_ = FALSE;
	ContactsPersonaAttributeWebService* _tmp5_;
#line 427 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeWebService*) base;
#line 427 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (_that != NULL, FALSE);
#line 428 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _that;
#line 428 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE) ? ((ContactsPersonaAttributeWebService*) _tmp0_) : NULL);
#line 428 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	that = _tmp1_;
#line 430 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp5_ = that;
#line 430 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp5_ != NULL) {
#line 5892 "contacts-linking.c"
		ContactsPersonaAttributeWebService* _tmp6_;
		gboolean _tmp7_;
#line 431 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp6_ = that;
#line 431 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp7_ = CONTACTS_PERSONA_ATTRIBUTE_CLASS (contacts_persona_attribute_web_service_parent_class)->equal (G_TYPE_CHECK_INSTANCE_CAST (self, CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttribute), (ContactsPersonaAttribute*) _tmp6_);
#line 431 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp4_ = _tmp7_;
#line 5901 "contacts-linking.c"
	} else {
#line 430 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp4_ = FALSE;
#line 5905 "contacts-linking.c"
	}
#line 430 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp4_) {
#line 5909 "contacts-linking.c"
		const gchar* _tmp8_;
		ContactsPersonaAttributeWebService* _tmp9_;
		const gchar* _tmp10_;
#line 432 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp8_ = self->priv->service;
#line 432 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp9_ = that;
#line 432 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp10_ = _tmp9_->priv->service;
#line 432 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = g_strcmp0 (_tmp8_, _tmp10_) == 0;
#line 5921 "contacts-linking.c"
	} else {
#line 430 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = FALSE;
#line 5925 "contacts-linking.c"
	}
#line 430 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp3_) {
#line 5929 "contacts-linking.c"
		FolksWebServiceFieldDetails* _tmp11_;
		ContactsPersonaAttributeWebService* _tmp12_;
		FolksWebServiceFieldDetails* _tmp13_;
		gboolean _tmp14_;
#line 433 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp11_ = self->priv->detail;
#line 433 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp12_ = that;
#line 433 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp13_ = _tmp12_->priv->detail;
#line 433 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp14_ = folks_abstract_field_details_equal ((FolksAbstractFieldDetails*) _tmp11_, (FolksAbstractFieldDetails*) _tmp13_);
#line 433 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp2_ = _tmp14_;
#line 5944 "contacts-linking.c"
	} else {
#line 430 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp2_ = FALSE;
#line 5948 "contacts-linking.c"
	}
#line 429 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp2_;
#line 429 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (that);
#line 429 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 5956 "contacts-linking.c"
}


static guint contacts_persona_attribute_web_service_real_hash (ContactsPersonaAttribute* base) {
	ContactsPersonaAttributeWebService * self;
	guint result = 0U;
	const gchar* _tmp0_;
	guint _tmp1_;
	FolksWebServiceFieldDetails* _tmp2_;
	guint _tmp3_;
	guint _tmp4_;
#line 436 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsPersonaAttributeWebService*) base;
#line 437 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = self->priv->service;
#line 437 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = g_str_hash (_tmp0_);
#line 437 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = self->priv->detail;
#line 437 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = folks_abstract_field_details_hash ((FolksAbstractFieldDetails*) _tmp2_);
#line 437 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = CONTACTS_PERSONA_ATTRIBUTE_CLASS (contacts_persona_attribute_web_service_parent_class)->hash (G_TYPE_CHECK_INSTANCE_CAST (self, CONTACTS_TYPE_PERSONA_ATTRIBUTE, ContactsPersonaAttribute));
#line 437 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = (_tmp1_ ^ _tmp3_) ^ _tmp4_;
#line 437 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 5984 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_class_init (ContactsPersonaAttributeWebServiceClass * klass) {
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_attribute_web_service_parent_class = g_type_class_peek_parent (klass);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_type_class_add_private (klass, sizeof (ContactsPersonaAttributeWebServicePrivate));
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->is_referenced_by_persona = (gboolean (*) (ContactsPersonaAttribute *, FolksPersona*)) contacts_persona_attribute_web_service_real_is_referenced_by_persona;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->persona_apply_attributes = (void (*) (ContactsPersonaAttribute *, FolksPersona*, GeeSet*, GeeSet*, ContactsLinkOperation*, GAsyncReadyCallback, gpointer)) contacts_persona_attribute_web_service_real_persona_apply_attributes;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->persona_apply_attributes_finish = (void (*) (ContactsPersonaAttribute *, GAsyncResult*)) contacts_persona_attribute_web_service_real_persona_apply_attributes_finish;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->set_value = (void (*) (ContactsPersonaAttribute *, FolksPersona*, GObject*, GAsyncReadyCallback, gpointer)) contacts_persona_attribute_web_service_real_set_value;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->set_value_finish = (void (*) (ContactsPersonaAttribute *, GAsyncResult*)) contacts_persona_attribute_web_service_real_set_value_finish;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->equal = (gboolean (*) (ContactsPersonaAttribute *, ContactsPersonaAttribute*)) contacts_persona_attribute_web_service_real_equal;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	((ContactsPersonaAttributeClass *) klass)->hash = (guint (*) (ContactsPersonaAttribute *)) contacts_persona_attribute_web_service_real_hash;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (klass)->finalize = contacts_persona_attribute_web_service_finalize;
#line 6009 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_instance_init (ContactsPersonaAttributeWebService * self) {
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv = CONTACTS_PERSONA_ATTRIBUTE_WEB_SERVICE_GET_PRIVATE (self);
#line 6016 "contacts-linking.c"
}


static void contacts_persona_attribute_web_service_finalize (GObject * obj) {
	ContactsPersonaAttributeWebService * self;
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CONTACTS_TYPE_PERSONA_ATTRIBUTE_WEB_SERVICE, ContactsPersonaAttributeWebService);
#line 334 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_free0 (self->priv->service);
#line 335 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->detail);
#line 333 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (contacts_persona_attribute_web_service_parent_class)->finalize (obj);
#line 6030 "contacts-linking.c"
}


GType contacts_persona_attribute_web_service_get_type (void) {
	static volatile gsize contacts_persona_attribute_web_service_type_id__volatile = 0;
	if (g_once_init_enter (&contacts_persona_attribute_web_service_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ContactsPersonaAttributeWebServiceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) contacts_persona_attribute_web_service_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ContactsPersonaAttributeWebService), 0, (GInstanceInitFunc) contacts_persona_attribute_web_service_instance_init, NULL };
		GType contacts_persona_attribute_web_service_type_id;
		contacts_persona_attribute_web_service_type_id = g_type_register_static (CONTACTS_TYPE_PERSONA_ATTRIBUTE, "ContactsPersonaAttributeWebService", &g_define_type_info, 0);
		g_once_init_leave (&contacts_persona_attribute_web_service_type_id__volatile, contacts_persona_attribute_web_service_type_id);
	}
	return contacts_persona_attribute_web_service_type_id__volatile;
}


void contacts_add_linkable_attributes (GeeHashSet* set, FolksPersona* persona) {
	FolksPersona* _tmp0_;
	FolksPersona* _tmp13_;
	FolksPersona* _tmp42_;
#line 441 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (set != NULL);
#line 441 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (persona != NULL);
#line 442 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = persona;
#line 442 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, FOLKS_TYPE_LOCAL_ID_DETAILS)) {
#line 6058 "contacts-linking.c"
		{
			GeeIterator* _id_it = NULL;
			FolksPersona* _tmp1_;
			GeeSet* _tmp2_;
			GeeSet* _tmp3_;
			GeeIterator* _tmp4_;
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp1_ = persona;
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp2_ = folks_local_id_details_get_local_ids (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, FOLKS_TYPE_LOCAL_ID_DETAILS, FolksLocalIdDetails));
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp3_ = _tmp2_;
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp4_ = gee_iterable_iterator ((GeeIterable*) _tmp3_);
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_id_it = _tmp4_;
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 6077 "contacts-linking.c"
				GeeIterator* _tmp5_;
				gboolean _tmp6_;
				gchar* id = NULL;
				GeeIterator* _tmp7_;
				gpointer _tmp8_;
				GeeHashSet* _tmp9_;
				const gchar* _tmp10_;
				ContactsPersonaAttributeLocalId* _tmp11_;
				ContactsPersonaAttributeLocalId* _tmp12_;
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp5_ = _id_it;
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp6_ = gee_iterator_next (_tmp5_);
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!_tmp6_) {
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 6095 "contacts-linking.c"
				}
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp7_ = _id_it;
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp8_ = gee_iterator_get (_tmp7_);
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				id = (gchar*) _tmp8_;
#line 444 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp9_ = set;
#line 444 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp10_ = id;
#line 444 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp11_ = contacts_persona_attribute_local_id_new (_tmp10_);
#line 444 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp12_ = _tmp11_;
#line 444 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, (ContactsPersonaAttribute*) _tmp12_);
#line 444 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_tmp12_);
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_free0 (id);
#line 6117 "contacts-linking.c"
			}
#line 443 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_id_it);
#line 6121 "contacts-linking.c"
		}
	}
#line 448 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp13_ = persona;
#line 448 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, FOLKS_TYPE_IM_DETAILS)) {
#line 6128 "contacts-linking.c"
		{
			GeeIterator* _proto_it = NULL;
			FolksPersona* _tmp14_;
			GeeMultiMap* _tmp15_;
			GeeMultiMap* _tmp16_;
			GeeSet* _tmp17_;
			GeeSet* _tmp18_;
			GeeIterator* _tmp19_;
			GeeIterator* _tmp20_;
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp14_ = persona;
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp15_ = folks_im_details_get_im_addresses (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, FOLKS_TYPE_IM_DETAILS, FolksImDetails));
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp16_ = _tmp15_;
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp17_ = gee_multi_map_get_keys (_tmp16_);
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp18_ = _tmp17_;
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp19_ = gee_iterable_iterator ((GeeIterable*) _tmp18_);
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp20_ = _tmp19_;
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_tmp18_);
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_proto_it = _tmp20_;
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 6158 "contacts-linking.c"
				GeeIterator* _tmp21_;
				gboolean _tmp22_;
				gchar* proto = NULL;
				GeeIterator* _tmp23_;
				gpointer _tmp24_;
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp21_ = _proto_it;
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp22_ = gee_iterator_next (_tmp21_);
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!_tmp22_) {
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 6172 "contacts-linking.c"
				}
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp23_ = _proto_it;
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp24_ = gee_iterator_get (_tmp23_);
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				proto = (gchar*) _tmp24_;
#line 6180 "contacts-linking.c"
				{
					GeeIterator* _im_it = NULL;
					FolksPersona* _tmp25_;
					GeeMultiMap* _tmp26_;
					GeeMultiMap* _tmp27_;
					const gchar* _tmp28_;
					GeeCollection* _tmp29_;
					GeeCollection* _tmp30_;
					GeeIterator* _tmp31_;
					GeeIterator* _tmp32_;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp25_ = persona;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp26_ = folks_im_details_get_im_addresses (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, FOLKS_TYPE_IM_DETAILS, FolksImDetails));
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp27_ = _tmp26_;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp28_ = proto;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp29_ = gee_multi_map_get (_tmp27_, _tmp28_);
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp30_ = _tmp29_;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp31_ = gee_iterable_iterator ((GeeIterable*) _tmp30_);
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp32_ = _tmp31_;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_tmp30_);
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_im_it = _tmp32_;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					while (TRUE) {
#line 6213 "contacts-linking.c"
						GeeIterator* _tmp33_;
						gboolean _tmp34_;
						FolksImFieldDetails* im = NULL;
						GeeIterator* _tmp35_;
						gpointer _tmp36_;
						GeeHashSet* _tmp37_;
						const gchar* _tmp38_;
						FolksImFieldDetails* _tmp39_;
						ContactsPersonaAttributeImAddress* _tmp40_;
						ContactsPersonaAttributeImAddress* _tmp41_;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp33_ = _im_it;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp34_ = gee_iterator_next (_tmp33_);
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						if (!_tmp34_) {
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							break;
#line 6232 "contacts-linking.c"
						}
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp35_ = _im_it;
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp36_ = gee_iterator_get (_tmp35_);
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						im = (FolksImFieldDetails*) _tmp36_;
#line 451 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp37_ = set;
#line 451 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp38_ = proto;
#line 451 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp39_ = im;
#line 451 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp40_ = contacts_persona_attribute_im_address_new (_tmp38_, _tmp39_);
#line 451 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp41_ = _tmp40_;
#line 451 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						gee_abstract_collection_add ((GeeAbstractCollection*) _tmp37_, (ContactsPersonaAttribute*) _tmp41_);
#line 451 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_tmp41_);
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (im);
#line 6256 "contacts-linking.c"
					}
#line 450 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_im_it);
#line 6260 "contacts-linking.c"
				}
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_free0 (proto);
#line 6264 "contacts-linking.c"
			}
#line 449 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_proto_it);
#line 6268 "contacts-linking.c"
		}
	}
#line 456 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp42_ = persona;
#line 456 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp42_, FOLKS_TYPE_WEB_SERVICE_DETAILS)) {
#line 6275 "contacts-linking.c"
		{
			GeeIterator* _srv_it = NULL;
			FolksPersona* _tmp43_;
			GeeMultiMap* _tmp44_;
			GeeMultiMap* _tmp45_;
			GeeSet* _tmp46_;
			GeeSet* _tmp47_;
			GeeIterator* _tmp48_;
			GeeIterator* _tmp49_;
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp43_ = persona;
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp44_ = folks_web_service_details_get_web_service_addresses (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, FOLKS_TYPE_WEB_SERVICE_DETAILS, FolksWebServiceDetails));
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp45_ = _tmp44_;
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp46_ = gee_multi_map_get_keys (_tmp45_);
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp47_ = _tmp46_;
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp48_ = gee_iterable_iterator ((GeeIterable*) _tmp47_);
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp49_ = _tmp48_;
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_tmp47_);
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_srv_it = _tmp49_;
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 6305 "contacts-linking.c"
				GeeIterator* _tmp50_;
				gboolean _tmp51_;
				gchar* srv = NULL;
				GeeIterator* _tmp52_;
				gpointer _tmp53_;
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp50_ = _srv_it;
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp51_ = gee_iterator_next (_tmp50_);
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!_tmp51_) {
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 6319 "contacts-linking.c"
				}
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp52_ = _srv_it;
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp53_ = gee_iterator_get (_tmp52_);
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				srv = (gchar*) _tmp53_;
#line 6327 "contacts-linking.c"
				{
					GeeIterator* _web_it = NULL;
					FolksPersona* _tmp54_;
					GeeMultiMap* _tmp55_;
					GeeMultiMap* _tmp56_;
					const gchar* _tmp57_;
					GeeCollection* _tmp58_;
					GeeCollection* _tmp59_;
					GeeIterator* _tmp60_;
					GeeIterator* _tmp61_;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp54_ = persona;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp55_ = folks_web_service_details_get_web_service_addresses (G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, FOLKS_TYPE_WEB_SERVICE_DETAILS, FolksWebServiceDetails));
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp56_ = _tmp55_;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp57_ = srv;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp58_ = gee_multi_map_get (_tmp56_, _tmp57_);
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp59_ = _tmp58_;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp60_ = gee_iterable_iterator ((GeeIterable*) _tmp59_);
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_tmp61_ = _tmp60_;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_tmp59_);
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_web_it = _tmp61_;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					while (TRUE) {
#line 6360 "contacts-linking.c"
						GeeIterator* _tmp62_;
						gboolean _tmp63_;
						FolksWebServiceFieldDetails* web = NULL;
						GeeIterator* _tmp64_;
						gpointer _tmp65_;
						GeeHashSet* _tmp66_;
						const gchar* _tmp67_;
						FolksWebServiceFieldDetails* _tmp68_;
						ContactsPersonaAttributeWebService* _tmp69_;
						ContactsPersonaAttributeWebService* _tmp70_;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp62_ = _web_it;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp63_ = gee_iterator_next (_tmp62_);
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						if (!_tmp63_) {
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							break;
#line 6379 "contacts-linking.c"
						}
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp64_ = _web_it;
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp65_ = gee_iterator_get (_tmp64_);
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						web = (FolksWebServiceFieldDetails*) _tmp65_;
#line 459 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp66_ = set;
#line 459 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp67_ = srv;
#line 459 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp68_ = web;
#line 459 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp69_ = contacts_persona_attribute_web_service_new (_tmp67_, _tmp68_);
#line 459 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_tmp70_ = _tmp69_;
#line 459 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						gee_abstract_collection_add ((GeeAbstractCollection*) _tmp66_, (ContactsPersonaAttribute*) _tmp70_);
#line 459 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_tmp70_);
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (web);
#line 6403 "contacts-linking.c"
					}
#line 458 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_web_it);
#line 6407 "contacts-linking.c"
				}
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_free0 (srv);
#line 6411 "contacts-linking.c"
			}
#line 457 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_srv_it);
#line 6415 "contacts-linking.c"
		}
	}
}


GeeSet* contacts_get_linkable_attributes (FolksPersona* persona) {
	GeeSet* result = NULL;
	GeeHashSet* res = NULL;
	GeeHashSet* _tmp0_;
	FolksPersona* _tmp1_;
#line 465 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (persona != NULL, NULL);
#line 466 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = contacts_persona_attribute_create_set ();
#line 466 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	res = _tmp0_;
#line 467 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = persona;
#line 467 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_add_linkable_attributes (res, _tmp1_);
#line 468 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = (GeeSet*) res;
#line 468 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 6440 "contacts-linking.c"
}


GeeSet* contacts_get_linkable_attributes_for_individual (FolksIndividual* individual) {
	GeeSet* result = NULL;
	GeeHashSet* res = NULL;
	GeeHashSet* _tmp0_;
#line 471 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (individual != NULL, NULL);
#line 472 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = contacts_persona_attribute_create_set ();
#line 472 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	res = _tmp0_;
#line 6454 "contacts-linking.c"
	{
		GeeIterator* _persona_it = NULL;
		FolksIndividual* _tmp1_;
		GeeSet* _tmp2_;
		GeeSet* _tmp3_;
		GeeIterator* _tmp4_;
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp1_ = individual;
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp2_ = folks_individual_get_personas (_tmp1_);
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = _tmp2_;
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp4_ = gee_iterable_iterator ((GeeIterable*) _tmp3_);
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_persona_it = _tmp4_;
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 6473 "contacts-linking.c"
			GeeIterator* _tmp5_;
			gboolean _tmp6_;
			FolksPersona* persona = NULL;
			GeeIterator* _tmp7_;
			gpointer _tmp8_;
			GeeHashSet* _tmp9_;
			FolksPersona* _tmp10_;
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp5_ = _persona_it;
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp6_ = gee_iterator_next (_tmp5_);
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_tmp6_) {
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 6489 "contacts-linking.c"
			}
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp7_ = _persona_it;
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp8_ = gee_iterator_get (_tmp7_);
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			persona = (FolksPersona*) _tmp8_;
#line 474 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp9_ = res;
#line 474 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp10_ = persona;
#line 474 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_add_linkable_attributes (_tmp9_, _tmp10_);
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (persona);
#line 6505 "contacts-linking.c"
		}
#line 473 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_persona_it);
#line 6509 "contacts-linking.c"
	}
#line 475 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = (GeeSet*) res;
#line 475 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 6515 "contacts-linking.c"
}


gboolean contacts_persona_can_link_to (FolksPersona* persona, GeeSet* attributes) {
	gboolean result = FALSE;
	GeeHashSet* property_names = NULL;
	GeeHashSet* _tmp0_;
#line 478 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (persona != NULL, FALSE);
#line 478 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (attributes != NULL, FALSE);
#line 479 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
#line 479 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	property_names = _tmp0_;
#line 6531 "contacts-linking.c"
	{
		GeeIterator* _a_it = NULL;
		GeeSet* _tmp1_;
		GeeIterator* _tmp2_;
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp1_ = attributes;
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp2_ = gee_iterable_iterator ((GeeIterable*) _tmp1_);
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_a_it = _tmp2_;
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 6544 "contacts-linking.c"
			GeeIterator* _tmp3_;
			gboolean _tmp4_;
			ContactsPersonaAttribute* a = NULL;
			GeeIterator* _tmp5_;
			gpointer _tmp6_;
			GeeHashSet* _tmp7_;
			ContactsPersonaAttribute* _tmp8_;
			const gchar* _tmp9_;
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp3_ = _a_it;
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp4_ = gee_iterator_next (_tmp3_);
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_tmp4_) {
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 6561 "contacts-linking.c"
			}
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp5_ = _a_it;
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp6_ = gee_iterator_get (_tmp5_);
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			a = (ContactsPersonaAttribute*) _tmp6_;
#line 481 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp7_ = property_names;
#line 481 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp8_ = a;
#line 481 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp9_ = _tmp8_->property_name;
#line 481 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, _tmp9_);
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (a);
#line 6579 "contacts-linking.c"
		}
#line 480 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_a_it);
#line 6583 "contacts-linking.c"
	}
	{
		GeeIterator* _p_it = NULL;
		GeeHashSet* _tmp10_;
		GeeIterator* _tmp11_;
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp10_ = property_names;
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp11_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) _tmp10_);
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_p_it = _tmp11_;
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 6597 "contacts-linking.c"
			GeeIterator* _tmp12_;
			gboolean _tmp13_;
			gchar* p = NULL;
			GeeIterator* _tmp14_;
			gpointer _tmp15_;
			const gchar* _tmp16_;
			FolksPersona* _tmp17_;
			gchar** _tmp18_;
			gint _tmp18__length1;
			gchar** _tmp19_;
			gint _tmp19__length1;
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp12_ = _p_it;
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp13_ = gee_iterator_next (_tmp12_);
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_tmp13_) {
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 6617 "contacts-linking.c"
			}
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp14_ = _p_it;
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp15_ = gee_iterator_get (_tmp14_);
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			p = (gchar*) _tmp15_;
#line 484 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp16_ = p;
#line 484 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp17_ = persona;
#line 484 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp18_ = folks_persona_get_writeable_properties (_tmp17_, &_tmp18__length1);
#line 484 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp19_ = _tmp18_;
#line 484 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp19__length1 = _tmp18__length1;
#line 484 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_vala_string_array_contains (_tmp19_, _tmp19__length1, _tmp16_)) {
#line 485 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				result = FALSE;
#line 485 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_free0 (p);
#line 485 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_p_it);
#line 485 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (property_names);
#line 485 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				return result;
#line 6647 "contacts-linking.c"
			}
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_free0 (p);
#line 6651 "contacts-linking.c"
		}
#line 483 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_p_it);
#line 6655 "contacts-linking.c"
	}
#line 487 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = TRUE;
#line 487 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (property_names);
#line 487 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 6663 "contacts-linking.c"
}


gboolean contacts_attr_type_equal (ContactsPersonaAttribute* a, ContactsPersonaAttribute* b) {
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	ContactsPersonaAttribute* _tmp1_;
	GType _tmp2_;
	ContactsPersonaAttribute* _tmp3_;
	GType _tmp4_;
#line 490 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (a != NULL, FALSE);
#line 490 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_val_if_fail (b != NULL, FALSE);
#line 492 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = a;
#line 492 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = G_TYPE_FROM_INSTANCE ((GObject*) _tmp1_);
#line 492 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp3_ = b;
#line 492 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp4_ = G_TYPE_FROM_INSTANCE ((GObject*) _tmp3_);
#line 492 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp2_ == _tmp4_) {
#line 6688 "contacts-linking.c"
		ContactsPersonaAttribute* _tmp5_;
		const gchar* _tmp6_;
		ContactsPersonaAttribute* _tmp7_;
		const gchar* _tmp8_;
#line 493 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp5_ = a;
#line 493 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp6_ = _tmp5_->property_name;
#line 493 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp7_ = b;
#line 493 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp8_ = _tmp7_->property_name;
#line 493 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp0_ = g_strcmp0 (_tmp6_, _tmp8_) == 0;
#line 6703 "contacts-linking.c"
	} else {
#line 492 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp0_ = FALSE;
#line 6707 "contacts-linking.c"
	}
#line 491 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	result = _tmp0_;
#line 491 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return result;
#line 6713 "contacts-linking.c"
}


static void contacts_persona_apply_attributes_data_free (gpointer _data) {
	ContactsPersonaApplyAttributesData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->persona);
	_g_object_unref0 (_data_->added_attributes);
	_g_object_unref0 (_data_->removed_attributes);
	_g_object_unref0 (_data_->operation);
	g_slice_free (ContactsPersonaApplyAttributesData, _data_);
}


static void contacts_persona_apply_attributes_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsPersonaApplyAttributesData* _task_data_;
	_task_data_ = g_task_get_task_data (G_TASK (res));
	if (_task_data_->_callback_ != NULL) {
		_task_data_->_callback_ (source_object, res, user_data);
	}
	_task_data_->_task_complete_ = TRUE;
}


void contacts_persona_apply_attributes (FolksPersona* persona, GeeSet* added_attributes, GeeSet* removed_attributes, ContactsLinkOperation* operation, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsPersonaApplyAttributesData* _data_;
	FolksPersona* _tmp0_;
	FolksPersona* _tmp1_;
	GeeSet* _tmp2_;
	GeeSet* _tmp3_;
	GeeSet* _tmp4_;
	GeeSet* _tmp5_;
	ContactsLinkOperation* _tmp6_;
	ContactsLinkOperation* _tmp7_;
	_data_ = g_slice_new0 (ContactsPersonaApplyAttributesData);
	_data_->_callback_ = _callback_;
	_data_->_async_result = g_task_new (NULL, NULL, contacts_persona_apply_attributes_async_ready_wrapper, _user_data_);
	if (_callback_ == NULL) {
		_data_->_task_complete_ = TRUE;
	}
	g_task_set_task_data (_data_->_async_result, _data_, contacts_persona_apply_attributes_data_free);
	_tmp0_ = persona;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data_->persona);
	_data_->persona = _tmp1_;
	_tmp2_ = added_attributes;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	_g_object_unref0 (_data_->added_attributes);
	_data_->added_attributes = _tmp3_;
	_tmp4_ = removed_attributes;
	_tmp5_ = _g_object_ref0 (_tmp4_);
	_g_object_unref0 (_data_->removed_attributes);
	_data_->removed_attributes = _tmp5_;
	_tmp6_ = operation;
	_tmp7_ = _g_object_ref0 (_tmp6_);
	_g_object_unref0 (_data_->operation);
	_data_->operation = _tmp7_;
	contacts_persona_apply_attributes_co (_data_);
}


void contacts_persona_apply_attributes_finish (GAsyncResult* _res_) {
	ContactsPersonaApplyAttributesData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}


static void contacts_persona_apply_attributes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsPersonaApplyAttributesData* _data_;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_apply_attributes_co (_data_);
#line 6793 "contacts-linking.c"
}


static gboolean contacts_persona_apply_attributes_co (ContactsPersonaApplyAttributesData* _data_) {
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 6802 "contacts-linking.c"
		goto _state_0;
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 6806 "contacts-linking.c"
		goto _state_1;
		default:
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 6811 "contacts-linking.c"
	}
	_state_0:
#line 500 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = gee_hash_set_new (CONTACTS_TYPE_PERSONA_ATTRIBUTE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
#line 500 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->properties = _data_->_tmp0_;
#line 502 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = _data_->added_attributes;
#line 502 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp1_ != NULL) {
#line 6822 "contacts-linking.c"
		{
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp2_ = _data_->added_attributes;
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp3_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp2_);
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_a1_it = _data_->_tmp3_;
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp4_ = _data_->_a1_it;
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp5_ = gee_iterator_next (_data_->_tmp4_);
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!_data_->_tmp5_) {
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 6840 "contacts-linking.c"
				}
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp6_ = _data_->_a1_it;
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp7_ = gee_iterator_get (_data_->_tmp6_);
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->a1 = (ContactsPersonaAttribute*) _data_->_tmp7_;
#line 504 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp8_ = _data_->properties;
#line 504 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp9_ = _data_->a1;
#line 504 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp8_, _data_->_tmp9_);
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->a1);
#line 6856 "contacts-linking.c"
			}
#line 503 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_a1_it);
#line 6860 "contacts-linking.c"
		}
	}
#line 507 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp10_ = _data_->removed_attributes;
#line 507 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp10_ != NULL) {
#line 6867 "contacts-linking.c"
		{
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp11_ = _data_->removed_attributes;
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp12_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp11_);
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_a2_it = _data_->_tmp12_;
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp13_ = _data_->_a2_it;
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp14_ = gee_iterator_next (_data_->_tmp13_);
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!_data_->_tmp14_) {
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 6885 "contacts-linking.c"
				}
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp15_ = _data_->_a2_it;
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp16_ = gee_iterator_get (_data_->_tmp15_);
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->a2 = (ContactsPersonaAttribute*) _data_->_tmp16_;
#line 509 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp17_ = _data_->properties;
#line 509 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp18_ = _data_->a2;
#line 509 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp17_, _data_->_tmp18_);
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->a2);
#line 6901 "contacts-linking.c"
			}
#line 508 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_a2_it);
#line 6905 "contacts-linking.c"
		}
	}
	{
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp19_ = _data_->properties;
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp20_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) _data_->_tmp19_);
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_property_it = _data_->_tmp20_;
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp21_ = _data_->_property_it;
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp22_ = gee_iterator_next (_data_->_tmp21_);
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp22_) {
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 6925 "contacts-linking.c"
			}
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp23_ = _data_->_property_it;
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp24_ = gee_iterator_get (_data_->_tmp23_);
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->property = (ContactsPersonaAttribute*) _data_->_tmp24_;
#line 514 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp25_ = contacts_persona_attribute_create_set ();
#line 514 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->added = _data_->_tmp25_;
#line 515 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp26_ = contacts_persona_attribute_create_set ();
#line 515 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->removed = _data_->_tmp26_;
#line 516 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp27_ = _data_->added_attributes;
#line 516 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp27_ != NULL) {
#line 6945 "contacts-linking.c"
				{
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp28_ = _data_->added_attributes;
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp29_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp28_);
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_a3_it = _data_->_tmp29_;
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					while (TRUE) {
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp30_ = _data_->_a3_it;
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp31_ = gee_iterator_next (_data_->_tmp30_);
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						if (!_data_->_tmp31_) {
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							break;
#line 6963 "contacts-linking.c"
						}
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp32_ = _data_->_a3_it;
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp33_ = gee_iterator_get (_data_->_tmp32_);
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->a3 = (ContactsPersonaAttribute*) _data_->_tmp33_;
#line 518 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp34_ = _data_->a3;
#line 518 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp35_ = _data_->property;
#line 518 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp36_ = contacts_attr_type_equal (_data_->_tmp34_, _data_->_tmp35_);
#line 518 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						if (_data_->_tmp36_) {
#line 519 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							_data_->_tmp37_ = _data_->added;
#line 519 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							_data_->_tmp38_ = _data_->a3;
#line 519 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp37_, _data_->_tmp38_);
#line 6985 "contacts-linking.c"
						}
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_data_->a3);
#line 6989 "contacts-linking.c"
					}
#line 517 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->_a3_it);
#line 6993 "contacts-linking.c"
				}
			}
#line 522 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp39_ = _data_->removed_attributes;
#line 522 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp39_ != NULL) {
#line 7000 "contacts-linking.c"
				{
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp40_ = _data_->removed_attributes;
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp41_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp40_);
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_a4_it = _data_->_tmp41_;
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					while (TRUE) {
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp42_ = _data_->_a4_it;
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp43_ = gee_iterator_next (_data_->_tmp42_);
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						if (!_data_->_tmp43_) {
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							break;
#line 7018 "contacts-linking.c"
						}
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp44_ = _data_->_a4_it;
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp45_ = gee_iterator_get (_data_->_tmp44_);
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->a4 = (ContactsPersonaAttribute*) _data_->_tmp45_;
#line 524 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp46_ = _data_->a4;
#line 524 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp47_ = _data_->property;
#line 524 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp48_ = contacts_attr_type_equal (_data_->_tmp46_, _data_->_tmp47_);
#line 524 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						if (_data_->_tmp48_) {
#line 525 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							_data_->_tmp49_ = _data_->removed;
#line 525 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							_data_->_tmp50_ = _data_->a4;
#line 525 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp49_, _data_->_tmp50_);
#line 7040 "contacts-linking.c"
						}
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_data_->a4);
#line 7044 "contacts-linking.c"
					}
#line 523 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->_a4_it);
#line 7048 "contacts-linking.c"
				}
			}
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp51_ = _data_->property;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp52_ = _data_->persona;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp53_ = _data_->added;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp54_ = _data_->removed;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp55_ = _data_->operation;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 1;
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_persona_attribute_persona_apply_attributes (_data_->_tmp51_, _data_->_tmp52_, (GeeSet*) _data_->_tmp53_, (GeeSet*) _data_->_tmp54_, _data_->_tmp55_, contacts_persona_apply_attributes_ready, _data_);
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 7067 "contacts-linking.c"
			_state_1:
#line 528 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_persona_attribute_persona_apply_attributes_finish (_data_->_tmp51_, _data_->_res_);
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->removed);
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->added);
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->property);
#line 7077 "contacts-linking.c"
		}
#line 513 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_property_it);
#line 7081 "contacts-linking.c"
	}
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->properties);
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 7093 "contacts-linking.c"
		}
	}
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 496 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 7100 "contacts-linking.c"
}


static void contacts_link_contacts_data_free (gpointer _data) {
	ContactsLinkContactsData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->main);
	_g_object_unref0 (_data_->other);
	_g_object_unref0 (_data_->result);
	g_slice_free (ContactsLinkContactsData, _data_);
}


static void contacts_link_contacts_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsLinkContactsData* _task_data_;
	_task_data_ = g_task_get_task_data (G_TASK (res));
	if (_task_data_->_callback_ != NULL) {
		_task_data_->_callback_ (source_object, res, user_data);
	}
	_task_data_->_task_complete_ = TRUE;
}


void contacts_link_contacts (ContactsContact* main, ContactsContact* other, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsLinkContactsData* _data_;
	ContactsContact* _tmp0_;
	ContactsContact* _tmp1_;
	ContactsContact* _tmp2_;
	ContactsContact* _tmp3_;
	_data_ = g_slice_new0 (ContactsLinkContactsData);
	_data_->_callback_ = _callback_;
	_data_->_async_result = g_task_new (NULL, NULL, contacts_link_contacts_async_ready_wrapper, _user_data_);
	if (_callback_ == NULL) {
		_data_->_task_complete_ = TRUE;
	}
	g_task_set_task_data (_data_->_async_result, _data_, contacts_link_contacts_data_free);
	_tmp0_ = main;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data_->main);
	_data_->main = _tmp1_;
	_tmp2_ = other;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	_g_object_unref0 (_data_->other);
	_data_->other = _tmp3_;
	contacts_link_contacts_co (_data_);
}


ContactsLinkOperation* contacts_link_contacts_finish (GAsyncResult* _res_) {
	ContactsLinkOperation* result;
	ContactsLinkContactsData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	result = _data_->result;
	_data_->result = NULL;
	return result;
}


static void _g_free0_ (gpointer var) {
#line 579 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	var = (g_free (var), NULL);
#line 7162 "contacts-linking.c"
}


static void _vala_GValue_free (GValue* self) {
#line 579 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_value_unset (self);
#line 579 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_free (self);
#line 7171 "contacts-linking.c"
}


static void __vala_GValue_free0_ (gpointer var) {
#line 579 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	(var == NULL) ? NULL : (var = (_vala_GValue_free (var), NULL));
#line 7178 "contacts-linking.c"
}


static GValue* _g_value_dup (GValue* self) {
#line 583 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return g_boxed_copy (G_TYPE_VALUE, self);
#line 7185 "contacts-linking.c"
}


static gpointer __g_value_dup0 (gpointer self) {
#line 583 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return self ? _g_value_dup (self) : NULL;
#line 7192 "contacts-linking.c"
}


static void contacts_link_contacts_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsLinkContactsData* _data_;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_contacts_co (_data_);
#line 7208 "contacts-linking.c"
}


static gboolean contacts_link_contacts_co (ContactsLinkContactsData* _data_) {
#line 532 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 532 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 7217 "contacts-linking.c"
		goto _state_0;
#line 532 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 7221 "contacts-linking.c"
		goto _state_1;
#line 532 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 2:
#line 7225 "contacts-linking.c"
		goto _state_2;
		default:
#line 532 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 7230 "contacts-linking.c"
	}
	_state_0:
#line 535 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->main;
#line 535 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_set_data_full ((GObject*) _data_->_tmp0_, "contacts-master-at-join", (gpointer) ((gintptr) TRUE), NULL);
#line 537 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = contacts_link_operation_new ();
#line 537 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->operation = _data_->_tmp1_;
#line 538 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _data_->operation;
#line 538 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp3_ = _data_->other;
#line 538 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_operation_set_split_out_contact (_data_->_tmp2_, _data_->_tmp3_);
#line 540 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp4_ = _data_->main;
#line 540 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp5_ = _data_->_tmp4_->individual;
#line 540 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp6_ = contacts_get_linkable_attributes_for_individual (_data_->_tmp5_);
#line 540 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->main_linkables = _data_->_tmp6_;
#line 541 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->other_linkables = NULL;
#line 542 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp7_ = _data_->other;
#line 542 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp7_ != NULL) {
#line 543 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp8_ = _data_->other;
#line 543 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp9_ = _data_->_tmp8_->individual;
#line 543 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp10_ = contacts_get_linkable_attributes_for_individual (_data_->_tmp9_);
#line 543 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->other_linkables);
#line 543 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->other_linkables = _data_->_tmp10_;
#line 7271 "contacts-linking.c"
	}
#line 544 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->linkables = NULL;
#line 547 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp11_ = _data_->other_linkables;
#line 547 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp11_ != NULL) {
#line 548 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp12_ = _data_->main_linkables;
#line 548 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp13_ = _data_->other_linkables;
#line 548 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		gee_collection_remove_all ((GeeCollection*) _data_->_tmp12_, (GeeCollection*) _data_->_tmp13_);
#line 549 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp14_ = _data_->other_linkables;
#line 549 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp15_ = _data_->main_linkables;
#line 549 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		gee_collection_remove_all ((GeeCollection*) _data_->_tmp14_, (GeeCollection*) _data_->_tmp15_);
#line 7291 "contacts-linking.c"
	}
#line 552 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->write_persona = NULL;
#line 7295 "contacts-linking.c"
	{
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp16_ = _data_->main;
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp17_ = _data_->_tmp16_->individual;
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp18_ = folks_individual_get_personas (_data_->_tmp17_);
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp19_ = _data_->_tmp18_;
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp20_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp19_);
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_p1_it = _data_->_tmp20_;
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp21_ = _data_->_p1_it;
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp22_ = gee_iterator_next (_data_->_tmp21_);
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp22_) {
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 7319 "contacts-linking.c"
			}
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp23_ = _data_->_p1_it;
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp24_ = gee_iterator_get (_data_->_tmp23_);
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->p1 = (FolksPersona*) _data_->_tmp24_;
#line 554 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp26_ = _data_->other_linkables;
#line 554 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp26_ != NULL) {
#line 555 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp27_ = _data_->p1;
#line 555 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp28_ = _data_->other_linkables;
#line 555 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp29_ = contacts_persona_can_link_to (_data_->_tmp27_, _data_->_tmp28_);
#line 555 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp25_ = _data_->_tmp29_;
#line 7339 "contacts-linking.c"
			} else {
#line 554 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp25_ = FALSE;
#line 7343 "contacts-linking.c"
			}
#line 554 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp25_) {
#line 556 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp30_ = _data_->p1;
#line 556 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp31_ = _g_object_ref0 (_data_->_tmp30_);
#line 556 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->write_persona);
#line 556 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->write_persona = _data_->_tmp31_;
#line 557 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp32_ = _data_->other_linkables;
#line 557 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp33_ = _g_object_ref0 (_data_->_tmp32_);
#line 557 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->linkables);
#line 557 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->linkables = _data_->_tmp33_;
#line 558 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp34_ = _data_->write_persona;
#line 558 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp35_ = folks_persona_get_store (_data_->_tmp34_);
#line 558 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp36_ = _data_->_tmp35_;
#line 558 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp37_ = folks_persona_store_get_is_primary_store (_data_->_tmp36_);
#line 558 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp38_ = _data_->_tmp37_;
#line 558 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (_data_->_tmp38_) {
#line 559 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->p1);
#line 559 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 7379 "contacts-linking.c"
				}
			}
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->p1);
#line 7384 "contacts-linking.c"
		}
#line 553 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_p1_it);
#line 7388 "contacts-linking.c"
	}
#line 563 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp40_ = _data_->other;
#line 563 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp40_ != NULL) {
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp42_ = _data_->write_persona;
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (_data_->_tmp42_ == NULL) {
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp41_ = TRUE;
#line 7400 "contacts-linking.c"
		} else {
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp43_ = _data_->write_persona;
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp44_ = folks_persona_get_store (_data_->_tmp43_);
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp45_ = _data_->_tmp44_;
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp46_ = folks_persona_store_get_is_primary_store (_data_->_tmp45_);
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp47_ = _data_->_tmp46_;
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp41_ = !_data_->_tmp47_;
#line 7414 "contacts-linking.c"
		}
#line 564 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp39_ = _data_->_tmp41_;
#line 7418 "contacts-linking.c"
	} else {
#line 563 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp39_ = FALSE;
#line 7422 "contacts-linking.c"
	}
#line 563 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp39_) {
#line 7426 "contacts-linking.c"
		{
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp48_ = _data_->other;
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp49_ = _data_->_tmp48_->individual;
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp50_ = folks_individual_get_personas (_data_->_tmp49_);
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp51_ = _data_->_tmp50_;
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp52_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp51_);
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_p2_it = _data_->_tmp52_;
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp53_ = _data_->_p2_it;
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp54_ = gee_iterator_next (_data_->_tmp53_);
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!_data_->_tmp54_) {
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 7450 "contacts-linking.c"
				}
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp55_ = _data_->_p2_it;
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp56_ = gee_iterator_get (_data_->_tmp55_);
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->p2 = (FolksPersona*) _data_->_tmp56_;
#line 566 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp57_ = _data_->p2;
#line 566 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp58_ = _data_->main_linkables;
#line 566 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp59_ = contacts_persona_can_link_to (_data_->_tmp57_, _data_->_tmp58_);
#line 566 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (_data_->_tmp59_) {
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp61_ = _data_->write_persona;
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (_data_->_tmp61_ == NULL) {
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp60_ = TRUE;
#line 7472 "contacts-linking.c"
					} else {
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp62_ = _data_->p2;
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp63_ = folks_persona_get_store (_data_->_tmp62_);
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp64_ = _data_->_tmp63_;
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp65_ = folks_persona_store_get_is_primary_store (_data_->_tmp64_);
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp66_ = _data_->_tmp65_;
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp60_ = _data_->_tmp66_;
#line 7486 "contacts-linking.c"
					}
#line 568 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (_data_->_tmp60_) {
#line 569 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp67_ = _data_->p2;
#line 569 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp68_ = _g_object_ref0 (_data_->_tmp67_);
#line 569 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_data_->write_persona);
#line 569 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->write_persona = _data_->_tmp68_;
#line 570 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp69_ = _data_->main_linkables;
#line 570 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp70_ = _g_object_ref0 (_data_->_tmp69_);
#line 570 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_data_->linkables);
#line 570 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->linkables = _data_->_tmp70_;
#line 571 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp71_ = _data_->write_persona;
#line 571 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp72_ = folks_persona_get_store (_data_->_tmp71_);
#line 571 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp73_ = _data_->_tmp72_;
#line 571 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp74_ = folks_persona_store_get_is_primary_store (_data_->_tmp73_);
#line 571 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp75_ = _data_->_tmp74_;
#line 571 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						if (_data_->_tmp75_) {
#line 572 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							_g_object_unref0 (_data_->p2);
#line 572 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
							break;
#line 7522 "contacts-linking.c"
						}
					}
				}
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->p2);
#line 7528 "contacts-linking.c"
			}
#line 565 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_p2_it);
#line 7532 "contacts-linking.c"
		}
	}
#line 578 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp76_ = _data_->write_persona;
#line 578 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp76_ == NULL) {
#line 579 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp77_ = g_str_hash;
#line 579 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp78_ = g_str_equal;
#line 579 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp79_ = g_hash_table_new_full (_data_->_tmp77_, _data_->_tmp78_, _g_free0_, __vala_GValue_free0_);
#line 579 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->details = _data_->_tmp79_;
#line 7547 "contacts-linking.c"
		{
#line 581 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			memset (&_data_->_tmp80_, 0, sizeof (GValue));
#line 581 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_value_init (&_data_->_tmp80_, G_TYPE_STRING);
#line 581 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->v = _data_->_tmp80_;
#line 582 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp81_ = _data_->main;
#line 582 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp82_ = contacts_contact_get_display_name (_data_->_tmp81_);
#line 582 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp83_ = _data_->_tmp82_;
#line 582 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_value_set_string (&_data_->v, _data_->_tmp83_);
#line 583 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp84_ = _data_->details;
#line 583 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp85_ = g_strdup ("full-name");
#line 583 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp86_ = _data_->v;
#line 583 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp87_ = _data_->_tmp86_;
#line 583 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp88_ = __g_value_dup0 (&_data_->_tmp87_);
#line 583 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_hash_table_insert (_data_->_tmp84_, _data_->_tmp85_, _data_->_tmp88_);
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp90_ = contacts_app_app;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp91_ = _data_->_tmp90_->contacts_store;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp92_ = contacts_store_get_aggregator (_data_->_tmp91_);
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp93_ = _data_->_tmp92_;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp94_ = folks_individual_aggregator_get_primary_store (_data_->_tmp93_);
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp95_ = _data_->_tmp94_;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp96_ = _data_->details;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 1;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_contact_create_primary_persona_for_details (_data_->_tmp95_, _data_->_tmp96_, contacts_link_contacts_ready, _data_);
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 7595 "contacts-linking.c"
			_state_1:
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp97_ = contacts_contact_create_primary_persona_for_details_finish (_data_->_res_, &_data_->_inner_error_);
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp89_ = _data_->_tmp97_;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				G_IS_VALUE (&_data_->v) ? (g_value_unset (&_data_->v), NULL) : NULL;
#line 7605 "contacts-linking.c"
				goto __catch18_g_error;
			}
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp98_ = _data_->_tmp89_;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp89_ = NULL;
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->write_persona);
#line 584 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->write_persona = _data_->_tmp98_;
#line 585 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp99_ = _data_->operation;
#line 585 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp100_ = _data_->write_persona;
#line 585 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_link_operation_added_persona (_data_->_tmp99_, _data_->_tmp100_);
#line 586 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp101_ = _data_->main_linkables;
#line 586 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp102_ = _g_object_ref0 (_data_->_tmp101_);
#line 586 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->linkables);
#line 586 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->linkables = _data_->_tmp102_;
#line 587 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp103_ = _data_->other_linkables;
#line 587 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp103_ != NULL) {
#line 588 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp104_ = _data_->linkables;
#line 588 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp105_ = _data_->other_linkables;
#line 588 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				gee_collection_add_all ((GeeCollection*) _data_->_tmp104_, (GeeCollection*) _data_->_tmp105_);
#line 7640 "contacts-linking.c"
			}
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_tmp89_);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			G_IS_VALUE (&_data_->v) ? (g_value_unset (&_data_->v), NULL) : NULL;
#line 7646 "contacts-linking.c"
		}
		goto __finally18;
		__catch18_g_error:
		{
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->e = _data_->_inner_error_;
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_inner_error_ = NULL;
#line 590 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp106_ = _data_->main;
#line 590 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_object_set_data_full ((GObject*) _data_->_tmp106_, "contacts-master-at-join", (gpointer) ((gintptr) FALSE), NULL);
#line 591 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp107_ = _data_->e;
#line 591 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp108_ = _data_->_tmp107_->message;
#line 591 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_warning ("contacts-linking.vala:591: Unable to create new persona when linking: " \
"%s\n", _data_->_tmp108_);
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->result = _data_->operation;
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_error_free0 (_data_->e);
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_hash_table_unref0 (_data_->details);
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->write_persona);
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->linkables);
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->other_linkables);
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->main_linkables);
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_state_ != 0) {
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				while (_data_->_task_complete_ != TRUE) {
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 7687 "contacts-linking.c"
				}
			}
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_object_unref (_data_->_async_result);
#line 592 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 7694 "contacts-linking.c"
		}
		__finally18:
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_hash_table_unref0 (_data_->details);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->write_persona);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->linkables);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->other_linkables);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->main_linkables);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->operation);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_clear_error (&_data_->_inner_error_);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_object_unref (_data_->_async_result);
#line 580 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 7719 "contacts-linking.c"
		}
#line 578 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_hash_table_unref0 (_data_->details);
#line 7723 "contacts-linking.c"
	}
#line 596 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp109_ = _data_->write_persona;
#line 596 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp110_ = _data_->linkables;
#line 596 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp111_ = _data_->operation;
#line 596 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_state_ = 2;
#line 596 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_apply_attributes (_data_->_tmp109_, _data_->_tmp110_, NULL, _data_->_tmp111_, contacts_link_contacts_ready, _data_);
#line 596 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 7737 "contacts-linking.c"
	_state_2:
#line 596 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_apply_attributes_finish (_data_->_res_);
#line 598 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp112_ = _data_->main;
#line 598 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_set_data_full ((GObject*) _data_->_tmp112_, "contacts-master-at-join", (gpointer) ((gintptr) FALSE), NULL);
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->result = _data_->operation;
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->write_persona);
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->linkables);
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->other_linkables);
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->main_linkables);
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 7763 "contacts-linking.c"
		}
	}
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 600 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 7770 "contacts-linking.c"
}


static void contacts_unlink_persona_data_free (gpointer _data) {
	ContactsUnlinkPersonaData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->contact);
	_g_object_unref0 (_data_->persona_to_unlink);
	_g_object_unref0 (_data_->result);
	g_slice_free (ContactsUnlinkPersonaData, _data_);
}


static void contacts_unlink_persona_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsUnlinkPersonaData* _task_data_;
	_task_data_ = g_task_get_task_data (G_TASK (res));
	if (_task_data_->_callback_ != NULL) {
		_task_data_->_callback_ (source_object, res, user_data);
	}
	_task_data_->_task_complete_ = TRUE;
}


void contacts_unlink_persona (ContactsContact* contact, FolksPersona* persona_to_unlink, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsUnlinkPersonaData* _data_;
	ContactsContact* _tmp0_;
	ContactsContact* _tmp1_;
	FolksPersona* _tmp2_;
	FolksPersona* _tmp3_;
	_data_ = g_slice_new0 (ContactsUnlinkPersonaData);
	_data_->_callback_ = _callback_;
	_data_->_async_result = g_task_new (NULL, NULL, contacts_unlink_persona_async_ready_wrapper, _user_data_);
	if (_callback_ == NULL) {
		_data_->_task_complete_ = TRUE;
	}
	g_task_set_task_data (_data_->_async_result, _data_, contacts_unlink_persona_data_free);
	_tmp0_ = contact;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data_->contact);
	_data_->contact = _tmp1_;
	_tmp2_ = persona_to_unlink;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	_g_object_unref0 (_data_->persona_to_unlink);
	_data_->persona_to_unlink = _tmp3_;
	contacts_unlink_persona_co (_data_);
}


ContactsLinkOperation* contacts_unlink_persona_finish (GAsyncResult* _res_) {
	ContactsLinkOperation* result;
	ContactsUnlinkPersonaData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	result = _data_->result;
	_data_->result = NULL;
	return result;
}


static void contacts_unlink_persona_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsUnlinkPersonaData* _data_;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_unlink_persona_co (_data_);
#line 7841 "contacts-linking.c"
}


static gboolean contacts_unlink_persona_co (ContactsUnlinkPersonaData* _data_) {
#line 603 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 603 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 7850 "contacts-linking.c"
		goto _state_0;
#line 603 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 7854 "contacts-linking.c"
		goto _state_1;
#line 603 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 2:
#line 7858 "contacts-linking.c"
		goto _state_2;
#line 603 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 3:
#line 7862 "contacts-linking.c"
		goto _state_3;
#line 603 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 4:
#line 7866 "contacts-linking.c"
		goto _state_4;
#line 603 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 5:
#line 7870 "contacts-linking.c"
		goto _state_5;
		default:
#line 603 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 7875 "contacts-linking.c"
	}
	_state_0:
#line 604 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->contact;
#line 604 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = _data_->_tmp0_->individual;
#line 604 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _g_object_ref0 (_data_->_tmp1_);
#line 604 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->individual = _data_->_tmp2_;
#line 605 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp3_ = contacts_persona_attribute_create_set ();
#line 605 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->persona_to_unlink_removals = _data_->_tmp3_;
#line 606 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp4_ = contacts_persona_attribute_create_set ();
#line 606 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->other_personas_removals = _data_->_tmp4_;
#line 608 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp5_ = contacts_link_operation_new ();
#line 608 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->operation = _data_->_tmp5_;
#line 609 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp6_ = _data_->operation;
#line 609 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp7_ = _data_->contact;
#line 609 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_operation_set_main_contact (_data_->_tmp6_, _data_->_tmp7_);
#line 7904 "contacts-linking.c"
	{
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp8_ = _data_->persona_to_unlink;
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp9_ = contacts_get_linkable_attributes (_data_->_tmp8_);
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp10_ = _data_->_tmp9_;
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp11_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp10_);
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp12_ = _data_->_tmp11_;
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_tmp10_);
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_a1_it = _data_->_tmp12_;
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp13_ = _data_->_a1_it;
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp14_ = gee_iterator_next (_data_->_tmp13_);
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp14_) {
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 7930 "contacts-linking.c"
			}
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp15_ = _data_->_a1_it;
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp16_ = gee_iterator_get (_data_->_tmp15_);
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->a1 = (ContactsPersonaAttribute*) _data_->_tmp16_;
#line 613 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->used_to_link = FALSE;
#line 7940 "contacts-linking.c"
			{
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp17_ = _data_->individual;
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp18_ = folks_individual_get_personas (_data_->_tmp17_);
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp19_ = _data_->_tmp18_;
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp20_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp19_);
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_persona_it = _data_->_tmp20_;
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				while (TRUE) {
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp21_ = _data_->_persona_it;
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp22_ = gee_iterator_next (_data_->_tmp21_);
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (!_data_->_tmp22_) {
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						break;
#line 7962 "contacts-linking.c"
					}
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp23_ = _data_->_persona_it;
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp24_ = gee_iterator_get (_data_->_tmp23_);
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->persona = (FolksPersona*) _data_->_tmp24_;
#line 615 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp26_ = _data_->persona;
#line 615 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp27_ = _data_->persona_to_unlink;
#line 615 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (_data_->_tmp26_ != _data_->_tmp27_) {
#line 616 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp28_ = _data_->a1;
#line 616 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp29_ = _data_->persona;
#line 616 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp30_ = contacts_persona_attribute_is_referenced_by_persona (_data_->_tmp28_, _data_->_tmp29_);
#line 616 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp25_ = _data_->_tmp30_;
#line 7984 "contacts-linking.c"
					} else {
#line 615 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->_tmp25_ = FALSE;
#line 7988 "contacts-linking.c"
					}
#line 615 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (_data_->_tmp25_) {
#line 617 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_data_->used_to_link = TRUE;
#line 618 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_data_->persona);
#line 618 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						break;
#line 7998 "contacts-linking.c"
					}
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->persona);
#line 8002 "contacts-linking.c"
				}
#line 614 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_persona_it);
#line 8006 "contacts-linking.c"
			}
#line 621 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp31_ = _data_->used_to_link;
#line 621 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp31_) {
#line 622 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->a1);
#line 622 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				continue;
#line 8016 "contacts-linking.c"
			}
#line 624 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp32_ = _data_->a1;
#line 624 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp33_ = _data_->persona_to_unlink;
#line 624 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp34_ = contacts_persona_attribute_is_removable (_data_->_tmp32_, _data_->_tmp33_);
#line 624 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp34_) {
#line 627 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp35_ = _data_->persona_to_unlink_removals;
#line 627 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp36_ = _data_->a1;
#line 627 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp35_, _data_->_tmp36_);
#line 8032 "contacts-linking.c"
			} else {
#line 631 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp37_ = _data_->other_personas_removals;
#line 631 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp38_ = _data_->a1;
#line 631 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp37_, _data_->_tmp38_);
#line 8040 "contacts-linking.c"
			}
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->a1);
#line 8044 "contacts-linking.c"
		}
#line 611 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_a1_it);
#line 8048 "contacts-linking.c"
	}
#line 651 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp39_ = contacts_persona_attribute_create_set ();
#line 651 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->main_persona_additions = _data_->_tmp39_;
#line 8054 "contacts-linking.c"
	{
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp40_ = _data_->individual;
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp41_ = folks_individual_get_personas (_data_->_tmp40_);
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp42_ = _data_->_tmp41_;
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp43_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp42_);
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_p1_it = _data_->_tmp43_;
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp44_ = _data_->_p1_it;
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp45_ = gee_iterator_next (_data_->_tmp44_);
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp45_) {
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 8076 "contacts-linking.c"
			}
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp46_ = _data_->_p1_it;
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp47_ = gee_iterator_get (_data_->_tmp46_);
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->p1 = (FolksPersona*) _data_->_tmp47_;
#line 653 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp48_ = _data_->p1;
#line 653 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp49_ = _data_->persona_to_unlink;
#line 653 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp48_ == _data_->_tmp49_) {
#line 654 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->p1);
#line 654 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				continue;
#line 8094 "contacts-linking.c"
			}
			{
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp50_ = _data_->p1;
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp51_ = contacts_get_linkable_attributes (_data_->_tmp50_);
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp52_ = _data_->_tmp51_;
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp53_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp52_);
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp54_ = _data_->_tmp53_;
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_tmp52_);
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_a2_it = _data_->_tmp54_;
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				while (TRUE) {
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp55_ = _data_->_a2_it;
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp56_ = gee_iterator_next (_data_->_tmp55_);
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (!_data_->_tmp56_) {
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						break;
#line 8121 "contacts-linking.c"
					}
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp57_ = _data_->_a2_it;
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp58_ = gee_iterator_get (_data_->_tmp57_);
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->a2 = (ContactsPersonaAttribute*) _data_->_tmp58_;
#line 656 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp59_ = _data_->other_personas_removals;
#line 656 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp60_ = _data_->a2;
#line 656 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp61_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _data_->_tmp59_, _data_->_tmp60_);
#line 656 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					if (_data_->_tmp61_) {
#line 657 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						_g_object_unref0 (_data_->a2);
#line 657 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
						continue;
#line 8141 "contacts-linking.c"
					}
#line 658 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp62_ = _data_->main_persona_additions;
#line 658 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_data_->_tmp63_ = _data_->a2;
#line 658 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp62_, _data_->_tmp63_);
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->a2);
#line 8151 "contacts-linking.c"
				}
#line 655 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_a2_it);
#line 8155 "contacts-linking.c"
			}
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->p1);
#line 8159 "contacts-linking.c"
		}
#line 652 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_p1_it);
#line 8163 "contacts-linking.c"
	}
#line 664 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->main_persona = NULL;
#line 8167 "contacts-linking.c"
	{
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp64_ = _data_->individual;
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp65_ = folks_individual_get_personas (_data_->_tmp64_);
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp66_ = _data_->_tmp65_;
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp67_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp66_);
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_p2_it = _data_->_tmp67_;
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp68_ = _data_->_p2_it;
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp69_ = gee_iterator_next (_data_->_tmp68_);
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp69_) {
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 8189 "contacts-linking.c"
			}
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp70_ = _data_->_p2_it;
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp71_ = gee_iterator_get (_data_->_tmp70_);
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->p2 = (FolksPersona*) _data_->_tmp71_;
#line 666 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp73_ = _data_->p2;
#line 666 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp74_ = _data_->persona_to_unlink;
#line 666 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp73_ != _data_->_tmp74_) {
#line 666 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp75_ = _data_->p2;
#line 666 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp76_ = _data_->main_persona_additions;
#line 666 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp77_ = contacts_persona_can_link_to (_data_->_tmp75_, (GeeSet*) _data_->_tmp76_);
#line 666 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp72_ = _data_->_tmp77_;
#line 8211 "contacts-linking.c"
			} else {
#line 666 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp72_ = FALSE;
#line 8215 "contacts-linking.c"
			}
#line 666 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp72_) {
#line 667 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp78_ = _data_->p2;
#line 667 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp79_ = _g_object_ref0 (_data_->_tmp78_);
#line 667 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->main_persona);
#line 667 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->main_persona = _data_->_tmp79_;
#line 668 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp80_ = _data_->main_persona;
#line 668 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp81_ = folks_persona_get_store (_data_->_tmp80_);
#line 668 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp82_ = _data_->_tmp81_;
#line 668 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp83_ = folks_persona_store_get_is_primary_store (_data_->_tmp82_);
#line 668 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp84_ = _data_->_tmp83_;
#line 668 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (_data_->_tmp84_) {
#line 669 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					_g_object_unref0 (_data_->p2);
#line 669 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 8243 "contacts-linking.c"
				}
			}
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->p2);
#line 8248 "contacts-linking.c"
		}
#line 665 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_p2_it);
#line 8252 "contacts-linking.c"
	}
#line 675 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp85_ = gee_hash_set_new (FOLKS_TYPE_PERSONA, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
#line 675 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->other_personas = _data_->_tmp85_;
#line 8258 "contacts-linking.c"
	{
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp86_ = _data_->individual;
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp87_ = folks_individual_get_personas (_data_->_tmp86_);
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp88_ = _data_->_tmp87_;
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp89_ = gee_iterable_iterator ((GeeIterable*) _data_->_tmp88_);
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_p3_it = _data_->_tmp89_;
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp90_ = _data_->_p3_it;
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp91_ = gee_iterator_next (_data_->_tmp90_);
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp91_) {
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 8280 "contacts-linking.c"
			}
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp92_ = _data_->_p3_it;
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp93_ = gee_iterator_get (_data_->_tmp92_);
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->p3 = (FolksPersona*) _data_->_tmp93_;
#line 677 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp95_ = _data_->p3;
#line 677 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp96_ = _data_->persona_to_unlink;
#line 677 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp95_ != _data_->_tmp96_) {
#line 678 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp97_ = _data_->p3;
#line 678 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp98_ = _data_->main_persona;
#line 678 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp94_ = _data_->_tmp97_ != _data_->_tmp98_;
#line 8300 "contacts-linking.c"
			} else {
#line 677 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp94_ = FALSE;
#line 8304 "contacts-linking.c"
			}
#line 677 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_tmp94_) {
#line 679 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp99_ = _data_->other_personas;
#line 679 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp100_ = _data_->p3;
#line 679 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp99_, _data_->_tmp100_);
#line 8314 "contacts-linking.c"
			}
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->p3);
#line 8318 "contacts-linking.c"
		}
#line 676 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_p3_it);
#line 8322 "contacts-linking.c"
	}
#line 684 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp102_ = _data_->main_persona;
#line 684 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp102_ == NULL) {
#line 684 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp103_ = _data_->other_personas;
#line 684 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp104_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data_->_tmp103_);
#line 684 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp105_ = _data_->_tmp104_;
#line 684 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp101_ = _data_->_tmp105_ > 1;
#line 8336 "contacts-linking.c"
	} else {
#line 684 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp101_ = FALSE;
#line 8340 "contacts-linking.c"
	}
#line 684 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp101_) {
#line 685 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp106_ = g_str_hash;
#line 685 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp107_ = g_str_equal;
#line 685 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp108_ = g_hash_table_new_full (_data_->_tmp106_, _data_->_tmp107_, _g_free0_, __vala_GValue_free0_);
#line 685 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->details = _data_->_tmp108_;
#line 8352 "contacts-linking.c"
		{
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp110_ = _data_->contact;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp111_ = _data_->_tmp110_->store;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp112_ = contacts_store_get_aggregator (_data_->_tmp111_);
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp113_ = _data_->_tmp112_;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp114_ = folks_individual_aggregator_get_primary_store (_data_->_tmp113_);
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp115_ = _data_->_tmp114_;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp116_ = _data_->details;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 1;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_persona_store_add_persona_from_details (_data_->_tmp115_, _data_->_tmp116_, contacts_unlink_persona_ready, _data_);
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 8374 "contacts-linking.c"
			_state_1:
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp117_ = folks_persona_store_add_persona_from_details_finish (_data_->_tmp115_, _data_->_res_, &_data_->_inner_error_);
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp109_ = _data_->_tmp117_;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 8382 "contacts-linking.c"
				goto __catch19_g_error;
			}
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp118_ = _data_->_tmp109_;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp109_ = NULL;
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->main_persona);
#line 687 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->main_persona = _data_->_tmp118_;
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp119_ = _data_->main_persona;
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp120_ = _data_->contact;
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp121_ = contacts_contact_get_display_name (_data_->_tmp120_);
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp122_ = _data_->_tmp121_;
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 2;
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_name_details_change_full_name (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp119_, FOLKS_TYPE_NAME_DETAILS) ? ((FolksNameDetails*) _data_->_tmp119_) : NULL, _data_->_tmp122_, contacts_unlink_persona_ready, _data_);
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 8407 "contacts-linking.c"
			_state_2:
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_name_details_change_full_name_finish (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp119_, FOLKS_TYPE_NAME_DETAILS) ? ((FolksNameDetails*) _data_->_tmp119_) : NULL, _data_->_res_, &_data_->_inner_error_);
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 688 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_tmp109_);
#line 8415 "contacts-linking.c"
				goto __catch19_g_error;
			}
#line 689 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp123_ = _data_->operation;
#line 689 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp124_ = _data_->main_persona;
#line 689 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_link_operation_added_persona (_data_->_tmp123_, _data_->_tmp124_);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_tmp109_);
#line 8426 "contacts-linking.c"
		}
		goto __finally19;
		__catch19_g_error:
		{
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->e = _data_->_inner_error_;
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_inner_error_ = NULL;
#line 691 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp125_ = _data_->e;
#line 691 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp126_ = _data_->_tmp125_->message;
#line 691 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_warning ("contacts-linking.vala:691: Unable to create new persona when unlinking" \
": %s\n", _data_->_tmp126_);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->result = _data_->operation;
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_error_free0 (_data_->e);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_hash_table_unref0 (_data_->details);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->other_personas);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->main_persona);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->main_persona_additions);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->other_personas_removals);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->persona_to_unlink_removals);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->individual);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (_data_->_state_ != 0) {
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				while (_data_->_task_complete_ != TRUE) {
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 8467 "contacts-linking.c"
				}
			}
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_object_unref (_data_->_async_result);
#line 692 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 8474 "contacts-linking.c"
		}
		__finally19:
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_hash_table_unref0 (_data_->details);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->other_personas);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->main_persona);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->main_persona_additions);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->operation);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->other_personas_removals);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->persona_to_unlink_removals);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->individual);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_clear_error (&_data_->_inner_error_);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_object_unref (_data_->_async_result);
#line 686 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 8503 "contacts-linking.c"
		}
#line 684 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_hash_table_unref0 (_data_->details);
#line 8507 "contacts-linking.c"
	}
#line 696 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp127_ = _data_->persona_to_unlink;
#line 696 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_set_data_full ((GObject*) _data_->_tmp127_, "contacts-new-contact", (gpointer) ((gintptr) TRUE), NULL);
#line 700 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp128_ = _data_->main_persona;
#line 700 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp128_ != NULL) {
#line 701 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp129_ = _data_->main_persona;
#line 701 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp130_ = _data_->main_persona_additions;
#line 701 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp131_ = _data_->other_personas_removals;
#line 701 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp132_ = _data_->operation;
#line 701 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_state_ = 3;
#line 701 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		contacts_persona_apply_attributes (_data_->_tmp129_, (GeeSet*) _data_->_tmp130_, (GeeSet*) _data_->_tmp131_, _data_->_tmp132_, contacts_unlink_persona_ready, _data_);
#line 701 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 8531 "contacts-linking.c"
		_state_3:
#line 701 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		contacts_persona_apply_attributes_finish (_data_->_res_);
#line 8535 "contacts-linking.c"
	}
	{
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp133_ = _data_->other_personas;
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp134_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) _data_->_tmp133_);
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_p_it = _data_->_tmp134_;
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp135_ = _data_->_p_it;
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp136_ = gee_iterator_next (_data_->_tmp135_);
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!_data_->_tmp136_) {
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 8554 "contacts-linking.c"
			}
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp137_ = _data_->_p_it;
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp138_ = gee_iterator_get (_data_->_tmp137_);
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->p = (FolksPersona*) _data_->_tmp138_;
#line 703 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp139_ = _data_->p;
#line 703 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp140_ = _data_->other_personas_removals;
#line 703 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp141_ = _data_->operation;
#line 703 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 4;
#line 703 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_persona_apply_attributes (_data_->_tmp139_, NULL, (GeeSet*) _data_->_tmp140_, _data_->_tmp141_, contacts_unlink_persona_ready, _data_);
#line 703 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 8574 "contacts-linking.c"
			_state_4:
#line 703 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_persona_apply_attributes_finish (_data_->_res_);
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->p);
#line 8580 "contacts-linking.c"
		}
#line 702 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_p_it);
#line 8584 "contacts-linking.c"
	}
#line 706 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp142_ = _data_->persona_to_unlink;
#line 706 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp143_ = _data_->persona_to_unlink_removals;
#line 706 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp144_ = _data_->operation;
#line 706 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_state_ = 5;
#line 706 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_apply_attributes (_data_->_tmp142_, NULL, (GeeSet*) _data_->_tmp143_, _data_->_tmp144_, contacts_unlink_persona_ready, _data_);
#line 706 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 8598 "contacts-linking.c"
	_state_5:
#line 706 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_persona_apply_attributes_finish (_data_->_res_);
#line 708 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp145_ = _data_->persona_to_unlink;
#line 708 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_set_data_full ((GObject*) _data_->_tmp145_, "contacts-new-contact", (gpointer) ((gintptr) FALSE), NULL);
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->result = _data_->operation;
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->other_personas);
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->main_persona);
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->main_persona_additions);
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->other_personas_removals);
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->persona_to_unlink_removals);
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->individual);
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 8628 "contacts-linking.c"
		}
	}
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 710 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 8635 "contacts-linking.c"
}


ContactsLinkOperation2* contacts_link_operation2_construct (GType object_type) {
	ContactsLinkOperation2 * self = NULL;
	GeeLinkedList* _tmp0_;
#line 718 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = (ContactsLinkOperation2*) g_object_new (object_type, NULL);
#line 719 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = gee_linked_list_new (GEE_TYPE_HASH_SET, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 719 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->old_personas_distribution);
#line 719 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv->old_personas_distribution = _tmp0_;
#line 718 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return self;
#line 8652 "contacts-linking.c"
}


ContactsLinkOperation2* contacts_link_operation2_new (void) {
#line 718 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return contacts_link_operation2_construct (CONTACTS_TYPE_LINK_OPERATION2);
#line 8659 "contacts-linking.c"
}


void contacts_link_operation2_add_persona_set (ContactsLinkOperation2* self, GeeSet* persona_set) {
	GeeSet* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
#line 722 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (self != NULL);
#line 722 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_return_if_fail (persona_set != NULL);
#line 723 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = persona_set;
#line 723 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp1_ = gee_collection_get_size ((GeeCollection*) _tmp0_);
#line 723 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp2_ = _tmp1_;
#line 723 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_tmp2_ > 0) {
#line 8679 "contacts-linking.c"
		GeeHashSet* s = NULL;
		GeeHashSet* _tmp3_;
		GeeLinkedList* _tmp12_;
		GeeHashSet* _tmp13_;
#line 724 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp3_ = gee_hash_set_new (FOLKS_TYPE_PERSONA, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
#line 724 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		s = _tmp3_;
#line 8688 "contacts-linking.c"
		{
			GeeIterator* _p_it = NULL;
			GeeSet* _tmp4_;
			GeeIterator* _tmp5_;
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp4_ = persona_set;
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_tmp5_ = gee_iterable_iterator ((GeeIterable*) _tmp4_);
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_p_it = _tmp5_;
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 8701 "contacts-linking.c"
				GeeIterator* _tmp6_;
				gboolean _tmp7_;
				FolksPersona* p = NULL;
				GeeIterator* _tmp8_;
				gpointer _tmp9_;
				GeeHashSet* _tmp10_;
				FolksPersona* _tmp11_;
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp6_ = _p_it;
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp7_ = gee_iterator_next (_tmp6_);
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!_tmp7_) {
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 8717 "contacts-linking.c"
				}
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp8_ = _p_it;
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp9_ = gee_iterator_get (_tmp8_);
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				p = (FolksPersona*) _tmp9_;
#line 726 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp10_ = s;
#line 726 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_tmp11_ = p;
#line 726 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp10_, _tmp11_);
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (p);
#line 8733 "contacts-linking.c"
			}
#line 725 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_p_it);
#line 8737 "contacts-linking.c"
		}
#line 728 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp12_ = self->priv->old_personas_distribution;
#line 728 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_tmp13_ = s;
#line 728 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		gee_abstract_collection_add ((GeeAbstractCollection*) _tmp12_, _tmp13_);
#line 723 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (s);
#line 8747 "contacts-linking.c"
	}
}


static void contacts_link_operation2_undo_data_free (gpointer _data) {
	ContactsLinkOperation2UndoData* _data_;
	_data_ = _data;
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->self);
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_slice_free (ContactsLinkOperation2UndoData, _data_);
#line 8759 "contacts-linking.c"
}


static void contacts_link_operation2_undo_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsLinkOperation2UndoData* _task_data_;
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_ = g_task_get_task_data (G_TASK (res));
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_task_data_->_callback_ != NULL) {
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_task_data_->_callback_ (source_object, res, user_data);
#line 8771 "contacts-linking.c"
	}
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_task_data_->_task_complete_ = TRUE;
#line 8775 "contacts-linking.c"
}


void contacts_link_operation2_undo (ContactsLinkOperation2* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsLinkOperation2UndoData* _data_;
	ContactsLinkOperation2* _tmp0_;
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_slice_new0 (ContactsLinkOperation2UndoData);
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_callback_ = _callback_;
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, contacts_link_operation2_undo_async_ready_wrapper, _user_data_);
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_callback_ == NULL) {
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_task_complete_ = TRUE;
#line 8792 "contacts-linking.c"
	}
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_set_task_data (_data_->_async_result, _data_, contacts_link_operation2_undo_data_free);
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->self = _tmp0_;
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_operation2_undo_co (_data_);
#line 8802 "contacts-linking.c"
}


void contacts_link_operation2_undo_finish (ContactsLinkOperation2* self, GAsyncResult* _res_) {
	ContactsLinkOperation2UndoData* _data_;
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 8810 "contacts-linking.c"
}


static void contacts_link_operation2_undo_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsLinkOperation2UndoData* _data_;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_operation2_undo_co (_data_);
#line 8826 "contacts-linking.c"
}


static gboolean contacts_link_operation2_undo_co (ContactsLinkOperation2UndoData* _data_) {
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 8835 "contacts-linking.c"
		goto _state_0;
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 8839 "contacts-linking.c"
		goto _state_1;
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 2:
#line 8843 "contacts-linking.c"
		goto _state_2;
		default:
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 8848 "contacts-linking.c"
	}
	_state_0:
#line 733 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->ind = NULL;
#line 734 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = _data_->self->priv->old_personas_distribution;
#line 734 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data_->_tmp0_);
#line 734 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp2_ = _data_->_tmp1_;
#line 734 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp2_ > 0) {
#line 735 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp3_ = _data_->self->priv->old_personas_distribution;
#line 735 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp4_ = gee_linked_list_first (_data_->_tmp3_);
#line 735 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->ps = (GeeHashSet*) _data_->_tmp4_;
#line 8867 "contacts-linking.c"
		{
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp5_ = _data_->ps;
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp6_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) _data_->_tmp5_);
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_p_it = _data_->_tmp6_;
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			while (TRUE) {
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp7_ = _data_->_p_it;
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp8_ = gee_iterator_next (_data_->_tmp7_);
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (!_data_->_tmp8_) {
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
					break;
#line 8885 "contacts-linking.c"
				}
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp9_ = _data_->_p_it;
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp10_ = gee_iterator_get (_data_->_tmp9_);
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->p = (FolksPersona*) _data_->_tmp10_;
#line 737 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp11_ = _data_->p;
#line 737 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp12_ = folks_persona_get_individual (_data_->_tmp11_);
#line 737 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp13_ = _data_->_tmp12_;
#line 737 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp14_ = _g_object_ref0 (_data_->_tmp13_);
#line 737 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->ind);
#line 737 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->ind = _data_->_tmp14_;
#line 738 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->p);
#line 738 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 8909 "contacts-linking.c"
			}
#line 736 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_p_it);
#line 8913 "contacts-linking.c"
		}
#line 734 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->ps);
#line 8917 "contacts-linking.c"
	}
#line 741 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp15_ = _data_->ind;
#line 741 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_tmp15_ != NULL) {
#line 8923 "contacts-linking.c"
		{
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp16_ = contacts_app_app;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp17_ = _data_->_tmp16_->contacts_store;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp18_ = contacts_store_get_aggregator (_data_->_tmp17_);
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp19_ = _data_->_tmp18_;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp20_ = _data_->ind;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_state_ = 1;
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_individual_aggregator_unlink_individual (_data_->_tmp19_, _data_->_tmp20_, contacts_link_operation2_undo_ready, _data_);
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 8941 "contacts-linking.c"
			_state_1:
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			folks_individual_aggregator_unlink_individual_finish (_data_->_tmp19_, _data_->_res_, &_data_->_inner_error_);
#line 743 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 8947 "contacts-linking.c"
				goto __catch20_g_error;
			}
		}
		goto __finally20;
		__catch20_g_error:
		{
#line 742 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->e1 = _data_->_inner_error_;
#line 742 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_inner_error_ = NULL;
#line 745 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp21_ = _data_->ind;
#line 745 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp22_ = folks_individual_get_id (_data_->_tmp21_);
#line 745 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp23_ = _data_->_tmp22_;
#line 745 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp24_ = _data_->e1;
#line 745 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp25_ = _data_->_tmp24_->message;
#line 745 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_warning ("contacts-linking.vala:745: Error unlinking individual ‘%s’: %s", _data_->_tmp23_, _data_->_tmp25_);
#line 742 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_error_free0 (_data_->e1);
#line 8972 "contacts-linking.c"
		}
		__finally20:
#line 742 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 742 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->ind);
#line 742 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 742 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_clear_error (&_data_->_inner_error_);
#line 742 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_object_unref (_data_->_async_result);
#line 742 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			return FALSE;
#line 8987 "contacts-linking.c"
		}
	}
	{
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp26_ = _data_->self->priv->old_personas_distribution;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp27_ = _g_object_ref0 (_data_->_tmp26_);
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_ps_list = _data_->_tmp27_;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp28_ = _data_->_ps_list;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp29_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data_->_tmp28_);
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp30_ = _data_->_tmp29_;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_ps_size = _data_->_tmp30_;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_ps_index = -1;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp31_ = _data_->_ps_index;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_ps_index = _data_->_tmp31_ + 1;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp32_ = _data_->_ps_index;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp33_ = _data_->_ps_size;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!(_data_->_tmp32_ < _data_->_tmp33_)) {
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 9021 "contacts-linking.c"
			}
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp34_ = _data_->_ps_list;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp35_ = _data_->_ps_index;
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp36_ = gee_abstract_list_get ((GeeAbstractList*) _data_->_tmp34_, _data_->_tmp35_);
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_vala1_ps = (GeeHashSet*) _data_->_tmp36_;
#line 9031 "contacts-linking.c"
			{
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp37_ = contacts_app_app;
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp38_ = _data_->_tmp37_->contacts_store;
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp39_ = contacts_store_get_aggregator (_data_->_tmp38_);
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp40_ = _data_->_tmp39_;
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp41_ = _data_->_vala1_ps;
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_state_ = 2;
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				folks_individual_aggregator_link_personas (_data_->_tmp40_, (GeeSet*) _data_->_tmp41_, contacts_link_operation2_undo_ready, _data_);
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				return FALSE;
#line 9049 "contacts-linking.c"
				_state_2:
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				folks_individual_aggregator_link_personas_finish (_data_->_tmp40_, _data_->_res_, &_data_->_inner_error_);
#line 751 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 9055 "contacts-linking.c"
					goto __catch21_g_error;
				}
			}
			goto __finally21;
			__catch21_g_error:
			{
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_vala1_e1 = _data_->_inner_error_;
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_inner_error_ = NULL;
#line 753 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp42_ = _data_->_vala1_e1;
#line 753 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_data_->_tmp43_ = _data_->_tmp42_->message;
#line 753 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_warning ("contacts-linking.vala:753: Error linking personas: %s", _data_->_tmp43_);
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_error_free0 (_data_->_vala1_e1);
#line 9074 "contacts-linking.c"
			}
			__finally21:
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_vala1_ps);
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->_ps_list);
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				_g_object_unref0 (_data_->ind);
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_clear_error (&_data_->_inner_error_);
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				g_object_unref (_data_->_async_result);
#line 750 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				return FALSE;
#line 9093 "contacts-linking.c"
			}
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->_vala1_ps);
#line 9097 "contacts-linking.c"
		}
#line 749 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_ps_list);
#line 9101 "contacts-linking.c"
	}
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->ind);
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 9113 "contacts-linking.c"
		}
	}
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 732 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 9120 "contacts-linking.c"
}


static void contacts_link_operation2_class_init (ContactsLinkOperation2Class * klass) {
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_operation2_parent_class = g_type_class_peek_parent (klass);
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_type_class_add_private (klass, sizeof (ContactsLinkOperation2Private));
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (klass)->finalize = contacts_link_operation2_finalize;
#line 9131 "contacts-linking.c"
}


static void contacts_link_operation2_instance_init (ContactsLinkOperation2 * self) {
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self->priv = CONTACTS_LINK_OPERATION2_GET_PRIVATE (self);
#line 9138 "contacts-linking.c"
}


static void contacts_link_operation2_finalize (GObject * obj) {
	ContactsLinkOperation2 * self;
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CONTACTS_TYPE_LINK_OPERATION2, ContactsLinkOperation2);
#line 716 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (self->priv->old_personas_distribution);
#line 713 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	G_OBJECT_CLASS (contacts_link_operation2_parent_class)->finalize (obj);
#line 9150 "contacts-linking.c"
}


GType contacts_link_operation2_get_type (void) {
	static volatile gsize contacts_link_operation2_type_id__volatile = 0;
	if (g_once_init_enter (&contacts_link_operation2_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ContactsLinkOperation2Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) contacts_link_operation2_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ContactsLinkOperation2), 0, (GInstanceInitFunc) contacts_link_operation2_instance_init, NULL };
		GType contacts_link_operation2_type_id;
		contacts_link_operation2_type_id = g_type_register_static (G_TYPE_OBJECT, "ContactsLinkOperation2", &g_define_type_info, 0);
		g_once_init_leave (&contacts_link_operation2_type_id__volatile, contacts_link_operation2_type_id);
	}
	return contacts_link_operation2_type_id__volatile;
}


static void contacts_link_contacts_list_data_free (gpointer _data) {
	ContactsLinkContactsListData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->contact_list);
	_g_object_unref0 (_data_->result);
	g_slice_free (ContactsLinkContactsListData, _data_);
}


static void contacts_link_contacts_list_async_ready_wrapper (GObject *source_object, GAsyncResult *res, void *user_data) {
	ContactsLinkContactsListData* _task_data_;
	_task_data_ = g_task_get_task_data (G_TASK (res));
	if (_task_data_->_callback_ != NULL) {
		_task_data_->_callback_ (source_object, res, user_data);
	}
	_task_data_->_task_complete_ = TRUE;
}


void contacts_link_contacts_list (GeeLinkedList* contact_list, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	ContactsLinkContactsListData* _data_;
	GeeLinkedList* _tmp0_;
	GeeLinkedList* _tmp1_;
	_data_ = g_slice_new0 (ContactsLinkContactsListData);
	_data_->_callback_ = _callback_;
	_data_->_async_result = g_task_new (NULL, NULL, contacts_link_contacts_list_async_ready_wrapper, _user_data_);
	if (_callback_ == NULL) {
		_data_->_task_complete_ = TRUE;
	}
	g_task_set_task_data (_data_->_async_result, _data_, contacts_link_contacts_list_data_free);
	_tmp0_ = contact_list;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data_->contact_list);
	_data_->contact_list = _tmp1_;
	contacts_link_contacts_list_co (_data_);
}


ContactsLinkOperation2* contacts_link_contacts_list_finish (GAsyncResult* _res_) {
	ContactsLinkOperation2* result;
	ContactsLinkContactsListData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	result = _data_->result;
	_data_->result = NULL;
	return result;
}


static void contacts_link_contacts_list_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	ContactsLinkContactsListData* _data_;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_ = _user_data_;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_source_object_ = source_object;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_res_ = _res_;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_task_complete_ = TRUE;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	contacts_link_contacts_list_co (_data_);
#line 9226 "contacts-linking.c"
}


static gboolean contacts_link_contacts_list_co (ContactsLinkContactsListData* _data_) {
#line 759 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	switch (_data_->_state_) {
#line 759 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 0:
#line 9235 "contacts-linking.c"
		goto _state_0;
#line 759 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		case 1:
#line 9239 "contacts-linking.c"
		goto _state_1;
		default:
#line 759 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_assert_not_reached ();
#line 9244 "contacts-linking.c"
	}
	_state_0:
#line 760 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp0_ = contacts_link_operation2_new ();
#line 760 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->operation = _data_->_tmp0_;
#line 762 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->_tmp1_ = gee_hash_set_new (FOLKS_TYPE_PERSONA, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
#line 762 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->all_personas = _data_->_tmp1_;
#line 9255 "contacts-linking.c"
	{
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp2_ = _data_->contact_list;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp3_ = _g_object_ref0 (_data_->_tmp2_);
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_c_list = _data_->_tmp3_;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp4_ = _data_->_c_list;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data_->_tmp4_);
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp6_ = _data_->_tmp5_;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_c_size = _data_->_tmp6_;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_c_index = -1;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (TRUE) {
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp7_ = _data_->_c_index;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_c_index = _data_->_tmp7_ + 1;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp8_ = _data_->_c_index;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp9_ = _data_->_c_size;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			if (!(_data_->_tmp8_ < _data_->_tmp9_)) {
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
				break;
#line 9287 "contacts-linking.c"
			}
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp10_ = _data_->_c_list;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp11_ = _data_->_c_index;
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _data_->_tmp10_, _data_->_tmp11_);
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->c = (ContactsContact*) _data_->_tmp12_;
#line 764 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp13_ = _data_->c;
#line 764 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp14_ = _data_->_tmp13_->individual;
#line 764 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp15_ = folks_individual_get_personas (_data_->_tmp14_);
#line 764 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp16_ = _data_->_tmp15_;
#line 764 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp17_ = _g_object_ref0 (_data_->_tmp16_);
#line 764 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->ps = _data_->_tmp17_;
#line 765 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp18_ = _data_->all_personas;
#line 765 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp19_ = _data_->ps;
#line 765 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			gee_collection_add_all ((GeeCollection*) _data_->_tmp18_, (GeeCollection*) _data_->_tmp19_);
#line 766 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp20_ = _data_->operation;
#line 766 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_data_->_tmp21_ = _data_->ps;
#line 766 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			contacts_link_operation2_add_persona_set (_data_->_tmp20_, _data_->_tmp21_);
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->ps);
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			_g_object_unref0 (_data_->c);
#line 9325 "contacts-linking.c"
		}
#line 763 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->_c_list);
#line 9329 "contacts-linking.c"
	}
	{
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp22_ = contacts_app_app;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp23_ = _data_->_tmp22_->contacts_store;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp24_ = contacts_store_get_aggregator (_data_->_tmp23_);
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp25_ = _data_->_tmp24_;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp26_ = _data_->all_personas;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_state_ = 1;
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		folks_individual_aggregator_link_personas (_data_->_tmp25_, (GeeSet*) _data_->_tmp26_, contacts_link_contacts_list_ready, _data_);
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 9348 "contacts-linking.c"
		_state_1:
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		folks_individual_aggregator_link_personas_finish (_data_->_tmp25_, _data_->_res_, &_data_->_inner_error_);
#line 770 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 9354 "contacts-linking.c"
			goto __catch22_g_error;
		}
	}
	goto __finally22;
	__catch22_g_error:
	{
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->e1 = _data_->_inner_error_;
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_inner_error_ = NULL;
#line 772 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp27_ = _data_->e1;
#line 772 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_data_->_tmp28_ = _data_->_tmp27_->message;
#line 772 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_warning ("contacts-linking.vala:772: Error linking personas: %s", _data_->_tmp28_);
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_error_free0 (_data_->e1);
#line 9373 "contacts-linking.c"
	}
	__finally22:
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->all_personas);
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		_g_object_unref0 (_data_->operation);
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_clear_error (&_data_->_inner_error_);
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		g_object_unref (_data_->_async_result);
#line 769 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		return FALSE;
#line 9390 "contacts-linking.c"
	}
#line 775 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_data_->result = _data_->operation;
#line 775 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	_g_object_unref0 (_data_->all_personas);
#line 775 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 775 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	if (_data_->_state_ != 0) {
#line 775 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
		while (_data_->_task_complete_ != TRUE) {
#line 775 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 9404 "contacts-linking.c"
		}
	}
#line 775 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	g_object_unref (_data_->_async_result);
#line 775 "/home/mcatanzaro/Projects/GNOME/gnome-contacts/src/contacts-linking.vala"
	return FALSE;
#line 9411 "contacts-linking.c"
}



