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

/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */
/*
    This file is part of Déjà Dup.
    For copyright information, see AUTHORS.

    Déjà Dup is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Déjà Dup 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 Déjà Dup.  If not, see <http://www.gnu.org/licenses/>.
*/

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include "deja.h"
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <atk/atk.h>


#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ())
#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget))
#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass))
#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET))
#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET))
#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass))

typedef struct _DejaDupConfigWidget DejaDupConfigWidget;
typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass;
typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate;

#define DEJA_DUP_TYPE_CONFIG_LOCATION (deja_dup_config_location_get_type ())
#define DEJA_DUP_CONFIG_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocation))
#define DEJA_DUP_CONFIG_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocationClass))
#define DEJA_DUP_IS_CONFIG_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION))
#define DEJA_DUP_IS_CONFIG_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION))
#define DEJA_DUP_CONFIG_LOCATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocationClass))

typedef struct _DejaDupConfigLocation DejaDupConfigLocation;
typedef struct _DejaDupConfigLocationClass DejaDupConfigLocationClass;
typedef struct _DejaDupConfigLocationPrivate DejaDupConfigLocationPrivate;

#define DEJA_DUP_CONFIG_LOCATION_TYPE_GROUP (deja_dup_config_location_group_get_type ())
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define DEJA_DUP_TYPE_CONFIG_LOCATION_TABLE (deja_dup_config_location_table_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_TABLE, DejaDupConfigLocationTable))
#define DEJA_DUP_CONFIG_LOCATION_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_TABLE, DejaDupConfigLocationTableClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_TABLE))
#define DEJA_DUP_IS_CONFIG_LOCATION_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_TABLE))
#define DEJA_DUP_CONFIG_LOCATION_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_TABLE, DejaDupConfigLocationTableClass))

typedef struct _DejaDupConfigLocationTable DejaDupConfigLocationTable;
typedef struct _DejaDupConfigLocationTableClass DejaDupConfigLocationTableClass;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_S3 (deja_dup_config_location_s3_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_S3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_S3, DejaDupConfigLocationS3))
#define DEJA_DUP_CONFIG_LOCATION_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_S3, DejaDupConfigLocationS3Class))
#define DEJA_DUP_IS_CONFIG_LOCATION_S3(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_S3))
#define DEJA_DUP_IS_CONFIG_LOCATION_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_S3))
#define DEJA_DUP_CONFIG_LOCATION_S3_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_S3, DejaDupConfigLocationS3Class))

typedef struct _DejaDupConfigLocationS3 DejaDupConfigLocationS3;
typedef struct _DejaDupConfigLocationS3Class DejaDupConfigLocationS3Class;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_GCS (deja_dup_config_location_gcs_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_GCS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_GCS, DejaDupConfigLocationGCS))
#define DEJA_DUP_CONFIG_LOCATION_GCS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_GCS, DejaDupConfigLocationGCSClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_GCS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_GCS))
#define DEJA_DUP_IS_CONFIG_LOCATION_GCS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_GCS))
#define DEJA_DUP_CONFIG_LOCATION_GCS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_GCS, DejaDupConfigLocationGCSClass))

typedef struct _DejaDupConfigLocationGCS DejaDupConfigLocationGCS;
typedef struct _DejaDupConfigLocationGCSClass DejaDupConfigLocationGCSClass;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_GDRIVE (deja_dup_config_location_gdrive_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_GDRIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_GDRIVE, DejaDupConfigLocationGDrive))
#define DEJA_DUP_CONFIG_LOCATION_GDRIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_GDRIVE, DejaDupConfigLocationGDriveClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_GDRIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_GDRIVE))
#define DEJA_DUP_IS_CONFIG_LOCATION_GDRIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_GDRIVE))
#define DEJA_DUP_CONFIG_LOCATION_GDRIVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_GDRIVE, DejaDupConfigLocationGDriveClass))

typedef struct _DejaDupConfigLocationGDrive DejaDupConfigLocationGDrive;
typedef struct _DejaDupConfigLocationGDriveClass DejaDupConfigLocationGDriveClass;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_U1 (deja_dup_config_location_u1_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_U1(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_U1, DejaDupConfigLocationU1))
#define DEJA_DUP_CONFIG_LOCATION_U1_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_U1, DejaDupConfigLocationU1Class))
#define DEJA_DUP_IS_CONFIG_LOCATION_U1(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_U1))
#define DEJA_DUP_IS_CONFIG_LOCATION_U1_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_U1))
#define DEJA_DUP_CONFIG_LOCATION_U1_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_U1, DejaDupConfigLocationU1Class))

typedef struct _DejaDupConfigLocationU1 DejaDupConfigLocationU1;
typedef struct _DejaDupConfigLocationU1Class DejaDupConfigLocationU1Class;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_RACKSPACE (deja_dup_config_location_rackspace_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_RACKSPACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_RACKSPACE, DejaDupConfigLocationRackspace))
#define DEJA_DUP_CONFIG_LOCATION_RACKSPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_RACKSPACE, DejaDupConfigLocationRackspaceClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_RACKSPACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_RACKSPACE))
#define DEJA_DUP_IS_CONFIG_LOCATION_RACKSPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_RACKSPACE))
#define DEJA_DUP_CONFIG_LOCATION_RACKSPACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_RACKSPACE, DejaDupConfigLocationRackspaceClass))

typedef struct _DejaDupConfigLocationRackspace DejaDupConfigLocationRackspace;
typedef struct _DejaDupConfigLocationRackspaceClass DejaDupConfigLocationRackspaceClass;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_OPENSTACK (deja_dup_config_location_openstack_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_OPENSTACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_OPENSTACK, DejaDupConfigLocationOpenstack))
#define DEJA_DUP_CONFIG_LOCATION_OPENSTACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_OPENSTACK, DejaDupConfigLocationOpenstackClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_OPENSTACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_OPENSTACK))
#define DEJA_DUP_IS_CONFIG_LOCATION_OPENSTACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_OPENSTACK))
#define DEJA_DUP_CONFIG_LOCATION_OPENSTACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_OPENSTACK, DejaDupConfigLocationOpenstackClass))

typedef struct _DejaDupConfigLocationOpenstack DejaDupConfigLocationOpenstack;
typedef struct _DejaDupConfigLocationOpenstackClass DejaDupConfigLocationOpenstackClass;
typedef struct _Block1Data Block1Data;
#define _g_free0(var) (var = (g_free (var), NULL))

#define DEJA_DUP_TYPE_CONFIG_LOCATION_VOLUME (deja_dup_config_location_volume_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_VOLUME, DejaDupConfigLocationVolume))
#define DEJA_DUP_CONFIG_LOCATION_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_VOLUME, DejaDupConfigLocationVolumeClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_VOLUME))
#define DEJA_DUP_IS_CONFIG_LOCATION_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_VOLUME))
#define DEJA_DUP_CONFIG_LOCATION_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_VOLUME, DejaDupConfigLocationVolumeClass))

typedef struct _DejaDupConfigLocationVolume DejaDupConfigLocationVolume;
typedef struct _DejaDupConfigLocationVolumeClass DejaDupConfigLocationVolumeClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define DEJA_DUP_CONFIG_URL_PART_TYPE_PART (deja_dup_config_url_part_part_get_type ())
typedef struct _DejaDupConfigLocationSetFromConfigData DejaDupConfigLocationSetFromConfigData;
typedef struct _DejaDupConfigLocationHandleChangedData DejaDupConfigLocationHandleChangedData;
typedef struct _DejaDupConfigLocationSetLocationInfoData DejaDupConfigLocationSetLocationInfoData;
typedef struct _DejaDupConfigLocationSetVolumeInfoData DejaDupConfigLocationSetVolumeInfoData;
typedef struct _DejaDupConfigLocationSetRemoteInfoData DejaDupConfigLocationSetRemoteInfoData;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_SSH (deja_dup_config_location_ssh_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_SSH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_SSH, DejaDupConfigLocationSSH))
#define DEJA_DUP_CONFIG_LOCATION_SSH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_SSH, DejaDupConfigLocationSSHClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_SSH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_SSH))
#define DEJA_DUP_IS_CONFIG_LOCATION_SSH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_SSH))
#define DEJA_DUP_CONFIG_LOCATION_SSH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_SSH, DejaDupConfigLocationSSHClass))

typedef struct _DejaDupConfigLocationSSH DejaDupConfigLocationSSH;
typedef struct _DejaDupConfigLocationSSHClass DejaDupConfigLocationSSHClass;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_SMB (deja_dup_config_location_smb_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_SMB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_SMB, DejaDupConfigLocationSMB))
#define DEJA_DUP_CONFIG_LOCATION_SMB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_SMB, DejaDupConfigLocationSMBClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_SMB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_SMB))
#define DEJA_DUP_IS_CONFIG_LOCATION_SMB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_SMB))
#define DEJA_DUP_CONFIG_LOCATION_SMB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_SMB, DejaDupConfigLocationSMBClass))

typedef struct _DejaDupConfigLocationSMB DejaDupConfigLocationSMB;
typedef struct _DejaDupConfigLocationSMBClass DejaDupConfigLocationSMBClass;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_FTP (deja_dup_config_location_ftp_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_FTP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_FTP, DejaDupConfigLocationFTP))
#define DEJA_DUP_CONFIG_LOCATION_FTP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_FTP, DejaDupConfigLocationFTPClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_FTP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_FTP))
#define DEJA_DUP_IS_CONFIG_LOCATION_FTP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_FTP))
#define DEJA_DUP_CONFIG_LOCATION_FTP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_FTP, DejaDupConfigLocationFTPClass))

typedef struct _DejaDupConfigLocationFTP DejaDupConfigLocationFTP;
typedef struct _DejaDupConfigLocationFTPClass DejaDupConfigLocationFTPClass;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_DAV (deja_dup_config_location_dav_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_DAV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_DAV, DejaDupConfigLocationDAV))
#define DEJA_DUP_CONFIG_LOCATION_DAV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_DAV, DejaDupConfigLocationDAVClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_DAV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_DAV))
#define DEJA_DUP_IS_CONFIG_LOCATION_DAV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_DAV))
#define DEJA_DUP_CONFIG_LOCATION_DAV_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_DAV, DejaDupConfigLocationDAVClass))

typedef struct _DejaDupConfigLocationDAV DejaDupConfigLocationDAV;
typedef struct _DejaDupConfigLocationDAVClass DejaDupConfigLocationDAVClass;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_CUSTOM (deja_dup_config_location_custom_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_CUSTOM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_CUSTOM, DejaDupConfigLocationCustom))
#define DEJA_DUP_CONFIG_LOCATION_CUSTOM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_CUSTOM, DejaDupConfigLocationCustomClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_CUSTOM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_CUSTOM))
#define DEJA_DUP_IS_CONFIG_LOCATION_CUSTOM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_CUSTOM))
#define DEJA_DUP_CONFIG_LOCATION_CUSTOM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_CUSTOM, DejaDupConfigLocationCustomClass))

typedef struct _DejaDupConfigLocationCustom DejaDupConfigLocationCustom;
typedef struct _DejaDupConfigLocationCustomClass DejaDupConfigLocationCustomClass;

#define DEJA_DUP_TYPE_CONFIG_LOCATION_FILE (deja_dup_config_location_file_get_type ())
#define DEJA_DUP_CONFIG_LOCATION_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_FILE, DejaDupConfigLocationFile))
#define DEJA_DUP_CONFIG_LOCATION_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_FILE, DejaDupConfigLocationFileClass))
#define DEJA_DUP_IS_CONFIG_LOCATION_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_FILE))
#define DEJA_DUP_IS_CONFIG_LOCATION_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION_FILE))
#define DEJA_DUP_CONFIG_LOCATION_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION_FILE, DejaDupConfigLocationFileClass))

typedef struct _DejaDupConfigLocationFile DejaDupConfigLocationFile;
typedef struct _DejaDupConfigLocationFileClass DejaDupConfigLocationFileClass;
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))

struct _DejaDupConfigWidget {
	GtkEventBox parent_instance;
	DejaDupConfigWidgetPrivate * priv;
	gboolean syncing;
	DejaDupFilteredSettings* settings;
	GList* all_settings;
};

struct _DejaDupConfigWidgetClass {
	GtkEventBoxClass parent_class;
	void (*set_from_config) (DejaDupConfigWidget* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*set_from_config_finish) (DejaDupConfigWidget* self, GAsyncResult* _res_);
};

struct _DejaDupConfigLocation {
	DejaDupConfigWidget parent_instance;
	DejaDupConfigLocationPrivate * priv;
};

struct _DejaDupConfigLocationClass {
	DejaDupConfigWidgetClass parent_class;
};

struct _DejaDupConfigLocationPrivate {
	GtkEventBox* _extras;
	GtkSizeGroup* _label_sizes;
	gint index_ftp;
	gint index_dav;
	gint index_s3;
	gint index_gcs;
	gint index_gdrive;
	gint index_rackspace;
	gint index_openstack;
	gint index_u1;
	gint index_cloud_sep;
	gint index_ssh;
	gint index_smb;
	gint num_volumes;
	gint index_vol_sep;
	gint index_custom;
	gint index_local;
	gint extras_max_width;
	gint extras_max_height;
	GtkComboBox* button;
	GtkListStore* store;
	GtkTreeModelSort* sort_model;
};

typedef enum  {
	DEJA_DUP_CONFIG_LOCATION_GROUP_CLOUD = 0,
	DEJA_DUP_CONFIG_LOCATION_GROUP_CLOUD_SEP,
	DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE,
	DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE_CUSTOM,
	DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE_SEP,
	DEJA_DUP_CONFIG_LOCATION_GROUP_VOLUMES,
	DEJA_DUP_CONFIG_LOCATION_GROUP_VOLUMES_SEP,
	DEJA_DUP_CONFIG_LOCATION_GROUP_LOCAL
} DejaDupConfigLocationGroup;

typedef void (*DejaDupConfigLocationCloudCallback) (void* user_data);
struct _Block1Data {
	int _ref_count_;
	DejaDupConfigLocation* self;
	DejaDupConfigLocationCloudCallback cb;
	gpointer cb_target;
};

typedef enum  {
	DEJA_DUP_CONFIG_URL_PART_PART_SCHEME,
	DEJA_DUP_CONFIG_URL_PART_PART_SERVER,
	DEJA_DUP_CONFIG_URL_PART_PART_PORT,
	DEJA_DUP_CONFIG_URL_PART_PART_USER,
	DEJA_DUP_CONFIG_URL_PART_PART_FOLDER,
	DEJA_DUP_CONFIG_URL_PART_PART_DOMAIN
} DejaDupConfigURLPartPart;

struct _DejaDupConfigLocationSetFromConfigData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	DejaDupConfigLocation* self;
	gint index;
	gchar* backend;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	gint _tmp2_;
	const gchar* _tmp3_;
	gint _tmp4_;
	const gchar* _tmp5_;
	gint _tmp6_;
	const gchar* _tmp7_;
	gint _tmp8_;
	const gchar* _tmp9_;
	gint _tmp10_;
	const gchar* _tmp11_;
	gint _tmp12_;
	const gchar* _tmp13_;
	DejaDupFilteredSettings* fsettings;
	DejaDupFilteredSettings* _tmp14_;
	DejaDupFilteredSettings* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gboolean _tmp18_;
	gboolean _tmp19_;
	gchar* uuid;
	DejaDupFilteredSettings* _tmp20_;
	gchar* _tmp21_;
	GtkTreeIter saved_iter;
	const gchar* _tmp22_;
	GtkTreeIter _tmp23_;
	gboolean _tmp24_;
	GtkTreeIter _tmp25_;
	GtkTreeIter iter0;
	GtkTreeIter inner_iter;
	GtkComboBox* _tmp26_;
	GtkTreeIter _tmp27_;
	gboolean _tmp28_;
	GtkTreeModelSort* _tmp29_;
	GtkTreeIter _tmp30_;
	GtkTreeIter _tmp31_;
	gint cur_index;
	GtkListStore* _tmp32_;
	GtkTreeIter _tmp33_;
	gint _tmp34_;
	gint _tmp35_;
	gchar* scheme;
	DejaDupFilteredSettings* _tmp36_;
	gchar* _tmp37_;
	const gchar* _tmp38_;
	const gchar* _tmp39_;
	GQuark _tmp41_;
	gint _tmp42_;
	gint _tmp43_;
	gint _tmp44_;
	gint _tmp45_;
	gint _tmp46_;
	gint _tmp47_;
	gint _tmp48_;
	GtkTreeIter iter;
	GtkListStore* _tmp49_;
	gint _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	GtkTreeIter _tmp53_;
	gboolean _tmp54_;
	gboolean _tmp55_;
	GtkTreeIter _tmp56_;
};

struct _DejaDupConfigLocationHandleChangedData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	DejaDupConfigLocation* self;
};

struct _DejaDupConfigLocationSetLocationInfoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	DejaDupConfigLocation* self;
	GtkTreeIter iter0;
	GtkTreeIter iter;
	GtkComboBox* _tmp0_;
	GtkTreeIter _tmp1_;
	gboolean _tmp2_;
	GtkTreeModelSort* _tmp3_;
	GtkTreeIter _tmp4_;
	GtkTreeIter _tmp5_;
	gint index;
	gchar* uuid;
	GtkListStore* _tmp6_;
	GtkTreeIter _tmp7_;
	gint _tmp8_;
	gint _tmp9_;
	DejaDupFilteredSettings* _tmp10_;
	gint _tmp11_;
	gint _tmp12_;
	DejaDupFilteredSettings* _tmp13_;
	gint _tmp14_;
	gint _tmp15_;
	DejaDupFilteredSettings* _tmp16_;
	gint _tmp17_;
	gint _tmp18_;
	DejaDupFilteredSettings* _tmp19_;
	gint _tmp20_;
	gint _tmp21_;
	DejaDupFilteredSettings* _tmp22_;
	gint _tmp23_;
	gint _tmp24_;
	DejaDupFilteredSettings* _tmp25_;
	gint _tmp26_;
	gint _tmp27_;
	gint _tmp28_;
	gint _tmp29_;
	gint _tmp30_;
	gint _tmp31_;
	DejaDupFilteredSettings* fsettings;
	DejaDupFilteredSettings* _tmp32_;
	gchar* scheme;
	DejaDupFilteredSettings* _tmp33_;
	gchar* _tmp34_;
	gboolean _tmp35_;
	const gchar* _tmp36_;
	const gchar* _tmp37_;
	gchar* _tmp38_;
	const gchar* _tmp39_;
	gint _tmp40_;
	gint _tmp41_;
	gint _tmp42_;
	gint _tmp43_;
	gint _tmp44_;
	gint _tmp45_;
	const gchar* _tmp46_;
	GtkTreeIter _tmp47_;
	gint _tmp48_;
};

struct _DejaDupConfigLocationSetVolumeInfoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	DejaDupConfigLocation* self;
	GtkTreeIter iter;
	GValue vol_var;
	GtkListStore* _tmp0_;
	GtkTreeIter _tmp1_;
	GValue _tmp2_;
	gchar* uuid;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	GtkListStore* _tmp6_;
	GtkTreeIter _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	DejaDupFilteredSettings* fsettings;
	DejaDupFilteredSettings* _tmp10_;
	DejaDupFilteredSettings* _tmp11_;
	DejaDupFilteredSettings* _tmp12_;
	GVolume* vol;
	const gchar* _tmp13_;
	GVolume* _tmp14_;
	GVolume* _tmp15_;
	GVolume* _tmp16_;
};

struct _DejaDupConfigLocationSetRemoteInfoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	DejaDupConfigLocation* self;
	gchar* scheme;
	DejaDupFilteredSettings* fsettings;
	DejaDupFilteredSettings* _tmp0_;
	DejaDupFilteredSettings* _tmp1_;
	DejaDupFilteredSettings* _tmp2_;
	const gchar* _tmp3_;
	DejaDupFilteredSettings* _tmp4_;
	const gchar* _tmp5_;
	DejaDupFilteredSettings* _tmp6_;
	DejaDupFilteredSettings* _tmp7_;
};


static gpointer deja_dup_config_location_parent_class = NULL;

GType deja_dup_config_widget_get_type (void) G_GNUC_CONST;
GType deja_dup_config_location_get_type (void) G_GNUC_CONST;
#define DEJA_DUP_CONFIG_LOCATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocationPrivate))
enum  {
	DEJA_DUP_CONFIG_LOCATION_DUMMY_PROPERTY,
	DEJA_DUP_CONFIG_LOCATION_EXTRAS,
	DEJA_DUP_CONFIG_LOCATION_LABEL_SIZES
};
static GType deja_dup_config_location_group_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
#define DEJA_DUP_CONFIG_LOCATION_COL_ICON 0
#define DEJA_DUP_CONFIG_LOCATION_COL_TEXT 1
#define DEJA_DUP_CONFIG_LOCATION_COL_SORT 2
#define DEJA_DUP_CONFIG_LOCATION_COL_UUID 3
#define DEJA_DUP_CONFIG_LOCATION_COL_PAGE 4
#define DEJA_DUP_CONFIG_LOCATION_COL_INDEX 5
void deja_dup_config_location_hidden_size (DejaDupConfigLocation* self, GtkRequisition* result);
GtkEventBox* deja_dup_config_location_get_extras (DejaDupConfigLocation* self);
DejaDupConfigLocation* deja_dup_config_location_new (GtkSizeGroup* sg);
DejaDupConfigLocation* deja_dup_config_location_construct (GType object_type, GtkSizeGroup* sg);
static void deja_dup_config_location_insert_s3 (DejaDupConfigLocation* self);
static void deja_dup_config_location_insert_cloud_if_available (DejaDupConfigLocation* self, const gchar* id, DejaDupChecker* checker, GIcon* icon, const gchar* name, GtkWidget* w, gint* index, DejaDupConfigLocationCloudCallback cb, void* cb_target);
GtkSizeGroup* deja_dup_config_location_get_label_sizes (DejaDupConfigLocation* self);
DejaDupConfigLocationS3* deja_dup_config_location_s3_new (GtkSizeGroup* sg);
DejaDupConfigLocationS3* deja_dup_config_location_s3_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_table_get_type (void) G_GNUC_CONST;
GType deja_dup_config_location_s3_get_type (void) G_GNUC_CONST;
static void _deja_dup_config_location_insert_s3_deja_dup_config_location_cloud_callback (gpointer self);
static void deja_dup_config_location_insert_gcs (DejaDupConfigLocation* self);
DejaDupConfigLocationGCS* deja_dup_config_location_gcs_new (GtkSizeGroup* sg);
DejaDupConfigLocationGCS* deja_dup_config_location_gcs_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_gcs_get_type (void) G_GNUC_CONST;
static void _deja_dup_config_location_insert_gcs_deja_dup_config_location_cloud_callback (gpointer self);
static void deja_dup_config_location_insert_gdrive (DejaDupConfigLocation* self);
DejaDupConfigLocationGDrive* deja_dup_config_location_gdrive_new (GtkSizeGroup* sg);
DejaDupConfigLocationGDrive* deja_dup_config_location_gdrive_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_gdrive_get_type (void) G_GNUC_CONST;
static void _deja_dup_config_location_insert_gdrive_deja_dup_config_location_cloud_callback (gpointer self);
static void deja_dup_config_location_insert_u1 (DejaDupConfigLocation* self);
DejaDupConfigLocationU1* deja_dup_config_location_u1_new (GtkSizeGroup* sg);
DejaDupConfigLocationU1* deja_dup_config_location_u1_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_u1_get_type (void) G_GNUC_CONST;
static void _deja_dup_config_location_insert_u1_deja_dup_config_location_cloud_callback (gpointer self);
static void deja_dup_config_location_insert_rackspace (DejaDupConfigLocation* self);
DejaDupConfigLocationRackspace* deja_dup_config_location_rackspace_new (GtkSizeGroup* sg);
DejaDupConfigLocationRackspace* deja_dup_config_location_rackspace_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_rackspace_get_type (void) G_GNUC_CONST;
static void _deja_dup_config_location_insert_rackspace_deja_dup_config_location_cloud_callback (gpointer self);
static void deja_dup_config_location_insert_openstack (DejaDupConfigLocation* self);
DejaDupConfigLocationOpenstack* deja_dup_config_location_openstack_new (GtkSizeGroup* sg);
DejaDupConfigLocationOpenstack* deja_dup_config_location_openstack_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_openstack_get_type (void) G_GNUC_CONST;
static void _deja_dup_config_location_insert_openstack_deja_dup_config_location_cloud_callback (gpointer self);
static Block1Data* block1_data_ref (Block1Data* _data1_);
static void block1_data_unref (void * _userdata_);
static gint deja_dup_config_location_add_entry (DejaDupConfigLocation* self, GIcon* icon, const gchar* label, DejaDupConfigLocationGroup category, GtkWidget* page, const gchar* uuid);
static gint deja_dup_config_location_add_separator (DejaDupConfigLocation* self, DejaDupConfigLocationGroup category);
static void ____lambda6_ (Block1Data* _data1_);
void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void deja_dup_config_widget_set_from_config_finish (DejaDupConfigWidget* self, GAsyncResult* _res_);
static void _____lambda6__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static gboolean deja_dup_config_location_is_allowed_volume (DejaDupConfigLocation* self, GIcon* icon_in);
static gboolean deja_dup_config_location_is_separator (DejaDupConfigLocation* self, GtkTreeModel* model, GtkTreeIter* iter);
static gint deja_dup_config_location_next_index (DejaDupConfigLocation* self);
static gboolean deja_dup_config_location_lookup_uuid (DejaDupConfigLocation* self, const gchar* uuid, GtkTreeIter* iter_in);
static void deja_dup_config_location_add_volume (DejaDupConfigLocation* self, GVolumeMonitor* monitor, GVolume* v);
static void deja_dup_config_location_add_volume_full (DejaDupConfigLocation* self, const gchar* uuid, const gchar* name, GIcon* icon);
static void deja_dup_config_location_update_volume_full (DejaDupConfigLocation* self, const gchar* uuid, const gchar* name, GIcon* icon);
DejaDupConfigLocationVolume* deja_dup_config_location_volume_new (GtkSizeGroup* sg);
DejaDupConfigLocationVolume* deja_dup_config_location_volume_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_volume_get_type (void) G_GNUC_CONST;
static void deja_dup_config_location_update_volume (DejaDupConfigLocation* self, GVolumeMonitor* monitor, GVolume* v);
static void deja_dup_config_location_remove_volume (DejaDupConfigLocation* self, GVolumeMonitor* monitor, GVolume* v);
static void deja_dup_config_location_remove_volume_full (DejaDupConfigLocation* self, const gchar* uuid);
static gboolean deja_dup_config_location_update_saved_volume (DejaDupConfigLocation* self);
static void deja_dup_config_location_set_active_iter (DejaDupConfigLocation* self, GtkTreeIter* iter);
static void deja_dup_config_location_real_set_from_config_data_free (gpointer _data);
static void deja_dup_config_location_real_set_from_config (DejaDupConfigWidget* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean deja_dup_config_location_real_set_from_config_co (DejaDupConfigLocationSetFromConfigData* _data_);
GType deja_dup_config_url_part_part_get_type (void) G_GNUC_CONST;
gchar* deja_dup_config_url_part_read_uri_part (DejaDupFilteredSettings* settings, const gchar* key, DejaDupConfigURLPartPart part);
static void deja_dup_config_location_set_location_widgets (DejaDupConfigLocation* self);
static void deja_dup_config_location_handle_changed_data_free (gpointer _data);
static void deja_dup_config_location_handle_changed (DejaDupConfigLocation* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void deja_dup_config_location_handle_changed_finish (DejaDupConfigLocation* self, GAsyncResult* _res_);
static gboolean deja_dup_config_location_handle_changed_co (DejaDupConfigLocationHandleChangedData* _data_);
static void deja_dup_config_location_set_location_info (DejaDupConfigLocation* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void deja_dup_config_location_set_location_info_finish (DejaDupConfigLocation* self, GAsyncResult* _res_);
static void deja_dup_config_location_handle_changed_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void deja_dup_config_location_set_location_info_data_free (gpointer _data);
static gboolean deja_dup_config_location_set_location_info_co (DejaDupConfigLocationSetLocationInfoData* _data_);
static void deja_dup_config_location_set_remote_info (DejaDupConfigLocation* self, const gchar* scheme, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void deja_dup_config_location_set_remote_info_finish (DejaDupConfigLocation* self, GAsyncResult* _res_);
static void deja_dup_config_location_set_location_info_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void deja_dup_config_location_set_volume_info (DejaDupConfigLocation* self, GtkTreeIter* iter, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void deja_dup_config_location_set_volume_info_finish (DejaDupConfigLocation* self, GAsyncResult* _res_);
static void deja_dup_config_location_set_volume_info_data_free (gpointer _data);
static gboolean deja_dup_config_location_set_volume_info_co (DejaDupConfigLocationSetVolumeInfoData* _data_);
static void deja_dup_config_location_set_volume_info_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void deja_dup_config_location_set_remote_info_data_free (gpointer _data);
static gboolean deja_dup_config_location_set_remote_info_co (DejaDupConfigLocationSetRemoteInfoData* _data_);
void deja_dup_config_url_part_write_uri_part (DejaDupFilteredSettings* settings, const gchar* key, DejaDupConfigURLPartPart part, const gchar* userval);
static void deja_dup_config_location_set_remote_info_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void deja_dup_config_location_set_extras (DejaDupConfigLocation* self, GtkEventBox* value);
static void deja_dup_config_location_set_label_sizes (DejaDupConfigLocation* self, GtkSizeGroup* value);
static GObject * deja_dup_config_location_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static gboolean _deja_dup_config_location_is_separator_gtk_tree_view_row_separator_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self);
DejaDupConfigLocationSSH* deja_dup_config_location_ssh_new (GtkSizeGroup* sg);
DejaDupConfigLocationSSH* deja_dup_config_location_ssh_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_ssh_get_type (void) G_GNUC_CONST;
DejaDupConfigLocationSMB* deja_dup_config_location_smb_new (GtkSizeGroup* sg);
DejaDupConfigLocationSMB* deja_dup_config_location_smb_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_smb_get_type (void) G_GNUC_CONST;
DejaDupConfigLocationFTP* deja_dup_config_location_ftp_new (GtkSizeGroup* sg);
DejaDupConfigLocationFTP* deja_dup_config_location_ftp_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_ftp_get_type (void) G_GNUC_CONST;
DejaDupConfigLocationDAV* deja_dup_config_location_dav_new (GtkSizeGroup* sg);
DejaDupConfigLocationDAV* deja_dup_config_location_dav_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_dav_get_type (void) G_GNUC_CONST;
DejaDupConfigLocationCustom* deja_dup_config_location_custom_new (GtkSizeGroup* sg);
DejaDupConfigLocationCustom* deja_dup_config_location_custom_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_custom_get_type (void) G_GNUC_CONST;
DejaDupConfigLocationFile* deja_dup_config_location_file_new (GtkSizeGroup* sg);
DejaDupConfigLocationFile* deja_dup_config_location_file_construct (GType object_type, GtkSizeGroup* sg);
GType deja_dup_config_location_file_get_type (void) G_GNUC_CONST;
static void _deja_dup_config_location_add_volume_g_volume_monitor_volume_added (GVolumeMonitor* _sender, GVolume* volume, gpointer self);
static void _deja_dup_config_location_update_volume_g_volume_monitor_volume_changed (GVolumeMonitor* _sender, GVolume* volume, gpointer self);
static void _deja_dup_config_location_remove_volume_g_volume_monitor_volume_removed (GVolumeMonitor* _sender, GVolume* volume, gpointer self);
void deja_dup_config_widget_set_mnemonic_widget (DejaDupConfigWidget* self, GtkWidget* value);
static void _deja_dup_config_location_handle_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
void deja_dup_config_widget_watch_key (DejaDupConfigWidget* self, const gchar* key, DejaDupFilteredSettings* s);
static void _g_object_unref0_ (gpointer var);
static void _g_list_free__g_object_unref0_ (GList* self);
static void deja_dup_config_location_finalize (GObject* obj);
static void _vala_deja_dup_config_location_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_deja_dup_config_location_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
static gint _vala_array_length (gpointer array);


static GType deja_dup_config_location_group_get_type (void) {
	static volatile gsize deja_dup_config_location_group_type_id__volatile = 0;
	if (g_once_init_enter (&deja_dup_config_location_group_type_id__volatile)) {
		static const GEnumValue values[] = {{DEJA_DUP_CONFIG_LOCATION_GROUP_CLOUD, "DEJA_DUP_CONFIG_LOCATION_GROUP_CLOUD", "cloud"}, {DEJA_DUP_CONFIG_LOCATION_GROUP_CLOUD_SEP, "DEJA_DUP_CONFIG_LOCATION_GROUP_CLOUD_SEP", "cloud-sep"}, {DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE, "DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE", "remote"}, {DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE_CUSTOM, "DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE_CUSTOM", "remote-custom"}, {DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE_SEP, "DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE_SEP", "remote-sep"}, {DEJA_DUP_CONFIG_LOCATION_GROUP_VOLUMES, "DEJA_DUP_CONFIG_LOCATION_GROUP_VOLUMES", "volumes"}, {DEJA_DUP_CONFIG_LOCATION_GROUP_VOLUMES_SEP, "DEJA_DUP_CONFIG_LOCATION_GROUP_VOLUMES_SEP", "volumes-sep"}, {DEJA_DUP_CONFIG_LOCATION_GROUP_LOCAL, "DEJA_DUP_CONFIG_LOCATION_GROUP_LOCAL", "local"}, {0, NULL, NULL}};
		GType deja_dup_config_location_group_type_id;
		deja_dup_config_location_group_type_id = g_enum_register_static ("DejaDupConfigLocationGroup", values);
		g_once_init_leave (&deja_dup_config_location_group_type_id__volatile, deja_dup_config_location_group_type_id);
	}
	return deja_dup_config_location_group_type_id__volatile;
}


void deja_dup_config_location_hidden_size (DejaDupConfigLocation* self, GtkRequisition* result) {
	GtkRequisition pagereq = {0};
	GtkEventBox* _tmp0_ = NULL;
	GtkRequisition _tmp1_ = {0};
	gint _tmp2_ = 0;
	GtkRequisition _tmp3_ = {0};
	gint _tmp4_ = 0;
	gint _tmp5_ = 0;
	GtkRequisition _tmp6_ = {0};
	gint _tmp7_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_extras;
	gtk_widget_get_preferred_size ((GtkWidget*) _tmp0_, NULL, &_tmp1_);
	pagereq = _tmp1_;
	_tmp2_ = self->priv->extras_max_width;
	_tmp3_ = pagereq;
	_tmp4_ = _tmp3_.width;
	pagereq.width = (_tmp2_ - _tmp4_) + 20;
	_tmp5_ = self->priv->extras_max_height;
	_tmp6_ = pagereq;
	_tmp7_ = _tmp6_.height;
	pagereq.height = (_tmp5_ - _tmp7_) + 20;
	*result = pagereq;
	return;
}


DejaDupConfigLocation* deja_dup_config_location_construct (GType object_type, GtkSizeGroup* sg) {
	DejaDupConfigLocation * self = NULL;
	GtkSizeGroup* _tmp0_ = NULL;
	_tmp0_ = sg;
	self = (DejaDupConfigLocation*) g_object_new (object_type, "label-sizes", _tmp0_, NULL);
	return self;
}


DejaDupConfigLocation* deja_dup_config_location_new (GtkSizeGroup* sg) {
	return deja_dup_config_location_construct (DEJA_DUP_TYPE_CONFIG_LOCATION, sg);
}


static void _deja_dup_config_location_insert_s3_deja_dup_config_location_cloud_callback (gpointer self) {
	deja_dup_config_location_insert_s3 ((DejaDupConfigLocation*) self);
}


static void deja_dup_config_location_insert_s3 (DejaDupConfigLocation* self) {
	DejaDupChecker* _tmp0_ = NULL;
	DejaDupChecker* _tmp1_ = NULL;
	GThemedIcon* _tmp2_ = NULL;
	GThemedIcon* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	GtkSizeGroup* _tmp5_ = NULL;
	DejaDupConfigLocationS3* _tmp6_ = NULL;
	DejaDupConfigLocationS3* _tmp7_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = deja_dup_backend_s3_get_checker ();
	_tmp1_ = _tmp0_;
	_tmp2_ = (GThemedIcon*) g_themed_icon_new ("deja-dup-cloud");
	_tmp3_ = _tmp2_;
	_tmp4_ = _ ("Amazon S3");
	_tmp5_ = self->priv->_label_sizes;
	_tmp6_ = deja_dup_config_location_s3_new (_tmp5_);
	g_object_ref_sink (_tmp6_);
	_tmp7_ = _tmp6_;
	deja_dup_config_location_insert_cloud_if_available (self, "s3", _tmp1_, (GIcon*) _tmp3_, _tmp4_, (GtkWidget*) _tmp7_, &self->priv->index_s3, _deja_dup_config_location_insert_s3_deja_dup_config_location_cloud_callback, self);
	_g_object_unref0 (_tmp7_);
	_g_object_unref0 (_tmp3_);
	_g_object_unref0 (_tmp1_);
}


static void _deja_dup_config_location_insert_gcs_deja_dup_config_location_cloud_callback (gpointer self) {
	deja_dup_config_location_insert_gcs ((DejaDupConfigLocation*) self);
}


static void deja_dup_config_location_insert_gcs (DejaDupConfigLocation* self) {
	DejaDupChecker* _tmp0_ = NULL;
	DejaDupChecker* _tmp1_ = NULL;
	GThemedIcon* _tmp2_ = NULL;
	GThemedIcon* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	GtkSizeGroup* _tmp5_ = NULL;
	DejaDupConfigLocationGCS* _tmp6_ = NULL;
	DejaDupConfigLocationGCS* _tmp7_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = deja_dup_backend_gcs_get_checker ();
	_tmp1_ = _tmp0_;
	_tmp2_ = (GThemedIcon*) g_themed_icon_new ("deja-dup-cloud");
	_tmp3_ = _tmp2_;
	_tmp4_ = _ ("Google Cloud Storage");
	_tmp5_ = self->priv->_label_sizes;
	_tmp6_ = deja_dup_config_location_gcs_new (_tmp5_);
	g_object_ref_sink (_tmp6_);
	_tmp7_ = _tmp6_;
	deja_dup_config_location_insert_cloud_if_available (self, "gcs", _tmp1_, (GIcon*) _tmp3_, _tmp4_, (GtkWidget*) _tmp7_, &self->priv->index_gcs, _deja_dup_config_location_insert_gcs_deja_dup_config_location_cloud_callback, self);
	_g_object_unref0 (_tmp7_);
	_g_object_unref0 (_tmp3_);
	_g_object_unref0 (_tmp1_);
}


static void _deja_dup_config_location_insert_gdrive_deja_dup_config_location_cloud_callback (gpointer self) {
	deja_dup_config_location_insert_gdrive ((DejaDupConfigLocation*) self);
}


static void deja_dup_config_location_insert_gdrive (DejaDupConfigLocation* self) {
	DejaDupChecker* _tmp0_ = NULL;
	DejaDupChecker* _tmp1_ = NULL;
	GThemedIcon* _tmp2_ = NULL;
	GThemedIcon* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	GtkSizeGroup* _tmp5_ = NULL;
	DejaDupConfigLocationGDrive* _tmp6_ = NULL;
	DejaDupConfigLocationGDrive* _tmp7_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = deja_dup_backend_gdrive_get_checker ();
	_tmp1_ = _tmp0_;
	_tmp2_ = (GThemedIcon*) g_themed_icon_new ("deja-dup-cloud");
	_tmp3_ = _tmp2_;
	_tmp4_ = _ ("Google Drive");
	_tmp5_ = self->priv->_label_sizes;
	_tmp6_ = deja_dup_config_location_gdrive_new (_tmp5_);
	g_object_ref_sink (_tmp6_);
	_tmp7_ = _tmp6_;
	deja_dup_config_location_insert_cloud_if_available (self, "gdrive", _tmp1_, (GIcon*) _tmp3_, _tmp4_, (GtkWidget*) _tmp7_, &self->priv->index_gdrive, _deja_dup_config_location_insert_gdrive_deja_dup_config_location_cloud_callback, self);
	_g_object_unref0 (_tmp7_);
	_g_object_unref0 (_tmp3_);
	_g_object_unref0 (_tmp1_);
}


static void _deja_dup_config_location_insert_u1_deja_dup_config_location_cloud_callback (gpointer self) {
	deja_dup_config_location_insert_u1 ((DejaDupConfigLocation*) self);
}


static void deja_dup_config_location_insert_u1 (DejaDupConfigLocation* self) {
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar** _tmp3_ = NULL;
	gchar** _tmp4_ = NULL;
	gint _tmp4__length1 = 0;
	GThemedIcon* _tmp5_ = NULL;
	GThemedIcon* _tmp6_ = NULL;
	const gchar* _tmp7_ = NULL;
	GtkSizeGroup* _tmp8_ = NULL;
	DejaDupConfigLocationU1* _tmp9_ = NULL;
	DejaDupConfigLocationU1* _tmp10_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup ("ubuntuone");
	_tmp1_ = g_strdup ("ubuntuone-installer");
	_tmp2_ = g_strdup ("deja-dup-cloud");
	_tmp3_ = g_new0 (gchar*, 3 + 1);
	_tmp3_[0] = _tmp0_;
	_tmp3_[1] = _tmp1_;
	_tmp3_[2] = _tmp2_;
	_tmp4_ = _tmp3_;
	_tmp4__length1 = 3;
	_tmp5_ = (GThemedIcon*) g_themed_icon_new_from_names (_tmp4_, 3);
	_tmp6_ = _tmp5_;
	_tmp7_ = _ ("Ubuntu One");
	_tmp8_ = self->priv->_label_sizes;
	_tmp9_ = deja_dup_config_location_u1_new (_tmp8_);
	g_object_ref_sink (_tmp9_);
	_tmp10_ = _tmp9_;
	deja_dup_config_location_insert_cloud_if_available (self, "u1", NULL, (GIcon*) _tmp6_, _tmp7_, (GtkWidget*) _tmp10_, &self->priv->index_u1, _deja_dup_config_location_insert_u1_deja_dup_config_location_cloud_callback, self);
	_g_object_unref0 (_tmp10_);
	_g_object_unref0 (_tmp6_);
	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
}


static void _deja_dup_config_location_insert_rackspace_deja_dup_config_location_cloud_callback (gpointer self) {
	deja_dup_config_location_insert_rackspace ((DejaDupConfigLocation*) self);
}


static void deja_dup_config_location_insert_rackspace (DejaDupConfigLocation* self) {
	DejaDupChecker* _tmp0_ = NULL;
	DejaDupChecker* _tmp1_ = NULL;
	GThemedIcon* _tmp2_ = NULL;
	GThemedIcon* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	GtkSizeGroup* _tmp5_ = NULL;
	DejaDupConfigLocationRackspace* _tmp6_ = NULL;
	DejaDupConfigLocationRackspace* _tmp7_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = deja_dup_backend_rackspace_get_checker ();
	_tmp1_ = _tmp0_;
	_tmp2_ = (GThemedIcon*) g_themed_icon_new ("deja-dup-cloud");
	_tmp3_ = _tmp2_;
	_tmp4_ = _ ("Rackspace Cloud Files");
	_tmp5_ = self->priv->_label_sizes;
	_tmp6_ = deja_dup_config_location_rackspace_new (_tmp5_);
	g_object_ref_sink (_tmp6_);
	_tmp7_ = _tmp6_;
	deja_dup_config_location_insert_cloud_if_available (self, "rackspace", _tmp1_, (GIcon*) _tmp3_, _tmp4_, (GtkWidget*) _tmp7_, &self->priv->index_rackspace, _deja_dup_config_location_insert_rackspace_deja_dup_config_location_cloud_callback, self);
	_g_object_unref0 (_tmp7_);
	_g_object_unref0 (_tmp3_);
	_g_object_unref0 (_tmp1_);
}


static void _deja_dup_config_location_insert_openstack_deja_dup_config_location_cloud_callback (gpointer self) {
	deja_dup_config_location_insert_openstack ((DejaDupConfigLocation*) self);
}


static void deja_dup_config_location_insert_openstack (DejaDupConfigLocation* self) {
	DejaDupChecker* _tmp0_ = NULL;
	DejaDupChecker* _tmp1_ = NULL;
	GThemedIcon* _tmp2_ = NULL;
	GThemedIcon* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	GtkSizeGroup* _tmp5_ = NULL;
	DejaDupConfigLocationOpenstack* _tmp6_ = NULL;
	DejaDupConfigLocationOpenstack* _tmp7_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = deja_dup_backend_openstack_get_checker ();
	_tmp1_ = _tmp0_;
	_tmp2_ = (GThemedIcon*) g_themed_icon_new ("deja-dup-cloud");
	_tmp3_ = _tmp2_;
	_tmp4_ = _ ("OpenStack Swift");
	_tmp5_ = self->priv->_label_sizes;
	_tmp6_ = deja_dup_config_location_openstack_new (_tmp5_);
	g_object_ref_sink (_tmp6_);
	_tmp7_ = _tmp6_;
	deja_dup_config_location_insert_cloud_if_available (self, "openstack", _tmp1_, (GIcon*) _tmp3_, _tmp4_, (GtkWidget*) _tmp7_, &self->priv->index_openstack, _deja_dup_config_location_insert_openstack_deja_dup_config_location_cloud_callback, self);
	_g_object_unref0 (_tmp7_);
	_g_object_unref0 (_tmp3_);
	_g_object_unref0 (_tmp1_);
}


static Block1Data* block1_data_ref (Block1Data* _data1_) {
	g_atomic_int_inc (&_data1_->_ref_count_);
	return _data1_;
}


static void block1_data_unref (void * _userdata_) {
	Block1Data* _data1_;
	_data1_ = (Block1Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
		DejaDupConfigLocation* self;
		self = _data1_->self;
		_g_object_unref0 (self);
		g_slice_free (Block1Data, _data1_);
	}
}


static void ____lambda6_ (Block1Data* _data1_) {
	DejaDupConfigLocation* self;
	DejaDupConfigLocationCloudCallback _tmp0_ = NULL;
	void* _tmp0__target = NULL;
	self = _data1_->self;
	_tmp0_ = _data1_->cb;
	_tmp0__target = _data1_->cb_target;
	_tmp0_ (_tmp0__target);
	deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) self, NULL, NULL);
}


static void _____lambda6__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	____lambda6_ (self);
}


static void deja_dup_config_location_insert_cloud_if_available (DejaDupConfigLocation* self, const gchar* id, DejaDupChecker* checker, GIcon* icon, const gchar* name, GtkWidget* w, gint* index, DejaDupConfigLocationCloudCallback cb, void* cb_target) {
	Block1Data* _data1_;
	DejaDupConfigLocationCloudCallback _tmp0_ = NULL;
	void* _tmp0__target = NULL;
	gchar* backend = NULL;
	gchar* _tmp1_ = NULL;
	gboolean _tmp2_ = FALSE;
	const gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (id != NULL);
	g_return_if_fail (icon != NULL);
	g_return_if_fail (name != NULL);
	_data1_ = g_slice_new0 (Block1Data);
	_data1_->_ref_count_ = 1;
	_data1_->self = g_object_ref (self);
	_tmp0_ = cb;
	_tmp0__target = cb_target;
	_data1_->cb = _tmp0_;
	_data1_->cb_target = _tmp0__target;
	_tmp1_ = deja_dup_backend_get_default_type ();
	backend = _tmp1_;
	_tmp3_ = backend;
	_tmp4_ = id;
	if (g_strcmp0 (_tmp3_, _tmp4_) == 0) {
		_tmp2_ = TRUE;
	} else {
		gboolean _tmp5_ = FALSE;
		gboolean _tmp6_ = FALSE;
		DejaDupChecker* _tmp7_ = NULL;
		_tmp7_ = checker;
		if (_tmp7_ != NULL) {
			DejaDupChecker* _tmp8_ = NULL;
			gboolean _tmp9_ = FALSE;
			gboolean _tmp10_ = FALSE;
			_tmp8_ = checker;
			_tmp9_ = deja_dup_checker_get_complete (_tmp8_);
			_tmp10_ = _tmp9_;
			_tmp6_ = _tmp10_;
		} else {
			_tmp6_ = FALSE;
		}
		if (_tmp6_) {
			DejaDupChecker* _tmp11_ = NULL;
			gboolean _tmp12_ = FALSE;
			gboolean _tmp13_ = FALSE;
			_tmp11_ = checker;
			_tmp12_ = deja_dup_checker_get_available (_tmp11_);
			_tmp13_ = _tmp12_;
			_tmp5_ = _tmp13_;
		} else {
			_tmp5_ = FALSE;
		}
		_tmp2_ = _tmp5_;
	}
	if (_tmp2_) {
		GIcon* _tmp14_ = NULL;
		const gchar* _tmp15_ = NULL;
		GtkWidget* _tmp16_ = NULL;
		gint _tmp17_ = 0;
		gint _tmp18_ = 0;
		_tmp14_ = icon;
		_tmp15_ = name;
		_tmp16_ = w;
		_tmp17_ = deja_dup_config_location_add_entry (self, _tmp14_, _tmp15_, DEJA_DUP_CONFIG_LOCATION_GROUP_CLOUD, _tmp16_, NULL);
		*index = _tmp17_;
		_tmp18_ = self->priv->index_cloud_sep;
		if (_tmp18_ == -2) {
			gint _tmp19_ = 0;
			_tmp19_ = deja_dup_config_location_add_separator (self, DEJA_DUP_CONFIG_LOCATION_GROUP_CLOUD_SEP);
			self->priv->index_cloud_sep = _tmp19_;
		}
	} else {
		gboolean _tmp20_ = FALSE;
		DejaDupChecker* _tmp21_ = NULL;
		_tmp21_ = checker;
		if (_tmp21_ != NULL) {
			DejaDupChecker* _tmp22_ = NULL;
			gboolean _tmp23_ = FALSE;
			gboolean _tmp24_ = FALSE;
			_tmp22_ = checker;
			_tmp23_ = deja_dup_checker_get_complete (_tmp22_);
			_tmp24_ = _tmp23_;
			_tmp20_ = !_tmp24_;
		} else {
			_tmp20_ = FALSE;
		}
		if (_tmp20_) {
			DejaDupChecker* _tmp25_ = NULL;
			_tmp25_ = checker;
			g_signal_connect_data ((GObject*) _tmp25_, "notify::complete", (GCallback) _____lambda6__g_object_notify, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
		}
	}
	_g_free0 (backend);
	block1_data_unref (_data1_);
	_data1_ = NULL;
}


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


static gboolean deja_dup_config_location_is_allowed_volume (DejaDupConfigLocation* self, GIcon* icon_in) {
	gboolean result = FALSE;
	GEmblemedIcon* icon_emblemed = NULL;
	GIcon* _tmp0_ = NULL;
	GEmblemedIcon* _tmp1_ = NULL;
	GEmblemedIcon* _tmp2_ = NULL;
	GThemedIcon* icon = NULL;
	GIcon* _tmp5_ = NULL;
	GThemedIcon* _tmp6_ = NULL;
	GThemedIcon* _tmp7_ = NULL;
	gchar** names = NULL;
	GThemedIcon* _tmp8_ = NULL;
	gchar** _tmp9_ = NULL;
	gchar** _tmp10_ = NULL;
	gint names_length1 = 0;
	gint _names_size_ = 0;
	gchar** _tmp11_ = NULL;
	gint _tmp11__length1 = 0;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (icon_in != NULL, FALSE);
	_tmp0_ = icon_in;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, g_emblemed_icon_get_type ()) ? ((GEmblemedIcon*) _tmp0_) : NULL);
	icon_emblemed = _tmp1_;
	_tmp2_ = icon_emblemed;
	if (_tmp2_ != NULL) {
		GEmblemedIcon* _tmp3_ = NULL;
		GIcon* _tmp4_ = NULL;
		_tmp3_ = icon_emblemed;
		_tmp4_ = g_emblemed_icon_get_icon (_tmp3_);
		icon_in = _tmp4_;
	}
	_tmp5_ = icon_in;
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, g_themed_icon_get_type ()) ? ((GThemedIcon*) _tmp5_) : NULL);
	icon = _tmp6_;
	_tmp7_ = icon;
	if (_tmp7_ == NULL) {
		result = FALSE;
		_g_object_unref0 (icon);
		_g_object_unref0 (icon_emblemed);
		return result;
	}
	_tmp8_ = icon;
	_tmp10_ = _tmp9_ = g_themed_icon_get_names (_tmp8_);
	names = _tmp10_;
	names_length1 = _vala_array_length (_tmp9_);
	_names_size_ = names_length1;
	_tmp11_ = names;
	_tmp11__length1 = names_length1;
	{
		gchar** name_collection = NULL;
		gint name_collection_length1 = 0;
		gint _name_collection_size_ = 0;
		gint name_it = 0;
		name_collection = _tmp11_;
		name_collection_length1 = _tmp11__length1;
		for (name_it = 0; name_it < _tmp11__length1; name_it = name_it + 1) {
			const gchar* name = NULL;
			name = name_collection[name_it];
			{
				const gchar* _tmp12_ = NULL;
				const gchar* _tmp13_ = NULL;
				GQuark _tmp15_ = 0U;
				static GQuark _tmp14_label0 = 0;
				static GQuark _tmp14_label1 = 0;
				static GQuark _tmp14_label2 = 0;
				static GQuark _tmp14_label3 = 0;
				static GQuark _tmp14_label4 = 0;
				_tmp12_ = name;
				_tmp13_ = _tmp12_;
				_tmp15_ = (NULL == _tmp13_) ? 0 : g_quark_from_string (_tmp13_);
				if (((((_tmp15_ == ((0 != _tmp14_label0) ? _tmp14_label0 : (_tmp14_label0 = g_quark_from_static_string ("drive-harddisk")))) || (_tmp15_ == ((0 != _tmp14_label1) ? _tmp14_label1 : (_tmp14_label1 = g_quark_from_static_string ("drive-removable-media"))))) || (_tmp15_ == ((0 != _tmp14_label2) ? _tmp14_label2 : (_tmp14_label2 = g_quark_from_static_string ("media-flash"))))) || (_tmp15_ == ((0 != _tmp14_label3) ? _tmp14_label3 : (_tmp14_label3 = g_quark_from_static_string ("media-floppy"))))) || (_tmp15_ == ((0 != _tmp14_label4) ? _tmp14_label4 : (_tmp14_label4 = g_quark_from_static_string ("media-tape"))))) {
					switch (0) {
						default:
						{
							result = TRUE;
							_g_object_unref0 (icon);
							_g_object_unref0 (icon_emblemed);
							return result;
						}
					}
				}
			}
		}
	}
	result = FALSE;
	_g_object_unref0 (icon);
	_g_object_unref0 (icon_emblemed);
	return result;
}


static gboolean deja_dup_config_location_is_separator (DejaDupConfigLocation* self, GtkTreeModel* model, GtkTreeIter* iter) {
	gboolean result = FALSE;
	GValue text_var = {0};
	GtkTreeModel* _tmp0_ = NULL;
	GtkTreeIter _tmp1_ = {0};
	GValue _tmp2_ = {0};
	const gchar* text = NULL;
	const gchar* _tmp3_ = NULL;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (model != NULL, FALSE);
	g_return_val_if_fail (iter != NULL, FALSE);
	_tmp0_ = model;
	_tmp1_ = *iter;
	gtk_tree_model_get_value (_tmp0_, &_tmp1_, DEJA_DUP_CONFIG_LOCATION_COL_TEXT, &_tmp2_);
	G_IS_VALUE (&text_var) ? (g_value_unset (&text_var), NULL) : NULL;
	text_var = _tmp2_;
	_tmp3_ = g_value_get_string (&text_var);
	text = _tmp3_;
	result = text == NULL;
	G_IS_VALUE (&text_var) ? (g_value_unset (&text_var), NULL) : NULL;
	return result;
}


static gint deja_dup_config_location_next_index (DejaDupConfigLocation* self) {
	gint result = 0;
	GtkListStore* _tmp0_ = NULL;
	gint _tmp1_ = 0;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->store;
	_tmp1_ = gtk_tree_model_iter_n_children ((GtkTreeModel*) _tmp0_, NULL);
	result = _tmp1_;
	return result;
}


static gint deja_dup_config_location_add_entry (DejaDupConfigLocation* self, GIcon* icon, const gchar* label, DejaDupConfigLocationGroup category, GtkWidget* page, const gchar* uuid) {
	gint result = 0;
	gint index = 0;
	gint _tmp0_ = 0;
	GtkTreeIter iter = {0};
	GtkListStore* _tmp1_ = NULL;
	gint _tmp2_ = 0;
	GIcon* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	DejaDupConfigLocationGroup _tmp5_ = 0;
	const gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	const gchar* _tmp9_ = NULL;
	GtkWidget* _tmp10_ = NULL;
	gint _tmp11_ = 0;
	GtkTreeIter _tmp12_ = {0};
	GtkWidget* _tmp13_ = NULL;
	g_return_val_if_fail (self != NULL, 0);
	g_return_val_if_fail (label != NULL, 0);
	_tmp0_ = deja_dup_config_location_next_index (self);
	index = _tmp0_;
	_tmp1_ = self->priv->store;
	_tmp2_ = index;
	_tmp3_ = icon;
	_tmp4_ = label;
	_tmp5_ = category;
	_tmp6_ = label;
	_tmp7_ = g_strdup_printf ("%d%s", (gint) _tmp5_, _tmp6_);
	_tmp8_ = _tmp7_;
	_tmp9_ = uuid;
	_tmp10_ = page;
	_tmp11_ = index;
	gtk_list_store_insert_with_values (_tmp1_, &_tmp12_, _tmp2_, DEJA_DUP_CONFIG_LOCATION_COL_ICON, _tmp3_, DEJA_DUP_CONFIG_LOCATION_COL_TEXT, _tmp4_, DEJA_DUP_CONFIG_LOCATION_COL_SORT, _tmp8_, DEJA_DUP_CONFIG_LOCATION_COL_UUID, _tmp9_, DEJA_DUP_CONFIG_LOCATION_COL_PAGE, _tmp10_, DEJA_DUP_CONFIG_LOCATION_COL_INDEX, _tmp11_, -1);
	iter = _tmp12_;
	_g_free0 (_tmp8_);
	_tmp13_ = page;
	if (_tmp13_ != NULL) {
		GtkRequisition pagereq = {0};
		GtkWidget* _tmp14_ = NULL;
		GtkWidget* _tmp15_ = NULL;
		GtkRequisition _tmp16_ = {0};
		gint _tmp17_ = 0;
		GtkRequisition _tmp18_ = {0};
		gint _tmp19_ = 0;
		gint _tmp20_ = 0;
		gint _tmp21_ = 0;
		GtkRequisition _tmp22_ = {0};
		gint _tmp23_ = 0;
		gint _tmp24_ = 0;
		_tmp14_ = page;
		gtk_widget_show_all (_tmp14_);
		_tmp15_ = page;
		gtk_widget_get_preferred_size (_tmp15_, NULL, &_tmp16_);
		pagereq = _tmp16_;
		_tmp17_ = self->priv->extras_max_width;
		_tmp18_ = pagereq;
		_tmp19_ = _tmp18_.width;
		_tmp20_ = MAX (_tmp17_, _tmp19_);
		self->priv->extras_max_width = _tmp20_;
		_tmp21_ = self->priv->extras_max_height;
		_tmp22_ = pagereq;
		_tmp23_ = _tmp22_.height;
		_tmp24_ = MAX (_tmp21_, _tmp23_);
		self->priv->extras_max_height = _tmp24_;
	}
	result = index;
	return result;
}


static gint deja_dup_config_location_add_separator (DejaDupConfigLocation* self, DejaDupConfigLocationGroup category) {
	gint result = 0;
	gint index = 0;
	GtkListStore* _tmp0_ = NULL;
	gint _tmp1_ = 0;
	GtkTreeIter iter = {0};
	GtkListStore* _tmp2_ = NULL;
	DejaDupConfigLocationGroup _tmp3_ = 0;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	GtkTreeIter _tmp6_ = {0};
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->store;
	_tmp1_ = gtk_tree_model_iter_n_children ((GtkTreeModel*) _tmp0_, NULL);
	index = _tmp1_;
	_tmp2_ = self->priv->store;
	_tmp3_ = category;
	_tmp4_ = g_strdup_printf ("%d", (gint) _tmp3_);
	_tmp5_ = _tmp4_;
	gtk_list_store_insert_with_values (_tmp2_, &_tmp6_, index, DEJA_DUP_CONFIG_LOCATION_COL_SORT, _tmp5_, DEJA_DUP_CONFIG_LOCATION_COL_TEXT, NULL, DEJA_DUP_CONFIG_LOCATION_COL_INDEX, index, -1);
	iter = _tmp6_;
	_g_free0 (_tmp5_);
	result = index;
	return result;
}


static gboolean deja_dup_config_location_lookup_uuid (DejaDupConfigLocation* self, const gchar* uuid, GtkTreeIter* iter_in) {
	GtkTreeIter _vala_iter_in = {0};
	gboolean result = FALSE;
	GtkTreeIter iter = {0};
	GtkListStore* _tmp0_ = NULL;
	GtkTreeIter _tmp1_ = {0};
	gboolean _tmp2_ = FALSE;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (uuid != NULL, FALSE);
	memset (&_vala_iter_in, 0, sizeof (GtkTreeIter));
	_tmp0_ = self->priv->store;
	_tmp2_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp0_, &_tmp1_);
	iter = _tmp1_;
	if (_tmp2_) {
		{
			gboolean _tmp3_ = FALSE;
			_tmp3_ = TRUE;
			while (TRUE) {
				gchar* iter_uuid = NULL;
				GtkListStore* _tmp6_ = NULL;
				GtkTreeIter _tmp7_ = {0};
				const gchar* _tmp8_ = NULL;
				const gchar* _tmp9_ = NULL;
				if (!_tmp3_) {
					GtkListStore* _tmp4_ = NULL;
					gboolean _tmp5_ = FALSE;
					_tmp4_ = self->priv->store;
					_tmp5_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp4_, &iter);
					if (!_tmp5_) {
						break;
					}
				}
				_tmp3_ = FALSE;
				_tmp6_ = self->priv->store;
				_tmp7_ = iter;
				gtk_tree_model_get ((GtkTreeModel*) _tmp6_, &_tmp7_, DEJA_DUP_CONFIG_LOCATION_COL_UUID, &iter_uuid, -1);
				_tmp8_ = iter_uuid;
				_tmp9_ = uuid;
				if (g_strcmp0 (_tmp8_, _tmp9_) == 0) {
					GtkTreeIter _tmp10_ = {0};
					_tmp10_ = iter;
					_vala_iter_in = _tmp10_;
					result = TRUE;
					_g_free0 (iter_uuid);
					if (iter_in) {
						*iter_in = _vala_iter_in;
					}
					return result;
				}
				_g_free0 (iter_uuid);
			}
		}
	}
	result = FALSE;
	if (iter_in) {
		*iter_in = _vala_iter_in;
	}
	return result;
}


static void deja_dup_config_location_add_volume (DejaDupConfigLocation* self, GVolumeMonitor* monitor, GVolume* v) {
	GVolume* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	GVolume* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	GVolume* _tmp6_ = NULL;
	GIcon* _tmp7_ = NULL;
	GIcon* _tmp8_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (monitor != NULL);
	g_return_if_fail (v != NULL);
	_tmp0_ = v;
	_tmp1_ = g_volume_get_identifier (_tmp0_, G_VOLUME_IDENTIFIER_KIND_UUID);
	_tmp2_ = _tmp1_;
	_tmp3_ = v;
	_tmp4_ = g_volume_get_name (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = v;
	_tmp7_ = g_volume_get_icon (_tmp6_);
	_tmp8_ = _tmp7_;
	deja_dup_config_location_add_volume_full (self, _tmp2_, _tmp5_, _tmp8_);
	_g_object_unref0 (_tmp8_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
}


static void deja_dup_config_location_add_volume_full (DejaDupConfigLocation* self, const gchar* uuid, const gchar* name, GIcon* icon) {
	GtkTreeIter iter = {0};
	const gchar* _tmp0_ = NULL;
	GtkTreeIter _tmp1_ = {0};
	gboolean _tmp2_ = FALSE;
	GIcon* _tmp6_ = NULL;
	gboolean _tmp7_ = FALSE;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uuid != NULL);
	g_return_if_fail (name != NULL);
	g_return_if_fail (icon != NULL);
	_tmp0_ = uuid;
	_tmp2_ = deja_dup_config_location_lookup_uuid (self, _tmp0_, &_tmp1_);
	iter = _tmp1_;
	if (_tmp2_) {
		const gchar* _tmp3_ = NULL;
		const gchar* _tmp4_ = NULL;
		GIcon* _tmp5_ = NULL;
		_tmp3_ = uuid;
		_tmp4_ = name;
		_tmp5_ = icon;
		deja_dup_config_location_update_volume_full (self, _tmp3_, _tmp4_, _tmp5_);
		return;
	}
	_tmp6_ = icon;
	_tmp7_ = deja_dup_config_location_is_allowed_volume (self, _tmp6_);
	if (_tmp7_) {
		gint _tmp8_ = 0;
		GIcon* _tmp10_ = NULL;
		const gchar* _tmp11_ = NULL;
		GtkSizeGroup* _tmp12_ = NULL;
		DejaDupConfigLocationVolume* _tmp13_ = NULL;
		DejaDupConfigLocationVolume* _tmp14_ = NULL;
		const gchar* _tmp15_ = NULL;
		_tmp8_ = self->priv->num_volumes;
		self->priv->num_volumes = _tmp8_ + 1;
		if (_tmp8_ == 0) {
			gint _tmp9_ = 0;
			_tmp9_ = deja_dup_config_location_add_separator (self, DEJA_DUP_CONFIG_LOCATION_GROUP_VOLUMES_SEP);
			self->priv->index_vol_sep = _tmp9_;
		}
		_tmp10_ = icon;
		_tmp11_ = name;
		_tmp12_ = self->priv->_label_sizes;
		_tmp13_ = deja_dup_config_location_volume_new (_tmp12_);
		g_object_ref_sink (_tmp13_);
		_tmp14_ = _tmp13_;
		_tmp15_ = uuid;
		deja_dup_config_location_add_entry (self, _tmp10_, _tmp11_, DEJA_DUP_CONFIG_LOCATION_GROUP_VOLUMES, (GtkWidget*) _tmp14_, _tmp15_);
		_g_object_unref0 (_tmp14_);
	}
}


static void deja_dup_config_location_update_volume (DejaDupConfigLocation* self, GVolumeMonitor* monitor, GVolume* v) {
	GVolume* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	GVolume* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	GVolume* _tmp6_ = NULL;
	GIcon* _tmp7_ = NULL;
	GIcon* _tmp8_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (monitor != NULL);
	g_return_if_fail (v != NULL);
	_tmp0_ = v;
	_tmp1_ = g_volume_get_identifier (_tmp0_, G_VOLUME_IDENTIFIER_KIND_UUID);
	_tmp2_ = _tmp1_;
	_tmp3_ = v;
	_tmp4_ = g_volume_get_name (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = v;
	_tmp7_ = g_volume_get_icon (_tmp6_);
	_tmp8_ = _tmp7_;
	deja_dup_config_location_update_volume_full (self, _tmp2_, _tmp5_, _tmp8_);
	_g_object_unref0 (_tmp8_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
}


static void deja_dup_config_location_update_volume_full (DejaDupConfigLocation* self, const gchar* uuid, const gchar* name, GIcon* icon) {
	GtkTreeIter iter = {0};
	const gchar* _tmp0_ = NULL;
	GtkTreeIter _tmp1_ = {0};
	gboolean _tmp2_ = FALSE;
	GtkListStore* _tmp3_ = NULL;
	GtkTreeIter _tmp4_ = {0};
	GIcon* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	const gchar* _tmp7_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uuid != NULL);
	g_return_if_fail (name != NULL);
	g_return_if_fail (icon != NULL);
	_tmp0_ = uuid;
	_tmp2_ = deja_dup_config_location_lookup_uuid (self, _tmp0_, &_tmp1_);
	iter = _tmp1_;
	if (!_tmp2_) {
		return;
	}
	_tmp3_ = self->priv->store;
	_tmp4_ = iter;
	_tmp5_ = icon;
	_tmp6_ = name;
	_tmp7_ = uuid;
	gtk_list_store_set (_tmp3_, &_tmp4_, DEJA_DUP_CONFIG_LOCATION_COL_ICON, _tmp5_, DEJA_DUP_CONFIG_LOCATION_COL_TEXT, _tmp6_, DEJA_DUP_CONFIG_LOCATION_COL_UUID, _tmp7_, -1);
}


static void deja_dup_config_location_remove_volume (DejaDupConfigLocation* self, GVolumeMonitor* monitor, GVolume* v) {
	GVolume* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (monitor != NULL);
	g_return_if_fail (v != NULL);
	_tmp0_ = v;
	_tmp1_ = g_volume_get_identifier (_tmp0_, G_VOLUME_IDENTIFIER_KIND_UUID);
	_tmp2_ = _tmp1_;
	deja_dup_config_location_remove_volume_full (self, _tmp2_);
	_g_free0 (_tmp2_);
}


static void deja_dup_config_location_remove_volume_full (DejaDupConfigLocation* self, const gchar* uuid) {
	GtkTreeIter iter = {0};
	const gchar* _tmp0_ = NULL;
	GtkTreeIter _tmp1_ = {0};
	gboolean _tmp2_ = FALSE;
	DejaDupFilteredSettings* fsettings = NULL;
	DejaDupFilteredSettings* _tmp3_ = NULL;
	gchar* saved_uuid = NULL;
	DejaDupFilteredSettings* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	const gchar* _tmp7_ = NULL;
	GtkListStore* _tmp8_ = NULL;
	GtkTreeIter _tmp9_ = {0};
	gint _tmp10_ = 0;
	gint _tmp11_ = 0;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uuid != NULL);
	_tmp0_ = uuid;
	_tmp2_ = deja_dup_config_location_lookup_uuid (self, _tmp0_, &_tmp1_);
	iter = _tmp1_;
	if (!_tmp2_) {
		return;
	}
	_tmp3_ = deja_dup_get_settings (DEJA_DUP_FILE_ROOT);
	fsettings = _tmp3_;
	_tmp4_ = fsettings;
	_tmp5_ = g_settings_get_string ((GSettings*) _tmp4_, DEJA_DUP_FILE_UUID_KEY);
	saved_uuid = _tmp5_;
	_tmp6_ = uuid;
	_tmp7_ = saved_uuid;
	if (g_strcmp0 (_tmp6_, _tmp7_) == 0) {
		_g_free0 (saved_uuid);
		_g_object_unref0 (fsettings);
		return;
	}
	_tmp8_ = self->priv->store;
	_tmp9_ = iter;
	gtk_list_store_remove (_tmp8_, &_tmp9_);
	_tmp10_ = self->priv->num_volumes;
	self->priv->num_volumes = _tmp10_ - 1;
	_tmp11_ = self->priv->num_volumes;
	if (_tmp11_ == 0) {
		GtkTreeIter sep_iter = {0};
		GtkListStore* _tmp12_ = NULL;
		gint _tmp13_ = 0;
		gchar* _tmp14_ = NULL;
		gchar* _tmp15_ = NULL;
		GtkTreeIter _tmp16_ = {0};
		gboolean _tmp17_ = FALSE;
		gboolean _tmp18_ = FALSE;
		_tmp12_ = self->priv->store;
		_tmp13_ = self->priv->index_vol_sep;
		_tmp14_ = g_strdup_printf ("%i", _tmp13_);
		_tmp15_ = _tmp14_;
		_tmp17_ = gtk_tree_model_get_iter_from_string ((GtkTreeModel*) _tmp12_, &_tmp16_, _tmp15_);
		sep_iter = _tmp16_;
		_tmp18_ = _tmp17_;
		_g_free0 (_tmp15_);
		if (_tmp18_) {
			GtkListStore* _tmp19_ = NULL;
			GtkTreeIter _tmp20_ = {0};
			_tmp19_ = self->priv->store;
			_tmp20_ = sep_iter;
			gtk_list_store_remove (_tmp19_, &_tmp20_);
			self->priv->index_vol_sep = -2;
		}
	}
	_g_free0 (saved_uuid);
	_g_object_unref0 (fsettings);
}


static gboolean deja_dup_config_location_update_saved_volume (DejaDupConfigLocation* self) {
	gboolean result = FALSE;
	DejaDupFilteredSettings* fsettings = NULL;
	DejaDupFilteredSettings* _tmp0_ = NULL;
	gchar* uuid = NULL;
	DejaDupFilteredSettings* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = deja_dup_get_settings (DEJA_DUP_FILE_ROOT);
	fsettings = _tmp0_;
	_tmp1_ = fsettings;
	_tmp2_ = g_settings_get_string ((GSettings*) _tmp1_, DEJA_DUP_FILE_UUID_KEY);
	uuid = _tmp2_;
	_tmp3_ = uuid;
	if (g_strcmp0 (_tmp3_, "") != 0) {
		GIcon* vol_icon = NULL;
		gchar* vol_name = NULL;
		DejaDupFilteredSettings* _tmp13_ = NULL;
		gchar* _tmp14_ = NULL;
		const gchar* _tmp15_ = NULL;
		const gchar* _tmp16_ = NULL;
		GIcon* _tmp17_ = NULL;
		vol_icon = NULL;
		{
			GIcon* _tmp4_ = NULL;
			DejaDupFilteredSettings* _tmp5_ = NULL;
			gchar* _tmp6_ = NULL;
			gchar* _tmp7_ = NULL;
			GIcon* _tmp8_ = NULL;
			GIcon* _tmp9_ = NULL;
			GIcon* _tmp10_ = NULL;
			_tmp5_ = fsettings;
			_tmp6_ = g_settings_get_string ((GSettings*) _tmp5_, DEJA_DUP_FILE_ICON_KEY);
			_tmp7_ = _tmp6_;
			_tmp8_ = g_icon_new_for_string (_tmp7_, &_inner_error_);
			_tmp9_ = _tmp8_;
			_g_free0 (_tmp7_);
			_tmp4_ = _tmp9_;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				goto __catch2_g_error;
			}
			_tmp10_ = _tmp4_;
			_tmp4_ = NULL;
			_g_object_unref0 (vol_icon);
			vol_icon = _tmp10_;
			_g_object_unref0 (_tmp4_);
		}
		goto __finally2;
		__catch2_g_error:
		{
			GError* e = NULL;
			GError* _tmp11_ = NULL;
			const gchar* _tmp12_ = NULL;
			e = _inner_error_;
			_inner_error_ = NULL;
			_tmp11_ = e;
			_tmp12_ = _tmp11_->message;
			g_warning ("ConfigLocation.vala:421: %s\n", _tmp12_);
			_g_error_free0 (e);
		}
		__finally2:
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			_g_object_unref0 (vol_icon);
			_g_free0 (uuid);
			_g_object_unref0 (fsettings);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return FALSE;
		}
		_tmp13_ = fsettings;
		_tmp14_ = g_settings_get_string ((GSettings*) _tmp13_, DEJA_DUP_FILE_SHORT_NAME_KEY);
		vol_name = _tmp14_;
		_tmp15_ = uuid;
		_tmp16_ = vol_name;
		_tmp17_ = vol_icon;
		deja_dup_config_location_add_volume_full (self, _tmp15_, _tmp16_, _tmp17_);
		result = TRUE;
		_g_free0 (vol_name);
		_g_object_unref0 (vol_icon);
		_g_free0 (uuid);
		_g_object_unref0 (fsettings);
		return result;
	} else {
		result = FALSE;
		_g_free0 (uuid);
		_g_object_unref0 (fsettings);
		return result;
	}
	_g_free0 (uuid);
	_g_object_unref0 (fsettings);
}


static void deja_dup_config_location_set_active_iter (DejaDupConfigLocation* self, GtkTreeIter* iter) {
	GtkTreeIter iter0 = {0};
	GtkTreeModelSort* _tmp0_ = NULL;
	GtkTreeIter _tmp1_ = {0};
	GtkTreeIter _tmp2_ = {0};
	GtkComboBox* _tmp3_ = NULL;
	GtkTreeIter _tmp4_ = {0};
	g_return_if_fail (self != NULL);
	g_return_if_fail (iter != NULL);
	_tmp0_ = self->priv->sort_model;
	_tmp1_ = *iter;
	gtk_tree_model_sort_convert_child_iter_to_iter (_tmp0_, &_tmp2_, &_tmp1_);
	iter0 = _tmp2_;
	_tmp3_ = self->priv->button;
	_tmp4_ = iter0;
	gtk_combo_box_set_active_iter (_tmp3_, &_tmp4_);
}


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


static void deja_dup_config_location_real_set_from_config (DejaDupConfigWidget* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	DejaDupConfigLocation * self;
	DejaDupConfigLocationSetFromConfigData* _data_;
	DejaDupConfigLocation* _tmp0_ = NULL;
	self = (DejaDupConfigLocation*) base;
	_data_ = g_slice_new0 (DejaDupConfigLocationSetFromConfigData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, deja_dup_config_location_real_set_from_config);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, deja_dup_config_location_real_set_from_config_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	deja_dup_config_location_real_set_from_config_co (_data_);
}


static void deja_dup_config_location_real_set_from_config_finish (DejaDupConfigWidget* base, GAsyncResult* _res_) {
	DejaDupConfigLocationSetFromConfigData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static gboolean deja_dup_config_location_real_set_from_config_co (DejaDupConfigLocationSetFromConfigData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->index = -1;
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = deja_dup_backend_get_default_type ();
	_data_->backend = _data_->_tmp0_;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = _data_->backend;
	if (g_strcmp0 (_data_->_tmp1_, "s3") == 0) {
		_data_->_tmp2_ = 0;
		_data_->_tmp2_ = _data_->self->priv->index_s3;
		_data_->index = _data_->_tmp2_;
	} else {
		_data_->_tmp3_ = NULL;
		_data_->_tmp3_ = _data_->backend;
		if (g_strcmp0 (_data_->_tmp3_, "gcs") == 0) {
			_data_->_tmp4_ = 0;
			_data_->_tmp4_ = _data_->self->priv->index_gcs;
			_data_->index = _data_->_tmp4_;
		} else {
			_data_->_tmp5_ = NULL;
			_data_->_tmp5_ = _data_->backend;
			if (g_strcmp0 (_data_->_tmp5_, "gdrive") == 0) {
				_data_->_tmp6_ = 0;
				_data_->_tmp6_ = _data_->self->priv->index_gdrive;
				_data_->index = _data_->_tmp6_;
			} else {
				_data_->_tmp7_ = NULL;
				_data_->_tmp7_ = _data_->backend;
				if (g_strcmp0 (_data_->_tmp7_, "rackspace") == 0) {
					_data_->_tmp8_ = 0;
					_data_->_tmp8_ = _data_->self->priv->index_rackspace;
					_data_->index = _data_->_tmp8_;
				} else {
					_data_->_tmp9_ = NULL;
					_data_->_tmp9_ = _data_->backend;
					if (g_strcmp0 (_data_->_tmp9_, "openstack") == 0) {
						_data_->_tmp10_ = 0;
						_data_->_tmp10_ = _data_->self->priv->index_openstack;
						_data_->index = _data_->_tmp10_;
					} else {
						_data_->_tmp11_ = NULL;
						_data_->_tmp11_ = _data_->backend;
						if (g_strcmp0 (_data_->_tmp11_, "u1") == 0) {
							_data_->_tmp12_ = 0;
							_data_->_tmp12_ = _data_->self->priv->index_u1;
							_data_->index = _data_->_tmp12_;
						} else {
							_data_->_tmp13_ = NULL;
							_data_->_tmp13_ = _data_->backend;
							if (g_strcmp0 (_data_->_tmp13_, "file") == 0) {
								_data_->_tmp14_ = NULL;
								_data_->_tmp14_ = deja_dup_get_settings (DEJA_DUP_FILE_ROOT);
								_data_->fsettings = _data_->_tmp14_;
								_data_->_tmp15_ = NULL;
								_data_->_tmp15_ = _data_->fsettings;
								_data_->_tmp16_ = NULL;
								_data_->_tmp16_ = g_settings_get_string ((GSettings*) _data_->_tmp15_, DEJA_DUP_FILE_TYPE_KEY);
								_data_->_tmp17_ = NULL;
								_data_->_tmp17_ = _data_->_tmp16_;
								_data_->_tmp18_ = FALSE;
								_data_->_tmp18_ = g_strcmp0 (_data_->_tmp17_, "volume") == 0;
								_g_free0 (_data_->_tmp17_);
								if (_data_->_tmp18_) {
									_data_->_tmp19_ = FALSE;
									_data_->_tmp19_ = deja_dup_config_location_update_saved_volume (_data_->self);
									if (_data_->_tmp19_) {
										_data_->_tmp20_ = NULL;
										_data_->_tmp20_ = _data_->fsettings;
										_data_->_tmp21_ = NULL;
										_data_->_tmp21_ = g_settings_get_string ((GSettings*) _data_->_tmp20_, DEJA_DUP_FILE_UUID_KEY);
										_data_->uuid = _data_->_tmp21_;
										_data_->_tmp22_ = NULL;
										_data_->_tmp22_ = _data_->uuid;
										memset (&_data_->_tmp23_, 0, sizeof (GtkTreeIter));
										_data_->_tmp24_ = FALSE;
										_data_->_tmp24_ = deja_dup_config_location_lookup_uuid (_data_->self, _data_->_tmp22_, &_data_->_tmp23_);
										_data_->saved_iter = _data_->_tmp23_;
										if (_data_->_tmp24_) {
											memset (&_data_->_tmp25_, 0, sizeof (GtkTreeIter));
											_data_->_tmp25_ = _data_->saved_iter;
											deja_dup_config_location_set_active_iter (_data_->self, &_data_->_tmp25_);
											_g_free0 (_data_->uuid);
											_g_object_unref0 (_data_->fsettings);
											_g_free0 (_data_->backend);
											if (_data_->_state_ == 0) {
												g_simple_async_result_complete_in_idle (_data_->_async_result);
											} else {
												g_simple_async_result_complete (_data_->_async_result);
											}
											g_object_unref (_data_->_async_result);
											return FALSE;
										}
										_g_free0 (_data_->uuid);
									}
								} else {
									static GQuark _tmp40_label0 = 0;
									static GQuark _tmp40_label1 = 0;
									static GQuark _tmp40_label2 = 0;
									static GQuark _tmp40_label3 = 0;
									static GQuark _tmp40_label4 = 0;
									static GQuark _tmp40_label5 = 0;
									static GQuark _tmp40_label6 = 0;
									_data_->_tmp26_ = NULL;
									_data_->_tmp26_ = _data_->self->priv->button;
									memset (&_data_->_tmp27_, 0, sizeof (GtkTreeIter));
									_data_->_tmp28_ = FALSE;
									_data_->_tmp28_ = gtk_combo_box_get_active_iter (_data_->_tmp26_, &_data_->_tmp27_);
									_data_->iter0 = _data_->_tmp27_;
									if (!_data_->_tmp28_) {
										_g_object_unref0 (_data_->fsettings);
										_g_free0 (_data_->backend);
										if (_data_->_state_ == 0) {
											g_simple_async_result_complete_in_idle (_data_->_async_result);
										} else {
											g_simple_async_result_complete (_data_->_async_result);
										}
										g_object_unref (_data_->_async_result);
										return FALSE;
									}
									_data_->_tmp29_ = NULL;
									_data_->_tmp29_ = _data_->self->priv->sort_model;
									memset (&_data_->_tmp30_, 0, sizeof (GtkTreeIter));
									_data_->_tmp30_ = _data_->iter0;
									memset (&_data_->_tmp31_, 0, sizeof (GtkTreeIter));
									gtk_tree_model_sort_convert_iter_to_child_iter (_data_->_tmp29_, &_data_->_tmp31_, &_data_->_tmp30_);
									_data_->inner_iter = _data_->_tmp31_;
									_data_->_tmp32_ = NULL;
									_data_->_tmp32_ = _data_->self->priv->store;
									memset (&_data_->_tmp33_, 0, sizeof (GtkTreeIter));
									_data_->_tmp33_ = _data_->inner_iter;
									gtk_tree_model_get ((GtkTreeModel*) _data_->_tmp32_, &_data_->_tmp33_, DEJA_DUP_CONFIG_LOCATION_COL_INDEX, &_data_->cur_index, -1);
									_data_->_tmp34_ = 0;
									_data_->_tmp34_ = _data_->cur_index;
									_data_->_tmp35_ = 0;
									_data_->_tmp35_ = _data_->self->priv->index_custom;
									if (_data_->_tmp34_ == _data_->_tmp35_) {
										_g_object_unref0 (_data_->fsettings);
										_g_free0 (_data_->backend);
										if (_data_->_state_ == 0) {
											g_simple_async_result_complete_in_idle (_data_->_async_result);
										} else {
											g_simple_async_result_complete (_data_->_async_result);
										}
										g_object_unref (_data_->_async_result);
										return FALSE;
									}
									_data_->_tmp36_ = NULL;
									_data_->_tmp36_ = _data_->fsettings;
									_data_->_tmp37_ = NULL;
									_data_->_tmp37_ = deja_dup_config_url_part_read_uri_part (_data_->_tmp36_, DEJA_DUP_FILE_PATH_KEY, DEJA_DUP_CONFIG_URL_PART_PART_SCHEME);
									_data_->scheme = _data_->_tmp37_;
									_data_->_tmp38_ = NULL;
									_data_->_tmp38_ = _data_->scheme;
									_data_->_tmp39_ = NULL;
									_data_->_tmp41_ = 0U;
									_data_->_tmp39_ = _data_->_tmp38_;
									_data_->_tmp41_ = (NULL == _data_->_tmp39_) ? 0 : g_quark_from_string (_data_->_tmp39_);
									if ((_data_->_tmp41_ == ((0 != _tmp40_label0) ? _tmp40_label0 : (_tmp40_label0 = g_quark_from_static_string ("dav")))) || (_data_->_tmp41_ == ((0 != _tmp40_label1) ? _tmp40_label1 : (_tmp40_label1 = g_quark_from_static_string ("davs"))))) {
										switch (0) {
											default:
											{
												_data_->_tmp42_ = 0;
												_data_->_tmp42_ = _data_->self->priv->index_dav;
												_data_->index = _data_->_tmp42_;
												break;
											}
										}
									} else if ((_data_->_tmp41_ == ((0 != _tmp40_label2) ? _tmp40_label2 : (_tmp40_label2 = g_quark_from_static_string ("sftp")))) || (_data_->_tmp41_ == ((0 != _tmp40_label3) ? _tmp40_label3 : (_tmp40_label3 = g_quark_from_static_string ("ssh"))))) {
										switch (0) {
											default:
											{
												_data_->_tmp43_ = 0;
												_data_->_tmp43_ = _data_->self->priv->index_ssh;
												_data_->index = _data_->_tmp43_;
												break;
											}
										}
									} else if (_data_->_tmp41_ == ((0 != _tmp40_label4) ? _tmp40_label4 : (_tmp40_label4 = g_quark_from_static_string ("ftp")))) {
										switch (0) {
											default:
											{
												_data_->_tmp44_ = 0;
												_data_->_tmp44_ = _data_->self->priv->index_ftp;
												_data_->index = _data_->_tmp44_;
												break;
											}
										}
									} else if (_data_->_tmp41_ == ((0 != _tmp40_label5) ? _tmp40_label5 : (_tmp40_label5 = g_quark_from_static_string ("smb")))) {
										switch (0) {
											default:
											{
												_data_->_tmp45_ = 0;
												_data_->_tmp45_ = _data_->self->priv->index_smb;
												_data_->index = _data_->_tmp45_;
												break;
											}
										}
									} else if (_data_->_tmp41_ == ((0 != _tmp40_label6) ? _tmp40_label6 : (_tmp40_label6 = g_quark_from_static_string ("file")))) {
										switch (0) {
											default:
											{
												_data_->_tmp46_ = 0;
												_data_->_tmp46_ = _data_->self->priv->index_local;
												_data_->index = _data_->_tmp46_;
												break;
											}
										}
									} else {
										switch (0) {
											default:
											{
												_data_->_tmp47_ = 0;
												_data_->_tmp47_ = _data_->self->priv->index_custom;
												_data_->index = _data_->_tmp47_;
												break;
											}
										}
									}
									_g_free0 (_data_->scheme);
								}
								_g_object_unref0 (_data_->fsettings);
							}
						}
					}
				}
			}
		}
	}
	_data_->_tmp48_ = 0;
	_data_->_tmp48_ = _data_->index;
	if (_data_->_tmp48_ >= 0) {
		_data_->_tmp49_ = NULL;
		_data_->_tmp49_ = _data_->self->priv->store;
		_data_->_tmp50_ = 0;
		_data_->_tmp50_ = _data_->index;
		_data_->_tmp51_ = NULL;
		_data_->_tmp51_ = g_strdup_printf ("%i", _data_->_tmp50_);
		_data_->_tmp52_ = NULL;
		_data_->_tmp52_ = _data_->_tmp51_;
		memset (&_data_->_tmp53_, 0, sizeof (GtkTreeIter));
		_data_->_tmp54_ = FALSE;
		_data_->_tmp54_ = gtk_tree_model_get_iter_from_string ((GtkTreeModel*) _data_->_tmp49_, &_data_->_tmp53_, _data_->_tmp52_);
		_data_->iter = _data_->_tmp53_;
		_data_->_tmp55_ = FALSE;
		_data_->_tmp55_ = _data_->_tmp54_;
		_g_free0 (_data_->_tmp52_);
		if (_data_->_tmp55_) {
			memset (&_data_->_tmp56_, 0, sizeof (GtkTreeIter));
			_data_->_tmp56_ = _data_->iter;
			deja_dup_config_location_set_active_iter (_data_->self, &_data_->_tmp56_);
		}
	}
	_g_free0 (_data_->backend);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


static void deja_dup_config_location_set_location_widgets (DejaDupConfigLocation* self) {
	GtkWidget* current = NULL;
	GtkEventBox* _tmp0_ = NULL;
	GtkWidget* _tmp1_ = NULL;
	GtkWidget* _tmp2_ = NULL;
	GtkWidget* _tmp3_ = NULL;
	GtkTreeIter iter0 = {0};
	GtkTreeIter iter = {0};
	GValue page_var = {0};
	GtkComboBox* _tmp6_ = NULL;
	GtkTreeIter _tmp7_ = {0};
	gboolean _tmp8_ = FALSE;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_extras;
	_tmp1_ = gtk_bin_get_child ((GtkBin*) _tmp0_);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	current = _tmp2_;
	_tmp3_ = current;
	if (_tmp3_ != NULL) {
		GtkEventBox* _tmp4_ = NULL;
		GtkWidget* _tmp5_ = NULL;
		_tmp4_ = self->priv->_extras;
		_tmp5_ = current;
		gtk_container_remove ((GtkContainer*) _tmp4_, _tmp5_);
	}
	_tmp6_ = self->priv->button;
	_tmp8_ = gtk_combo_box_get_active_iter (_tmp6_, &_tmp7_);
	iter0 = _tmp7_;
	if (_tmp8_) {
		GtkTreeModelSort* _tmp9_ = NULL;
		GtkTreeIter _tmp10_ = {0};
		GtkTreeIter _tmp11_ = {0};
		GtkListStore* _tmp12_ = NULL;
		GtkTreeIter _tmp13_ = {0};
		GValue _tmp14_ = {0};
		DejaDupConfigLocationTable* page = NULL;
		GObject* _tmp15_ = NULL;
		DejaDupConfigLocationTable* _tmp16_ = NULL;
		DejaDupConfigLocationTable* _tmp17_ = NULL;
		_tmp9_ = self->priv->sort_model;
		_tmp10_ = iter0;
		gtk_tree_model_sort_convert_iter_to_child_iter (_tmp9_, &_tmp11_, &_tmp10_);
		iter = _tmp11_;
		_tmp12_ = self->priv->store;
		_tmp13_ = iter;
		gtk_tree_model_get_value ((GtkTreeModel*) _tmp12_, &_tmp13_, DEJA_DUP_CONFIG_LOCATION_COL_PAGE, &_tmp14_);
		G_IS_VALUE (&page_var) ? (g_value_unset (&page_var), NULL) : NULL;
		page_var = _tmp14_;
		_tmp15_ = g_value_get_object (&page_var);
		_tmp16_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, DEJA_DUP_TYPE_CONFIG_LOCATION_TABLE) ? ((DejaDupConfigLocationTable*) _tmp15_) : NULL);
		page = _tmp16_;
		_tmp17_ = page;
		if (_tmp17_ != NULL) {
			GtkEventBox* _tmp18_ = NULL;
			DejaDupConfigLocationTable* _tmp19_ = NULL;
			_tmp18_ = self->priv->_extras;
			_tmp19_ = page;
			gtk_container_add ((GtkContainer*) _tmp18_, (GtkWidget*) _tmp19_);
		}
		_g_object_unref0 (page);
	}
	G_IS_VALUE (&page_var) ? (g_value_unset (&page_var), NULL) : NULL;
	_g_object_unref0 (current);
}


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


static void deja_dup_config_location_handle_changed (DejaDupConfigLocation* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	DejaDupConfigLocationHandleChangedData* _data_;
	DejaDupConfigLocation* _tmp0_ = NULL;
	_data_ = g_slice_new0 (DejaDupConfigLocationHandleChangedData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, deja_dup_config_location_handle_changed);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, deja_dup_config_location_handle_changed_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	deja_dup_config_location_handle_changed_co (_data_);
}


static void deja_dup_config_location_handle_changed_finish (DejaDupConfigLocation* self, GAsyncResult* _res_) {
	DejaDupConfigLocationHandleChangedData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void deja_dup_config_location_handle_changed_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	DejaDupConfigLocationHandleChangedData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	deja_dup_config_location_handle_changed_co (_data_);
}


static gboolean deja_dup_config_location_handle_changed_co (DejaDupConfigLocationHandleChangedData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_state_ = 1;
	deja_dup_config_location_set_location_info (_data_->self, deja_dup_config_location_handle_changed_ready, _data_);
	return FALSE;
	_state_1:
	deja_dup_config_location_set_location_info_finish (_data_->self, _data_->_res_);
	deja_dup_config_location_set_location_widgets (_data_->self);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


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


static void deja_dup_config_location_set_location_info (DejaDupConfigLocation* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	DejaDupConfigLocationSetLocationInfoData* _data_;
	DejaDupConfigLocation* _tmp0_ = NULL;
	_data_ = g_slice_new0 (DejaDupConfigLocationSetLocationInfoData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, deja_dup_config_location_set_location_info);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, deja_dup_config_location_set_location_info_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	deja_dup_config_location_set_location_info_co (_data_);
}


static void deja_dup_config_location_set_location_info_finish (DejaDupConfigLocation* self, GAsyncResult* _res_) {
	DejaDupConfigLocationSetLocationInfoData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void deja_dup_config_location_set_location_info_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	DejaDupConfigLocationSetLocationInfoData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	deja_dup_config_location_set_location_info_co (_data_);
}


static gboolean deja_dup_config_location_set_location_info_co (DejaDupConfigLocationSetLocationInfoData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		case 3:
		goto _state_3;
		case 4:
		goto _state_4;
		case 5:
		goto _state_5;
		case 6:
		goto _state_6;
		case 7:
		goto _state_7;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = _data_->self->priv->button;
	memset (&_data_->_tmp1_, 0, sizeof (GtkTreeIter));
	_data_->_tmp2_ = FALSE;
	_data_->_tmp2_ = gtk_combo_box_get_active_iter (_data_->_tmp0_, &_data_->_tmp1_);
	_data_->iter0 = _data_->_tmp1_;
	if (!_data_->_tmp2_) {
		if (_data_->_state_ == 0) {
			g_simple_async_result_complete_in_idle (_data_->_async_result);
		} else {
			g_simple_async_result_complete (_data_->_async_result);
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = _data_->self->priv->sort_model;
	memset (&_data_->_tmp4_, 0, sizeof (GtkTreeIter));
	_data_->_tmp4_ = _data_->iter0;
	memset (&_data_->_tmp5_, 0, sizeof (GtkTreeIter));
	gtk_tree_model_sort_convert_iter_to_child_iter (_data_->_tmp3_, &_data_->_tmp5_, &_data_->_tmp4_);
	_data_->iter = _data_->_tmp5_;
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = _data_->self->priv->store;
	memset (&_data_->_tmp7_, 0, sizeof (GtkTreeIter));
	_data_->_tmp7_ = _data_->iter;
	gtk_tree_model_get ((GtkTreeModel*) _data_->_tmp6_, &_data_->_tmp7_, DEJA_DUP_CONFIG_LOCATION_COL_INDEX, &_data_->index, DEJA_DUP_CONFIG_LOCATION_COL_UUID, &_data_->uuid, -1);
	_data_->_tmp8_ = 0;
	_data_->_tmp8_ = _data_->index;
	_data_->_tmp9_ = 0;
	_data_->_tmp9_ = _data_->self->priv->index_s3;
	if (_data_->_tmp8_ == _data_->_tmp9_) {
		_data_->_tmp10_ = NULL;
		_data_->_tmp10_ = ((DejaDupConfigWidget*) _data_->self)->settings;
		deja_dup_filtered_settings_set_string (_data_->_tmp10_, DEJA_DUP_BACKEND_KEY, "s3");
	} else {
		_data_->_tmp11_ = 0;
		_data_->_tmp11_ = _data_->index;
		_data_->_tmp12_ = 0;
		_data_->_tmp12_ = _data_->self->priv->index_gcs;
		if (_data_->_tmp11_ == _data_->_tmp12_) {
			_data_->_tmp13_ = NULL;
			_data_->_tmp13_ = ((DejaDupConfigWidget*) _data_->self)->settings;
			deja_dup_filtered_settings_set_string (_data_->_tmp13_, DEJA_DUP_BACKEND_KEY, "gcs");
		} else {
			_data_->_tmp14_ = 0;
			_data_->_tmp14_ = _data_->index;
			_data_->_tmp15_ = 0;
			_data_->_tmp15_ = _data_->self->priv->index_gdrive;
			if (_data_->_tmp14_ == _data_->_tmp15_) {
				_data_->_tmp16_ = NULL;
				_data_->_tmp16_ = ((DejaDupConfigWidget*) _data_->self)->settings;
				deja_dup_filtered_settings_set_string (_data_->_tmp16_, DEJA_DUP_BACKEND_KEY, "gdrive");
			} else {
				_data_->_tmp17_ = 0;
				_data_->_tmp17_ = _data_->index;
				_data_->_tmp18_ = 0;
				_data_->_tmp18_ = _data_->self->priv->index_rackspace;
				if (_data_->_tmp17_ == _data_->_tmp18_) {
					_data_->_tmp19_ = NULL;
					_data_->_tmp19_ = ((DejaDupConfigWidget*) _data_->self)->settings;
					deja_dup_filtered_settings_set_string (_data_->_tmp19_, DEJA_DUP_BACKEND_KEY, "rackspace");
				} else {
					_data_->_tmp20_ = 0;
					_data_->_tmp20_ = _data_->index;
					_data_->_tmp21_ = 0;
					_data_->_tmp21_ = _data_->self->priv->index_openstack;
					if (_data_->_tmp20_ == _data_->_tmp21_) {
						_data_->_tmp22_ = NULL;
						_data_->_tmp22_ = ((DejaDupConfigWidget*) _data_->self)->settings;
						deja_dup_filtered_settings_set_string (_data_->_tmp22_, DEJA_DUP_BACKEND_KEY, "openstack");
					} else {
						_data_->_tmp23_ = 0;
						_data_->_tmp23_ = _data_->index;
						_data_->_tmp24_ = 0;
						_data_->_tmp24_ = _data_->self->priv->index_u1;
						if (_data_->_tmp23_ == _data_->_tmp24_) {
							_data_->_tmp25_ = NULL;
							_data_->_tmp25_ = ((DejaDupConfigWidget*) _data_->self)->settings;
							deja_dup_filtered_settings_set_string (_data_->_tmp25_, DEJA_DUP_BACKEND_KEY, "u1");
						} else {
							_data_->_tmp26_ = 0;
							_data_->_tmp26_ = _data_->index;
							_data_->_tmp27_ = 0;
							_data_->_tmp27_ = _data_->self->priv->index_ssh;
							if (_data_->_tmp26_ == _data_->_tmp27_) {
								_data_->_state_ = 1;
								deja_dup_config_location_set_remote_info (_data_->self, "sftp", deja_dup_config_location_set_location_info_ready, _data_);
								return FALSE;
								_state_1:
								deja_dup_config_location_set_remote_info_finish (_data_->self, _data_->_res_);
							} else {
								_data_->_tmp28_ = 0;
								_data_->_tmp28_ = _data_->index;
								_data_->_tmp29_ = 0;
								_data_->_tmp29_ = _data_->self->priv->index_ftp;
								if (_data_->_tmp28_ == _data_->_tmp29_) {
									_data_->_state_ = 2;
									deja_dup_config_location_set_remote_info (_data_->self, "ftp", deja_dup_config_location_set_location_info_ready, _data_);
									return FALSE;
									_state_2:
									deja_dup_config_location_set_remote_info_finish (_data_->self, _data_->_res_);
								} else {
									_data_->_tmp30_ = 0;
									_data_->_tmp30_ = _data_->index;
									_data_->_tmp31_ = 0;
									_data_->_tmp31_ = _data_->self->priv->index_dav;
									if (_data_->_tmp30_ == _data_->_tmp31_) {
										_data_->_tmp32_ = NULL;
										_data_->_tmp32_ = deja_dup_get_settings (DEJA_DUP_FILE_ROOT);
										_data_->fsettings = _data_->_tmp32_;
										_data_->_tmp33_ = NULL;
										_data_->_tmp33_ = _data_->fsettings;
										_data_->_tmp34_ = NULL;
										_data_->_tmp34_ = deja_dup_config_url_part_read_uri_part (_data_->_tmp33_, DEJA_DUP_FILE_PATH_KEY, DEJA_DUP_CONFIG_URL_PART_PART_SCHEME);
										_data_->scheme = _data_->_tmp34_;
										_data_->_tmp36_ = NULL;
										_data_->_tmp36_ = _data_->scheme;
										if (g_strcmp0 (_data_->_tmp36_, "dav") != 0) {
											_data_->_tmp37_ = NULL;
											_data_->_tmp37_ = _data_->scheme;
											_data_->_tmp35_ = g_strcmp0 (_data_->_tmp37_, "davs") != 0;
										} else {
											_data_->_tmp35_ = FALSE;
										}
										if (_data_->_tmp35_) {
											_data_->_tmp38_ = NULL;
											_data_->_tmp38_ = g_strdup ("dav");
											_g_free0 (_data_->scheme);
											_data_->scheme = _data_->_tmp38_;
										}
										_data_->_tmp39_ = NULL;
										_data_->_tmp39_ = _data_->scheme;
										_data_->_state_ = 3;
										deja_dup_config_location_set_remote_info (_data_->self, _data_->_tmp39_, deja_dup_config_location_set_location_info_ready, _data_);
										return FALSE;
										_state_3:
										deja_dup_config_location_set_remote_info_finish (_data_->self, _data_->_res_);
										_g_free0 (_data_->scheme);
										_g_object_unref0 (_data_->fsettings);
									} else {
										_data_->_tmp40_ = 0;
										_data_->_tmp40_ = _data_->index;
										_data_->_tmp41_ = 0;
										_data_->_tmp41_ = _data_->self->priv->index_smb;
										if (_data_->_tmp40_ == _data_->_tmp41_) {
											_data_->_state_ = 4;
											deja_dup_config_location_set_remote_info (_data_->self, "smb", deja_dup_config_location_set_location_info_ready, _data_);
											return FALSE;
											_state_4:
											deja_dup_config_location_set_remote_info_finish (_data_->self, _data_->_res_);
										} else {
											_data_->_tmp42_ = 0;
											_data_->_tmp42_ = _data_->index;
											_data_->_tmp43_ = 0;
											_data_->_tmp43_ = _data_->self->priv->index_local;
											if (_data_->_tmp42_ == _data_->_tmp43_) {
												_data_->_state_ = 5;
												deja_dup_config_location_set_remote_info (_data_->self, "file", deja_dup_config_location_set_location_info_ready, _data_);
												return FALSE;
												_state_5:
												deja_dup_config_location_set_remote_info_finish (_data_->self, _data_->_res_);
											} else {
												_data_->_tmp44_ = 0;
												_data_->_tmp44_ = _data_->index;
												_data_->_tmp45_ = 0;
												_data_->_tmp45_ = _data_->self->priv->index_custom;
												if (_data_->_tmp44_ == _data_->_tmp45_) {
													_data_->_state_ = 6;
													deja_dup_config_location_set_remote_info (_data_->self, NULL, deja_dup_config_location_set_location_info_ready, _data_);
													return FALSE;
													_state_6:
													deja_dup_config_location_set_remote_info_finish (_data_->self, _data_->_res_);
												} else {
													_data_->_tmp46_ = NULL;
													_data_->_tmp46_ = _data_->uuid;
													if (_data_->_tmp46_ != NULL) {
														memset (&_data_->_tmp47_, 0, sizeof (GtkTreeIter));
														_data_->_tmp47_ = _data_->iter;
														_data_->_state_ = 7;
														deja_dup_config_location_set_volume_info (_data_->self, &_data_->_tmp47_, deja_dup_config_location_set_location_info_ready, _data_);
														return FALSE;
														_state_7:
														deja_dup_config_location_set_volume_info_finish (_data_->self, _data_->_res_);
													} else {
														_data_->_tmp48_ = 0;
														_data_->_tmp48_ = _data_->index;
														g_warning ("ConfigLocation.vala:575: Unknown location index %i\n", _data_->_tmp48_);
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	g_signal_emit_by_name ((DejaDupConfigWidget*) _data_->self, "changed");
	_g_free0 (_data_->uuid);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


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


static void deja_dup_config_location_set_volume_info (DejaDupConfigLocation* self, GtkTreeIter* iter, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	DejaDupConfigLocationSetVolumeInfoData* _data_;
	DejaDupConfigLocation* _tmp0_ = NULL;
	GtkTreeIter _tmp1_ = {0};
	_data_ = g_slice_new0 (DejaDupConfigLocationSetVolumeInfoData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, deja_dup_config_location_set_volume_info);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, deja_dup_config_location_set_volume_info_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = *iter;
	_data_->iter = _tmp1_;
	deja_dup_config_location_set_volume_info_co (_data_);
}


static void deja_dup_config_location_set_volume_info_finish (DejaDupConfigLocation* self, GAsyncResult* _res_) {
	DejaDupConfigLocationSetVolumeInfoData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void deja_dup_config_location_set_volume_info_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	DejaDupConfigLocationSetVolumeInfoData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	deja_dup_config_location_set_volume_info_co (_data_);
}


static gboolean deja_dup_config_location_set_volume_info_co (DejaDupConfigLocationSetVolumeInfoData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = _data_->self->priv->store;
	memset (&_data_->_tmp1_, 0, sizeof (GtkTreeIter));
	_data_->_tmp1_ = _data_->iter;
	memset (&_data_->_tmp2_, 0, sizeof (GValue));
	gtk_tree_model_get_value ((GtkTreeModel*) _data_->_tmp0_, &_data_->_tmp1_, DEJA_DUP_CONFIG_LOCATION_COL_UUID, &_data_->_tmp2_);
	G_IS_VALUE (&_data_->vol_var) ? (g_value_unset (&_data_->vol_var), NULL) : NULL;
	_data_->vol_var = _data_->_tmp2_;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = g_value_get_string (&_data_->vol_var);
	_data_->_tmp4_ = NULL;
	_data_->_tmp4_ = g_strdup (_data_->_tmp3_);
	_data_->uuid = _data_->_tmp4_;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = _data_->uuid;
	if (_data_->_tmp5_ == NULL) {
		_data_->_tmp6_ = NULL;
		_data_->_tmp6_ = _data_->self->priv->store;
		memset (&_data_->_tmp7_, 0, sizeof (GtkTreeIter));
		_data_->_tmp7_ = _data_->iter;
		_data_->_tmp8_ = NULL;
		_data_->_tmp8_ = gtk_tree_model_get_string_from_iter ((GtkTreeModel*) _data_->_tmp6_, &_data_->_tmp7_);
		_data_->_tmp9_ = NULL;
		_data_->_tmp9_ = _data_->_tmp8_;
		g_warning ("ConfigLocation.vala:588: Invalid volume location at iter %s\n", _data_->_tmp9_);
		_g_free0 (_data_->_tmp9_);
		_g_free0 (_data_->uuid);
		G_IS_VALUE (&_data_->vol_var) ? (g_value_unset (&_data_->vol_var), NULL) : NULL;
		if (_data_->_state_ == 0) {
			g_simple_async_result_complete_in_idle (_data_->_async_result);
		} else {
			g_simple_async_result_complete (_data_->_async_result);
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp10_ = NULL;
	_data_->_tmp10_ = deja_dup_get_settings (DEJA_DUP_FILE_ROOT);
	_data_->fsettings = _data_->_tmp10_;
	_data_->_tmp11_ = NULL;
	_data_->_tmp11_ = _data_->fsettings;
	deja_dup_filtered_settings_set_string (_data_->_tmp11_, DEJA_DUP_FILE_TYPE_KEY, "volume");
	_data_->_tmp12_ = NULL;
	_data_->_tmp12_ = ((DejaDupConfigWidget*) _data_->self)->settings;
	deja_dup_filtered_settings_set_string (_data_->_tmp12_, DEJA_DUP_BACKEND_KEY, "file");
	_data_->_tmp13_ = NULL;
	_data_->_tmp13_ = _data_->uuid;
	_data_->_tmp14_ = NULL;
	_data_->_tmp14_ = deja_dup_backend_file_find_volume_by_uuid (_data_->_tmp13_);
	_data_->vol = _data_->_tmp14_;
	_data_->_tmp15_ = NULL;
	_data_->_tmp15_ = _data_->vol;
	if (_data_->_tmp15_ == NULL) {
		_g_object_unref0 (_data_->vol);
		_g_object_unref0 (_data_->fsettings);
		_g_free0 (_data_->uuid);
		G_IS_VALUE (&_data_->vol_var) ? (g_value_unset (&_data_->vol_var), NULL) : NULL;
		if (_data_->_state_ == 0) {
			g_simple_async_result_complete_in_idle (_data_->_async_result);
		} else {
			g_simple_async_result_complete (_data_->_async_result);
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp16_ = NULL;
	_data_->_tmp16_ = _data_->vol;
	_data_->_state_ = 1;
	deja_dup_backend_file_set_volume_info (_data_->_tmp16_, NULL, deja_dup_config_location_set_volume_info_ready, _data_);
	return FALSE;
	_state_1:
	deja_dup_backend_file_set_volume_info_finish (_data_->_res_);
	_g_object_unref0 (_data_->vol);
	_g_object_unref0 (_data_->fsettings);
	_g_free0 (_data_->uuid);
	G_IS_VALUE (&_data_->vol_var) ? (g_value_unset (&_data_->vol_var), NULL) : NULL;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


static void deja_dup_config_location_set_remote_info_data_free (gpointer _data) {
	DejaDupConfigLocationSetRemoteInfoData* _data_;
	_data_ = _data;
	_g_free0 (_data_->scheme);
	_g_object_unref0 (_data_->self);
	g_slice_free (DejaDupConfigLocationSetRemoteInfoData, _data_);
}


static void deja_dup_config_location_set_remote_info (DejaDupConfigLocation* self, const gchar* scheme, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	DejaDupConfigLocationSetRemoteInfoData* _data_;
	DejaDupConfigLocation* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	_data_ = g_slice_new0 (DejaDupConfigLocationSetRemoteInfoData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, deja_dup_config_location_set_remote_info);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, deja_dup_config_location_set_remote_info_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = scheme;
	_tmp2_ = g_strdup (_tmp1_);
	_g_free0 (_data_->scheme);
	_data_->scheme = _tmp2_;
	deja_dup_config_location_set_remote_info_co (_data_);
}


static void deja_dup_config_location_set_remote_info_finish (DejaDupConfigLocation* self, GAsyncResult* _res_) {
	DejaDupConfigLocationSetRemoteInfoData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void deja_dup_config_location_set_remote_info_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	DejaDupConfigLocationSetRemoteInfoData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	deja_dup_config_location_set_remote_info_co (_data_);
}


static gboolean deja_dup_config_location_set_remote_info_co (DejaDupConfigLocationSetRemoteInfoData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	((DejaDupConfigWidget*) _data_->self)->syncing = TRUE;
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = deja_dup_get_settings (DEJA_DUP_FILE_ROOT);
	_data_->fsettings = _data_->_tmp0_;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = _data_->fsettings;
	g_settings_delay ((GSettings*) _data_->_tmp1_);
	_data_->_tmp2_ = NULL;
	_data_->_tmp2_ = _data_->fsettings;
	deja_dup_filtered_settings_set_string (_data_->_tmp2_, DEJA_DUP_FILE_TYPE_KEY, "normal");
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = _data_->scheme;
	if (_data_->_tmp3_ != NULL) {
		_data_->_tmp4_ = NULL;
		_data_->_tmp4_ = _data_->fsettings;
		_data_->_tmp5_ = NULL;
		_data_->_tmp5_ = _data_->scheme;
		deja_dup_config_url_part_write_uri_part (_data_->_tmp4_, DEJA_DUP_FILE_PATH_KEY, DEJA_DUP_CONFIG_URL_PART_PART_SCHEME, _data_->_tmp5_);
	}
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = _data_->fsettings;
	deja_dup_filtered_settings_apply (_data_->_tmp6_);
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = ((DejaDupConfigWidget*) _data_->self)->settings;
	deja_dup_filtered_settings_set_string (_data_->_tmp7_, DEJA_DUP_BACKEND_KEY, "file");
	((DejaDupConfigWidget*) _data_->self)->syncing = FALSE;
	_data_->_state_ = 1;
	deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) _data_->self, deja_dup_config_location_set_remote_info_ready, _data_);
	return FALSE;
	_state_1:
	deja_dup_config_widget_set_from_config_finish ((DejaDupConfigWidget*) _data_->self, _data_->_res_);
	_g_object_unref0 (_data_->fsettings);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


GtkEventBox* deja_dup_config_location_get_extras (DejaDupConfigLocation* self) {
	GtkEventBox* result;
	GtkEventBox* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_extras;
	result = _tmp0_;
	return result;
}


static void deja_dup_config_location_set_extras (DejaDupConfigLocation* self, GtkEventBox* value) {
	GtkEventBox* _tmp0_ = NULL;
	GtkEventBox* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->priv->_extras);
	self->priv->_extras = _tmp1_;
	g_object_notify ((GObject *) self, "extras");
}


GtkSizeGroup* deja_dup_config_location_get_label_sizes (DejaDupConfigLocation* self) {
	GtkSizeGroup* result;
	GtkSizeGroup* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_label_sizes;
	result = _tmp0_;
	return result;
}


static void deja_dup_config_location_set_label_sizes (DejaDupConfigLocation* self, GtkSizeGroup* value) {
	GtkSizeGroup* _tmp0_ = NULL;
	GtkSizeGroup* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->priv->_label_sizes);
	self->priv->_label_sizes = _tmp1_;
	g_object_notify ((GObject *) self, "label-sizes");
}


static gboolean _deja_dup_config_location_is_separator_gtk_tree_view_row_separator_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self) {
	gboolean result;
	result = deja_dup_config_location_is_separator ((DejaDupConfigLocation*) self, model, iter);
	return result;
}


static void _deja_dup_config_location_add_volume_g_volume_monitor_volume_added (GVolumeMonitor* _sender, GVolume* volume, gpointer self) {
	deja_dup_config_location_add_volume ((DejaDupConfigLocation*) self, _sender, volume);
}


static void _deja_dup_config_location_update_volume_g_volume_monitor_volume_changed (GVolumeMonitor* _sender, GVolume* volume, gpointer self) {
	deja_dup_config_location_update_volume ((DejaDupConfigLocation*) self, _sender, volume);
}


static void _deja_dup_config_location_remove_volume_g_volume_monitor_volume_removed (GVolumeMonitor* _sender, GVolume* volume, gpointer self) {
	deja_dup_config_location_remove_volume ((DejaDupConfigLocation*) self, _sender, volume);
}


static void _deja_dup_config_location_handle_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
	deja_dup_config_location_handle_changed ((DejaDupConfigLocation*) self, NULL, NULL);
}


static void _g_object_unref0_ (gpointer var) {
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
}


static void _g_list_free__g_object_unref0_ (GList* self) {
	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
	g_list_free (self);
}


static GObject * deja_dup_config_location_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	DejaDupConfigLocation * self;
	GtkBox* vbox = NULL;
	GtkBox* _tmp0_ = NULL;
	GtkBox* _tmp1_ = NULL;
	GtkListStore* _tmp2_ = NULL;
	GtkListStore* _tmp3_ = NULL;
	GtkTreeModelSort* _tmp4_ = NULL;
	GtkTreeModelSort* _tmp5_ = NULL;
	GtkTreeModelSort* _tmp6_ = NULL;
	GtkComboBox* _tmp7_ = NULL;
	GtkComboBox* _tmp8_ = NULL;
	GtkBox* _tmp9_ = NULL;
	GtkComboBox* _tmp10_ = NULL;
	AtkObject* accessible = NULL;
	GtkComboBox* _tmp11_ = NULL;
	AtkObject* _tmp12_ = NULL;
	AtkObject* _tmp13_ = NULL;
	AtkObject* _tmp14_ = NULL;
	GtkTreeIter iter = {0};
	GtkSizeGroup* _tmp16_ = NULL;
	GtkEventBox* _tmp19_ = NULL;
	GtkEventBox* _tmp20_ = NULL;
	GtkEventBox* _tmp21_ = NULL;
	GtkEventBox* _tmp22_ = NULL;
	GtkEventBox* _tmp23_ = NULL;
	GThemedIcon* _tmp24_ = NULL;
	GThemedIcon* _tmp25_ = NULL;
	const gchar* _tmp26_ = NULL;
	GtkSizeGroup* _tmp27_ = NULL;
	DejaDupConfigLocationSSH* _tmp28_ = NULL;
	DejaDupConfigLocationSSH* _tmp29_ = NULL;
	gint _tmp30_ = 0;
	GThemedIcon* _tmp31_ = NULL;
	GThemedIcon* _tmp32_ = NULL;
	const gchar* _tmp33_ = NULL;
	GtkSizeGroup* _tmp34_ = NULL;
	DejaDupConfigLocationSMB* _tmp35_ = NULL;
	DejaDupConfigLocationSMB* _tmp36_ = NULL;
	gint _tmp37_ = 0;
	GThemedIcon* _tmp38_ = NULL;
	GThemedIcon* _tmp39_ = NULL;
	const gchar* _tmp40_ = NULL;
	GtkSizeGroup* _tmp41_ = NULL;
	DejaDupConfigLocationFTP* _tmp42_ = NULL;
	DejaDupConfigLocationFTP* _tmp43_ = NULL;
	gint _tmp44_ = 0;
	GThemedIcon* _tmp45_ = NULL;
	GThemedIcon* _tmp46_ = NULL;
	const gchar* _tmp47_ = NULL;
	GtkSizeGroup* _tmp48_ = NULL;
	DejaDupConfigLocationDAV* _tmp49_ = NULL;
	DejaDupConfigLocationDAV* _tmp50_ = NULL;
	gint _tmp51_ = 0;
	GThemedIcon* _tmp52_ = NULL;
	GThemedIcon* _tmp53_ = NULL;
	const gchar* _tmp54_ = NULL;
	GtkSizeGroup* _tmp55_ = NULL;
	DejaDupConfigLocationCustom* _tmp56_ = NULL;
	DejaDupConfigLocationCustom* _tmp57_ = NULL;
	gint _tmp58_ = 0;
	GThemedIcon* _tmp59_ = NULL;
	GThemedIcon* _tmp60_ = NULL;
	const gchar* _tmp61_ = NULL;
	GtkSizeGroup* _tmp62_ = NULL;
	DejaDupConfigLocationFile* _tmp63_ = NULL;
	DejaDupConfigLocationFile* _tmp64_ = NULL;
	gint _tmp65_ = 0;
	GVolumeMonitor* mon = NULL;
	GVolumeMonitor* _tmp66_ = NULL;
	GVolumeMonitor* _tmp67_ = NULL;
	GList* vols = NULL;
	GVolumeMonitor* _tmp68_ = NULL;
	GList* _tmp69_ = NULL;
	GList* _tmp70_ = NULL;
	GVolumeMonitor* _tmp74_ = NULL;
	GVolumeMonitor* _tmp75_ = NULL;
	GVolumeMonitor* _tmp76_ = NULL;
	GtkCellRendererPixbuf* pixrenderer = NULL;
	GtkCellRendererPixbuf* _tmp77_ = NULL;
	GtkComboBox* _tmp78_ = NULL;
	GtkCellRendererPixbuf* _tmp79_ = NULL;
	GtkComboBox* _tmp80_ = NULL;
	GtkCellRendererPixbuf* _tmp81_ = NULL;
	GtkCellRendererText* textrenderer = NULL;
	GtkCellRendererText* _tmp82_ = NULL;
	GtkComboBox* _tmp83_ = NULL;
	GtkCellRendererText* _tmp84_ = NULL;
	GtkComboBox* _tmp85_ = NULL;
	GtkCellRendererText* _tmp86_ = NULL;
	GtkComboBox* _tmp87_ = NULL;
	GtkComboBox* _tmp88_ = NULL;
	GtkComboBox* _tmp89_ = NULL;
	DejaDupFilteredSettings* _tmp90_ = NULL;
	DejaDupFilteredSettings* _tmp91_ = NULL;
	parent_class = G_OBJECT_CLASS (deja_dup_config_location_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocation);
	_tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
	g_object_ref_sink (_tmp0_);
	vbox = _tmp0_;
	_tmp1_ = vbox;
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp1_);
	_tmp2_ = gtk_list_store_new (6, G_TYPE_ICON, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, DEJA_DUP_TYPE_CONFIG_LOCATION_TABLE, G_TYPE_INT, -1);
	_g_object_unref0 (self->priv->store);
	self->priv->store = _tmp2_;
	_tmp3_ = self->priv->store;
	_tmp4_ = (GtkTreeModelSort*) gtk_tree_model_sort_new_with_model ((GtkTreeModel*) _tmp3_);
	_g_object_unref0 (self->priv->sort_model);
	self->priv->sort_model = _tmp4_;
	_tmp5_ = self->priv->sort_model;
	gtk_tree_sortable_set_sort_column_id ((GtkTreeSortable*) _tmp5_, DEJA_DUP_CONFIG_LOCATION_COL_SORT, GTK_SORT_ASCENDING);
	_tmp6_ = self->priv->sort_model;
	_tmp7_ = (GtkComboBox*) gtk_combo_box_new_with_model ((GtkTreeModel*) _tmp6_);
	g_object_ref_sink (_tmp7_);
	_g_object_unref0 (self->priv->button);
	self->priv->button = _tmp7_;
	_tmp8_ = self->priv->button;
	gtk_combo_box_set_row_separator_func (_tmp8_, _deja_dup_config_location_is_separator_gtk_tree_view_row_separator_func, g_object_ref (self), g_object_unref);
	_tmp9_ = vbox;
	_tmp10_ = self->priv->button;
	gtk_container_add ((GtkContainer*) _tmp9_, (GtkWidget*) _tmp10_);
	_tmp11_ = self->priv->button;
	_tmp12_ = gtk_widget_get_accessible ((GtkWidget*) _tmp11_);
	_tmp13_ = _g_object_ref0 (_tmp12_);
	accessible = _tmp13_;
	_tmp14_ = accessible;
	if (_tmp14_ != NULL) {
		AtkObject* _tmp15_ = NULL;
		_tmp15_ = accessible;
		atk_object_set_name (_tmp15_, "Location");
	}
	_tmp16_ = self->priv->_label_sizes;
	if (_tmp16_ == NULL) {
		GtkSizeGroup* _tmp17_ = NULL;
		GtkSizeGroup* _tmp18_ = NULL;
		_tmp17_ = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
		_tmp18_ = _tmp17_;
		deja_dup_config_location_set_label_sizes (self, _tmp18_);
		_g_object_unref0 (_tmp18_);
	}
	_tmp19_ = (GtkEventBox*) gtk_event_box_new ();
	g_object_ref_sink (_tmp19_);
	_tmp20_ = _tmp19_;
	deja_dup_config_location_set_extras (self, _tmp20_);
	_g_object_unref0 (_tmp20_);
	_tmp21_ = self->priv->_extras;
	gtk_event_box_set_visible_window (_tmp21_, FALSE);
	_tmp22_ = self->priv->_extras;
	gtk_container_set_border_width ((GtkContainer*) _tmp22_, (guint) 0);
	_tmp23_ = self->priv->_extras;
	gtk_widget_show ((GtkWidget*) _tmp23_);
	deja_dup_config_location_insert_u1 (self);
	deja_dup_config_location_insert_s3 (self);
	deja_dup_config_location_insert_gcs (self);
	deja_dup_config_location_insert_gdrive (self);
	deja_dup_config_location_insert_rackspace (self);
	deja_dup_config_location_insert_openstack (self);
	_tmp24_ = (GThemedIcon*) g_themed_icon_new_with_default_fallbacks ("folder-remote");
	_tmp25_ = _tmp24_;
	_tmp26_ = _ ("SSH");
	_tmp27_ = self->priv->_label_sizes;
	_tmp28_ = deja_dup_config_location_ssh_new (_tmp27_);
	g_object_ref_sink (_tmp28_);
	_tmp29_ = _tmp28_;
	_tmp30_ = deja_dup_config_location_add_entry (self, (GIcon*) _tmp25_, _tmp26_, DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE, (GtkWidget*) _tmp29_, NULL);
	self->priv->index_ssh = _tmp30_;
	_g_object_unref0 (_tmp29_);
	_g_object_unref0 (_tmp25_);
	_tmp31_ = (GThemedIcon*) g_themed_icon_new_with_default_fallbacks ("folder-remote");
	_tmp32_ = _tmp31_;
	_tmp33_ = _ ("Windows Share");
	_tmp34_ = self->priv->_label_sizes;
	_tmp35_ = deja_dup_config_location_smb_new (_tmp34_);
	g_object_ref_sink (_tmp35_);
	_tmp36_ = _tmp35_;
	_tmp37_ = deja_dup_config_location_add_entry (self, (GIcon*) _tmp32_, _tmp33_, DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE, (GtkWidget*) _tmp36_, NULL);
	self->priv->index_smb = _tmp37_;
	_g_object_unref0 (_tmp36_);
	_g_object_unref0 (_tmp32_);
	_tmp38_ = (GThemedIcon*) g_themed_icon_new_with_default_fallbacks ("folder-remote");
	_tmp39_ = _tmp38_;
	_tmp40_ = _ ("FTP");
	_tmp41_ = self->priv->_label_sizes;
	_tmp42_ = deja_dup_config_location_ftp_new (_tmp41_);
	g_object_ref_sink (_tmp42_);
	_tmp43_ = _tmp42_;
	_tmp44_ = deja_dup_config_location_add_entry (self, (GIcon*) _tmp39_, _tmp40_, DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE, (GtkWidget*) _tmp43_, NULL);
	self->priv->index_ftp = _tmp44_;
	_g_object_unref0 (_tmp43_);
	_g_object_unref0 (_tmp39_);
	_tmp45_ = (GThemedIcon*) g_themed_icon_new_with_default_fallbacks ("folder-remote");
	_tmp46_ = _tmp45_;
	_tmp47_ = _ ("WebDAV");
	_tmp48_ = self->priv->_label_sizes;
	_tmp49_ = deja_dup_config_location_dav_new (_tmp48_);
	g_object_ref_sink (_tmp49_);
	_tmp50_ = _tmp49_;
	_tmp51_ = deja_dup_config_location_add_entry (self, (GIcon*) _tmp46_, _tmp47_, DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE, (GtkWidget*) _tmp50_, NULL);
	self->priv->index_dav = _tmp51_;
	_g_object_unref0 (_tmp50_);
	_g_object_unref0 (_tmp46_);
	_tmp52_ = (GThemedIcon*) g_themed_icon_new_with_default_fallbacks ("folder-remote");
	_tmp53_ = _tmp52_;
	_tmp54_ = _ ("Custom Location");
	_tmp55_ = self->priv->_label_sizes;
	_tmp56_ = deja_dup_config_location_custom_new (_tmp55_);
	g_object_ref_sink (_tmp56_);
	_tmp57_ = _tmp56_;
	_tmp58_ = deja_dup_config_location_add_entry (self, (GIcon*) _tmp53_, _tmp54_, DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE_CUSTOM, (GtkWidget*) _tmp57_, NULL);
	self->priv->index_custom = _tmp58_;
	_g_object_unref0 (_tmp57_);
	_g_object_unref0 (_tmp53_);
	deja_dup_config_location_add_separator (self, DEJA_DUP_CONFIG_LOCATION_GROUP_REMOTE_SEP);
	_tmp59_ = (GThemedIcon*) g_themed_icon_new ("folder");
	_tmp60_ = _tmp59_;
	_tmp61_ = _ ("Local Folder");
	_tmp62_ = self->priv->_label_sizes;
	_tmp63_ = deja_dup_config_location_file_new (_tmp62_);
	g_object_ref_sink (_tmp63_);
	_tmp64_ = _tmp63_;
	_tmp65_ = deja_dup_config_location_add_entry (self, (GIcon*) _tmp60_, _tmp61_, DEJA_DUP_CONFIG_LOCATION_GROUP_LOCAL, (GtkWidget*) _tmp64_, NULL);
	self->priv->index_local = _tmp65_;
	_g_object_unref0 (_tmp64_);
	_g_object_unref0 (_tmp60_);
	_tmp66_ = g_volume_monitor_get ();
	mon = _tmp66_;
	_tmp67_ = mon;
	g_object_ref ((GObject*) _tmp67_);
	_tmp68_ = mon;
	_tmp69_ = g_volume_monitor_get_volumes (_tmp68_);
	vols = _tmp69_;
	_tmp70_ = vols;
	{
		GList* v_collection = NULL;
		GList* v_it = NULL;
		v_collection = _tmp70_;
		for (v_it = v_collection; v_it != NULL; v_it = v_it->next) {
			GVolume* _tmp71_ = NULL;
			GVolume* v = NULL;
			_tmp71_ = _g_object_ref0 ((GVolume*) v_it->data);
			v = _tmp71_;
			{
				GVolumeMonitor* _tmp72_ = NULL;
				GVolume* _tmp73_ = NULL;
				_tmp72_ = mon;
				_tmp73_ = v;
				deja_dup_config_location_add_volume (self, _tmp72_, _tmp73_);
				_g_object_unref0 (v);
			}
		}
	}
	deja_dup_config_location_update_saved_volume (self);
	_tmp74_ = mon;
	g_signal_connect_object (_tmp74_, "volume-added", (GCallback) _deja_dup_config_location_add_volume_g_volume_monitor_volume_added, self, 0);
	_tmp75_ = mon;
	g_signal_connect_object (_tmp75_, "volume-changed", (GCallback) _deja_dup_config_location_update_volume_g_volume_monitor_volume_changed, self, 0);
	_tmp76_ = mon;
	g_signal_connect_object (_tmp76_, "volume-removed", (GCallback) _deja_dup_config_location_remove_volume_g_volume_monitor_volume_removed, self, 0);
	_tmp77_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
	g_object_ref_sink (_tmp77_);
	pixrenderer = _tmp77_;
	_tmp78_ = self->priv->button;
	_tmp79_ = pixrenderer;
	gtk_cell_layout_pack_start ((GtkCellLayout*) _tmp78_, (GtkCellRenderer*) _tmp79_, FALSE);
	_tmp80_ = self->priv->button;
	_tmp81_ = pixrenderer;
	gtk_cell_layout_add_attribute ((GtkCellLayout*) _tmp80_, (GtkCellRenderer*) _tmp81_, "gicon", DEJA_DUP_CONFIG_LOCATION_COL_ICON);
	_tmp82_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
	g_object_ref_sink (_tmp82_);
	textrenderer = _tmp82_;
	_tmp83_ = self->priv->button;
	_tmp84_ = textrenderer;
	gtk_cell_layout_pack_start ((GtkCellLayout*) _tmp83_, (GtkCellRenderer*) _tmp84_, TRUE);
	_tmp85_ = self->priv->button;
	_tmp86_ = textrenderer;
	gtk_cell_layout_add_attribute ((GtkCellLayout*) _tmp85_, (GtkCellRenderer*) _tmp86_, "text", DEJA_DUP_CONFIG_LOCATION_COL_TEXT);
	_tmp87_ = self->priv->button;
	deja_dup_config_widget_set_mnemonic_widget ((DejaDupConfigWidget*) self, (GtkWidget*) _tmp87_);
	_tmp88_ = self->priv->button;
	gtk_combo_box_set_active (_tmp88_, 0);
	deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) self, NULL, NULL);
	deja_dup_config_location_set_location_widgets (self);
	_tmp89_ = self->priv->button;
	g_signal_connect_object (_tmp89_, "changed", (GCallback) _deja_dup_config_location_handle_changed_gtk_combo_box_changed, self, 0);
	deja_dup_config_widget_watch_key ((DejaDupConfigWidget*) self, DEJA_DUP_BACKEND_KEY, NULL);
	_tmp90_ = deja_dup_get_settings (DEJA_DUP_FILE_ROOT);
	_tmp91_ = _tmp90_;
	deja_dup_config_widget_watch_key ((DejaDupConfigWidget*) self, DEJA_DUP_FILE_PATH_KEY, _tmp91_);
	_g_object_unref0 (_tmp91_);
	_g_object_unref0 (textrenderer);
	_g_object_unref0 (pixrenderer);
	__g_list_free__g_object_unref0_0 (vols);
	_g_object_unref0 (mon);
	_g_object_unref0 (accessible);
	_g_object_unref0 (vbox);
	return obj;
}


static void deja_dup_config_location_class_init (DejaDupConfigLocationClass * klass) {
	deja_dup_config_location_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (DejaDupConfigLocationPrivate));
	((DejaDupConfigWidgetClass *) klass)->set_from_config = deja_dup_config_location_real_set_from_config;
	((DejaDupConfigWidgetClass *) klass)->set_from_config_finish = deja_dup_config_location_real_set_from_config_finish;
	G_OBJECT_CLASS (klass)->get_property = _vala_deja_dup_config_location_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_deja_dup_config_location_set_property;
	G_OBJECT_CLASS (klass)->constructor = deja_dup_config_location_constructor;
	G_OBJECT_CLASS (klass)->finalize = deja_dup_config_location_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_CONFIG_LOCATION_EXTRAS, g_param_spec_object ("extras", "extras", "extras", gtk_event_box_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_CONFIG_LOCATION_LABEL_SIZES, g_param_spec_object ("label-sizes", "label-sizes", "label-sizes", gtk_size_group_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}


static void deja_dup_config_location_instance_init (DejaDupConfigLocation * self) {
	self->priv = DEJA_DUP_CONFIG_LOCATION_GET_PRIVATE (self);
	self->priv->index_s3 = -2;
	self->priv->index_gcs = -2;
	self->priv->index_gdrive = -2;
	self->priv->index_rackspace = -2;
	self->priv->index_openstack = -2;
	self->priv->index_u1 = -2;
	self->priv->index_cloud_sep = -2;
	self->priv->num_volumes = 0;
	self->priv->index_vol_sep = -2;
	self->priv->extras_max_width = 0;
	self->priv->extras_max_height = 0;
}


static void deja_dup_config_location_finalize (GObject* obj) {
	DejaDupConfigLocation * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocation);
	_g_object_unref0 (self->priv->_extras);
	_g_object_unref0 (self->priv->_label_sizes);
	_g_object_unref0 (self->priv->button);
	_g_object_unref0 (self->priv->store);
	_g_object_unref0 (self->priv->sort_model);
	G_OBJECT_CLASS (deja_dup_config_location_parent_class)->finalize (obj);
}


GType deja_dup_config_location_get_type (void) {
	static volatile gsize deja_dup_config_location_type_id__volatile = 0;
	if (g_once_init_enter (&deja_dup_config_location_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigLocationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_location_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigLocation), 0, (GInstanceInitFunc) deja_dup_config_location_instance_init, NULL };
		GType deja_dup_config_location_type_id;
		deja_dup_config_location_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_WIDGET, "DejaDupConfigLocation", &g_define_type_info, 0);
		g_once_init_leave (&deja_dup_config_location_type_id__volatile, deja_dup_config_location_type_id);
	}
	return deja_dup_config_location_type_id__volatile;
}


static void _vala_deja_dup_config_location_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	DejaDupConfigLocation * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocation);
	switch (property_id) {
		case DEJA_DUP_CONFIG_LOCATION_EXTRAS:
		g_value_set_object (value, deja_dup_config_location_get_extras (self));
		break;
		case DEJA_DUP_CONFIG_LOCATION_LABEL_SIZES:
		g_value_set_object (value, deja_dup_config_location_get_label_sizes (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_deja_dup_config_location_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	DejaDupConfigLocation * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocation);
	switch (property_id) {
		case DEJA_DUP_CONFIG_LOCATION_EXTRAS:
		deja_dup_config_location_set_extras (self, g_value_get_object (value));
		break;
		case DEJA_DUP_CONFIG_LOCATION_LABEL_SIZES:
		deja_dup_config_location_set_label_sizes (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


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


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


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



