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

/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 4 -*-
 *
 * Copyright (C) 2011,2012 Canonical Ltd
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 3 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Authors: Robert Ancell <robert.ancell@canonical.com>
 *          Michael Terry <michael.terry@canonical.com>
 */

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <cairo-gobject.h>
#include <float.h>
#include <math.h>
#include <lightdm.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gio/gio.h>
#include <glib/gi18n-lib.h>
#include <grp.h>
#include <gdk/gdk.h>
#include "config.h"

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

#define TYPE_REMOTE_SERVER_FIELD (remote_server_field_get_type ())
typedef struct _RemoteServerField RemoteServerField;
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_FADABLE (fadable_get_type ())
#define FADABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FADABLE, Fadable))
#define IS_FADABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FADABLE))
#define FADABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FADABLE, FadableIface))

typedef struct _Fadable Fadable;
typedef struct _FadableIface FadableIface;

#define TYPE_FADE_TRACKER (fade_tracker_get_type ())
#define FADE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FADE_TRACKER, FadeTracker))
#define FADE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FADE_TRACKER, FadeTrackerClass))
#define IS_FADE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FADE_TRACKER))
#define IS_FADE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FADE_TRACKER))
#define FADE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FADE_TRACKER, FadeTrackerClass))

typedef struct _FadeTracker FadeTracker;
typedef struct _FadeTrackerClass FadeTrackerClass;

#define TYPE_FADABLE_BOX (fadable_box_get_type ())
#define FADABLE_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FADABLE_BOX, FadableBox))
#define FADABLE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FADABLE_BOX, FadableBoxClass))
#define IS_FADABLE_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FADABLE_BOX))
#define IS_FADABLE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FADABLE_BOX))
#define FADABLE_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FADABLE_BOX, FadableBoxClass))

typedef struct _FadableBox FadableBox;
typedef struct _FadableBoxClass FadableBoxClass;
typedef struct _FadableBoxPrivate FadableBoxPrivate;

#define TYPE_GREETER_LIST (greeter_list_get_type ())
#define GREETER_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GREETER_LIST, GreeterList))
#define GREETER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GREETER_LIST, GreeterListClass))
#define IS_GREETER_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GREETER_LIST))
#define IS_GREETER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GREETER_LIST))
#define GREETER_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GREETER_LIST, GreeterListClass))

typedef struct _GreeterList GreeterList;
typedef struct _GreeterListClass GreeterListClass;
typedef struct _GreeterListPrivate GreeterListPrivate;

#define TYPE_PROMPT_BOX (prompt_box_get_type ())
#define PROMPT_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROMPT_BOX, PromptBox))
#define PROMPT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROMPT_BOX, PromptBoxClass))
#define IS_PROMPT_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROMPT_BOX))
#define IS_PROMPT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROMPT_BOX))
#define PROMPT_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROMPT_BOX, PromptBoxClass))

typedef struct _PromptBox PromptBox;
typedef struct _PromptBoxClass PromptBoxClass;

#define TYPE_DASH_BOX (dash_box_get_type ())
#define DASH_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DASH_BOX, DashBox))
#define DASH_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DASH_BOX, DashBoxClass))
#define IS_DASH_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DASH_BOX))
#define IS_DASH_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DASH_BOX))
#define DASH_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DASH_BOX, DashBoxClass))

typedef struct _DashBox DashBox;
typedef struct _DashBoxClass DashBoxClass;
typedef enum  {
	GREETER_LIST_MODE_ENTRY,
	GREETER_LIST_MODE_SCROLLING
} GreeterListMode;

#define GREETER_LIST_TYPE_MODE (greeter_list_mode_get_type ())

#define TYPE_USER_LIST (user_list_get_type ())
#define USER_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_USER_LIST, UserList))
#define USER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_USER_LIST, UserListClass))
#define IS_USER_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_USER_LIST))
#define IS_USER_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_USER_LIST))
#define USER_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_USER_LIST, UserListClass))

typedef struct _UserList UserList;
typedef struct _UserListClass UserListClass;
typedef struct _UserListPrivate UserListPrivate;

#define TYPE_REMOTE_LOGIN_SERVICE (remote_login_service_get_type ())
#define REMOTE_LOGIN_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REMOTE_LOGIN_SERVICE, RemoteLoginService))
#define IS_REMOTE_LOGIN_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REMOTE_LOGIN_SERVICE))
#define REMOTE_LOGIN_SERVICE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_REMOTE_LOGIN_SERVICE, RemoteLoginServiceIface))

typedef struct _RemoteLoginService RemoteLoginService;
typedef struct _RemoteLoginServiceIface RemoteLoginServiceIface;

#define TYPE_REMOTE_LOGIN_SERVICE_PROXY (remote_login_service_proxy_get_type ())

#define TYPE_REMOTE_SERVER (remote_server_get_type ())
typedef struct _RemoteServer RemoteServer;

#define TYPE_REMOTE_SERVER_APPLICATION (remote_server_application_get_type ())
typedef struct _RemoteServerApplication RemoteServerApplication;

#define TYPE_EMAIL_AUTOCOMPLETER (email_autocompleter_get_type ())
#define EMAIL_AUTOCOMPLETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EMAIL_AUTOCOMPLETER, EmailAutocompleter))
#define EMAIL_AUTOCOMPLETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EMAIL_AUTOCOMPLETER, EmailAutocompleterClass))
#define IS_EMAIL_AUTOCOMPLETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EMAIL_AUTOCOMPLETER))
#define IS_EMAIL_AUTOCOMPLETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EMAIL_AUTOCOMPLETER))
#define EMAIL_AUTOCOMPLETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EMAIL_AUTOCOMPLETER, EmailAutocompleterClass))

typedef struct _EmailAutocompleter EmailAutocompleter;
typedef struct _EmailAutocompleterClass EmailAutocompleterClass;
enum  {
	USER_LIST_0_PROPERTY,
	USER_LIST_OFFER_GUEST_PROPERTY,
	USER_LIST_SHOW_HIDDEN_USERS_PROPERTY,
	USER_LIST_DEFAULT_SESSION_PROPERTY,
	USER_LIST_SESSION_PROPERTY,
	USER_LIST_NUM_PROPERTIES
};
static GParamSpec* user_list_properties[USER_LIST_NUM_PROPERTIES];

#define USER_LIST_TYPE_TEST_ENTRY (user_list_test_entry_get_type ())
typedef struct _UserListTestEntry UserListTestEntry;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
#define _email_autocompleter_unref0(var) ((var == NULL) ? NULL : (var = (email_autocompleter_unref (var), NULL)))

#define TYPE_BACKGROUND (background_get_type ())
#define BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND, Background))
#define BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND, BackgroundClass))
#define IS_BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND))
#define IS_BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND))
#define BACKGROUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND, BackgroundClass))

typedef struct _Background Background;
typedef struct _BackgroundClass BackgroundClass;

#define TYPE_MENU_BAR (menu_bar_get_type ())
#define MENU_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MENU_BAR, MenuBar))
#define MENU_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MENU_BAR, MenuBarClass))
#define IS_MENU_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MENU_BAR))
#define IS_MENU_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MENU_BAR))
#define MENU_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MENU_BAR, MenuBarClass))

typedef struct _MenuBar MenuBar;
typedef struct _MenuBarClass MenuBarClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _UserListQueryDirectoryServersData UserListQueryDirectoryServersData;
#define _remote_server_free0(var) ((var == NULL) ? NULL : (var = (remote_server_free (var), NULL)))

#define TYPE_SLICK_GREETER (slick_greeter_get_type ())
#define SLICK_GREETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SLICK_GREETER, SlickGreeter))
#define SLICK_GREETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SLICK_GREETER, SlickGreeterClass))
#define IS_SLICK_GREETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SLICK_GREETER))
#define IS_SLICK_GREETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SLICK_GREETER))
#define SLICK_GREETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SLICK_GREETER, SlickGreeterClass))

typedef struct _SlickGreeter SlickGreeter;
typedef struct _SlickGreeterClass SlickGreeterClass;

#define TYPE_DASH_ENTRY (dash_entry_get_type ())
#define DASH_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DASH_ENTRY, DashEntry))
#define DASH_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DASH_ENTRY, DashEntryClass))
#define IS_DASH_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DASH_ENTRY))
#define IS_DASH_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DASH_ENTRY))
#define DASH_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DASH_ENTRY, DashEntryClass))

typedef struct _DashEntry DashEntry;
typedef struct _DashEntryClass DashEntryClass;
#define _g_match_info_unref0(var) ((var == NULL) ? NULL : (var = (g_match_info_unref (var), NULL)))
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
typedef struct _SlickGreeterPrivate SlickGreeterPrivate;
typedef struct _UserListRemoteDirectoryRespondCbData UserListRemoteDirectoryRespondCbData;
typedef struct _Block10Data Block10Data;

#define TYPE_USER_PROMPT_BOX (user_prompt_box_get_type ())
#define USER_PROMPT_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_USER_PROMPT_BOX, UserPromptBox))
#define USER_PROMPT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_USER_PROMPT_BOX, UserPromptBoxClass))
#define IS_USER_PROMPT_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_USER_PROMPT_BOX))
#define IS_USER_PROMPT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_USER_PROMPT_BOX))
#define USER_PROMPT_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_USER_PROMPT_BOX, UserPromptBoxClass))

typedef struct _UserPromptBox UserPromptBox;
typedef struct _UserPromptBoxClass UserPromptBoxClass;
typedef struct _PromptBoxPrivate PromptBoxPrivate;

#define TYPE_FADING_LABEL (fading_label_get_type ())
#define FADING_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FADING_LABEL, FadingLabel))
#define FADING_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FADING_LABEL, FadingLabelClass))
#define IS_FADING_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FADING_LABEL))
#define IS_FADING_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FADING_LABEL))
#define FADING_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FADING_LABEL, FadingLabelClass))

typedef struct _FadingLabel FadingLabel;
typedef struct _FadingLabelClass FadingLabelClass;

#define TYPE_FLAT_BUTTON (flat_button_get_type ())
#define FLAT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAT_BUTTON, FlatButton))
#define FLAT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FLAT_BUTTON, FlatButtonClass))
#define IS_FLAT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAT_BUTTON))
#define IS_FLAT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FLAT_BUTTON))
#define FLAT_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FLAT_BUTTON, FlatButtonClass))

typedef struct _FlatButton FlatButton;
typedef struct _FlatButtonClass FlatButtonClass;
typedef struct _UserPromptBoxPrivate UserPromptBoxPrivate;
typedef struct _Block11Data Block11Data;
#define _g_ptr_array_unref0(var) ((var == NULL) ? NULL : (var = (g_ptr_array_unref (var), NULL)))
#define _remote_server_field_free0(var) ((var == NULL) ? NULL : (var = (remote_server_field_free (var), NULL)))
typedef struct _UserListCreateRemoteFieldsForCurrentItemData UserListCreateRemoteFieldsForCurrentItemData;

#define TYPE_SESSION_LIST (session_list_get_type ())
#define SESSION_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SESSION_LIST, SessionList))
#define SESSION_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SESSION_LIST, SessionListClass))
#define IS_SESSION_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SESSION_LIST))
#define IS_SESSION_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SESSION_LIST))
#define SESSION_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SESSION_LIST, SessionListClass))

typedef struct _SessionList SessionList;
typedef struct _SessionListClass SessionListClass;
#define _g_dir_close0(var) ((var == NULL) ? NULL : (var = (g_dir_close (var), NULL)))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

struct _RemoteServerField {
	gchar* type;
	gboolean required;
	GVariant* default_value;
	GHashTable* properties;
};

struct _FadableIface {
	GTypeInterface parent_iface;
	FadeTracker* (*get_fade_tracker) (Fadable* self);
	void (*set_fade_tracker) (Fadable* self, FadeTracker* value);
};

struct _FadableBox {
	GtkEventBox parent_instance;
	FadableBoxPrivate * priv;
};

struct _FadableBoxClass {
	GtkEventBoxClass parent_class;
	void (*draw_full_alpha) (FadableBox* self, cairo_t* c);
};

struct _GreeterList {
	FadableBox parent_instance;
	GreeterListPrivate * priv;
	gchar* greeter_authenticating_user;
	gboolean _always_show_manual;
	GList* entries;
	DashBox* greeter_box;
	GreeterListMode mode;
	gboolean will_clear;
	gboolean auth_interaction_seen;
	gboolean unacknowledged_messages;
	gchar* test_username;
	gboolean test_is_authenticated;
};

struct _GreeterListClass {
	FadableBoxClass parent_class;
	gchar* (*get_selected_id) (GreeterList* self);
	void (*focus_prompt) (GreeterList* self);
	void (*show_authenticated) (GreeterList* self, gboolean successful);
	void (*insert_entry) (GreeterList* self, PromptBox* entry);
	void (*add_manual_entry) (GreeterList* self);
	gint (*get_position_y) (GreeterList* self, gdouble position);
	void (*setup_prompt_box) (GreeterList* self, gboolean fade);
	void (*show_prompt_cb) (GreeterList* self, const gchar* text, LightDMPromptType type);
	void (*authentication_complete_cb) (GreeterList* self);
	void (*start_authentication) (GreeterList* self);
	gchar* (*get_lightdm_session) (GreeterList* self);
	void (*test_start_authentication) (GreeterList* self);
};

struct _UserList {
	GreeterList parent_instance;
	UserListPrivate * priv;
};

struct _UserListClass {
	GreeterListClass parent_class;
};

struct _RemoteServerApplication {
	gchar* application_id;
	gint pin_position;
};

struct _RemoteServer {
	gchar* type;
	gchar* name;
	gchar* url;
	gboolean last_used_server;
	RemoteServerField* fields;
	gint fields_length1;
	RemoteServerApplication* applications;
	gint applications_length1;
};

struct _RemoteLoginServiceIface {
	GTypeInterface parent_iface;
	void (*get_servers) (RemoteLoginService* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*get_servers_finish) (RemoteLoginService* self, GAsyncResult* _res_, RemoteServer** serverList, gint* serverList_length1, GError** error);
	void (*get_servers_for_login) (RemoteLoginService* self, const gchar* url, const gchar* emailAddress, const gchar* password, gboolean allowCache, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*get_servers_for_login_finish) (RemoteLoginService* self, GAsyncResult* _res_, gboolean* loginSuccess, gchar** dataType, RemoteServer** serverList, gint* serverList_length1, GError** error);
	void (*get_cached_domains_for_server) (RemoteLoginService* self, const gchar* url, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*get_cached_domains_for_server_finish) (RemoteLoginService* self, GAsyncResult* _res_, gchar*** domains, gint* domains_length1, GError** error);
	void (*set_last_used_server) (RemoteLoginService* self, const gchar* uccsUrl, const gchar* serverUrl, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*set_last_used_server_finish) (RemoteLoginService* self, GAsyncResult* _res_, GError** error);
};

struct _UserListPrivate {
	gboolean _offer_guest;
	GdkPixbuf* message_pixbuf;
	guint change_background_timeout;
	guint remote_login_service_watch;
	RemoteLoginService* remote_login_service;
	GList* remote_directory_server_list;
	GList* remote_login_server_list;
	GHashTable* current_remote_fields;
	gchar* currently_browsing_server_url;
	gchar* currently_browsing_server_email;
	EmailAutocompleter* remote_server_email_field_autocompleter;
	gchar* authenticate_user;
	gboolean show_hidden_users_;
	gchar* _default_session;
	gchar* _session;
	GList* test_backgrounds;
	gint n_test_entries;
	gboolean test_prompted_sso;
	gchar* test_two_prompts_first;
	gboolean test_request_new_password;
	gchar* test_new_password;
};

struct _UserListTestEntry {
	gchar* username;
	gchar* real_name;
	gchar* background;
	gboolean is_active;
	gboolean has_messages;
	gchar* session;
};

struct _UserListQueryDirectoryServersData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	UserList* self;
	RemoteServer* server_list;
	gint server_list_length1;
	gint _server_list_size_;
	RemoteLoginService* _tmp0_;
	RemoteServer* _tmp1_;
	gint _tmp2_;
	GError* e;
	GError* _tmp3_;
	const gchar* _tmp4_;
	GError* _inner_error0_;
};

struct _SlickGreeter {
	GTypeInstance parent_instance;
	volatile int ref_count;
	SlickGreeterPrivate * priv;
	gboolean test_mode;
	gboolean orca_needs_kick;
};

struct _SlickGreeterClass {
	GTypeClass parent_class;
	void (*finalize) (SlickGreeter *self);
};

struct _UserListRemoteDirectoryRespondCbData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	UserList* self;
	gchar* _tmp0_;
	gchar* _tmp1_;
	DashEntry* password_field;
	GHashTable* _tmp2_;
	gconstpointer _tmp3_;
	GtkWidget* _tmp4_;
	DashEntry* _tmp5_;
	GtkEntry* email_field;
	GHashTable* _tmp6_;
	gconstpointer _tmp7_;
	GtkWidget* _tmp8_;
	GtkEntry* _tmp9_;
	DashEntry* _tmp10_;
	GtkEntry* _tmp11_;
	RemoteServer* server_list;
	RemoteServer* _tmp12_;
	gint server_list_length1;
	gint _server_list_size_;
	gchar* email;
	GtkEntry* _tmp13_;
	const gchar* _tmp14_;
	const gchar* _tmp15_;
	gchar* _tmp16_;
	gboolean email_valid;
	GRegex* re;
	GRegex* _tmp17_;
	GMatchInfo* info;
	GRegex* _tmp18_;
	const gchar* _tmp19_;
	GMatchInfo* _tmp20_;
	gboolean _tmp21_;
	gboolean _tmp22_;
	gboolean _tmp23_;
	GMatchInfo* _tmp24_;
	GMatchInfo* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	const gchar* _tmp28_;
	GError* e;
	GError* _tmp29_;
	const gchar* _tmp30_;
	PromptBox* _tmp31_;
	PromptBox* _tmp32_;
	GList* _tmp33_;
	gboolean login_success;
	gchar* url;
	PromptBox* _tmp34_;
	PromptBox* _tmp35_;
	const gchar* _tmp36_;
	const gchar* _tmp37_;
	gchar* _tmp38_;
	SlickGreeter* _tmp39_;
	DashEntry* _tmp40_;
	const gchar* _tmp41_;
	const gchar* _tmp42_;
	RemoteServer* _tmp43_;
	gint _tmp44_;
	DashEntry* _tmp45_;
	const gchar* _tmp46_;
	const gchar* _tmp47_;
	RemoteServer* _tmp48_;
	gint _tmp49_;
	DashEntry* _tmp50_;
	const gchar* _tmp51_;
	const gchar* _tmp52_;
	RemoteServer* _tmp53_;
	gint _tmp54_;
	DashEntry* _tmp55_;
	const gchar* _tmp56_;
	const gchar* _tmp57_;
	RemoteServer* _tmp58_;
	gint _tmp59_;
	DashEntry* _tmp60_;
	const gchar* _tmp61_;
	const gchar* _tmp62_;
	RemoteServer* _tmp63_;
	gint _tmp64_;
	gchar* data_type;
	gboolean allowcache;
	gboolean _tmp65_;
	gboolean _tmp66_;
	PromptBox* _tmp67_;
	PromptBox* _tmp68_;
	gboolean _tmp69_;
	gboolean _tmp70_;
	const gchar* _tmp71_;
	const gchar* _tmp72_;
	const gchar* _tmp73_;
	const gchar* _tmp74_;
	RemoteLoginService* _tmp75_;
	const gchar* _tmp76_;
	const gchar* _tmp77_;
	DashEntry* _tmp78_;
	const gchar* _tmp79_;
	const gchar* _tmp80_;
	gboolean _tmp81_;
	gchar* _tmp82_;
	RemoteServer* _tmp83_;
	gint _tmp84_;
	const gchar* _tmp85_;
	gchar* _tmp86_;
	const gchar* _tmp87_;
	gchar* _tmp88_;
	GError* _vala1_e;
	GError* _tmp89_;
	const gchar* _tmp90_;
	DashEntry* _tmp91_;
	RemoteServer* _tmp92_;
	gint _tmp92__length1;
	gchar* last_used_server_list_name;
	gchar* _tmp93_;
	RemoteServer* _tmp94_;
	gint _tmp94__length1;
	RemoteServer* remote_server_collection;
	gint remote_server_collection_length1;
	gint _remote_server_collection_size_;
	gint remote_server_it;
	RemoteServer _tmp95_;
	RemoteServer _tmp96_;
	RemoteServer remote_server;
	PromptBox* _vala2_e;
	RemoteServer _tmp97_;
	PromptBox* _tmp98_;
	RemoteServer _tmp99_;
	PromptBox* _tmp100_;
	const gchar* _tmp101_;
	const gchar* _tmp102_;
	gchar* _tmp103_;
	const gchar* _tmp104_;
	const gchar* _tmp105_;
	GList* _tmp106_;
	GError* _inner_error0_;
};

struct _Block10Data {
	int _ref_count_;
	UserList* self;
	GtkMessageDialog* dialog;
};

struct _PromptBox {
	FadableBox parent_instance;
	PromptBoxPrivate * priv;
	GtkGrid* box_grid;
	GtkGrid* name_grid;
	FadingLabel* name_label;
	FlatButton* option_button;
	GtkWidget* small_box_widget;
	FadingLabel* small_name_label;
	gint start_row;
	gint last_row;
};

struct _PromptBoxClass {
	FadableBoxClass parent_class;
	GtkGrid* (*create_name_grid) (PromptBox* self);
	GtkGrid* (*create_small_name_grid) (PromptBox* self);
	void (*set_start_row) (PromptBox* self);
	void (*reset_last_row) (PromptBox* self);
	void (*add_static_prompts) (PromptBox* self);
};

struct _UserPromptBox {
	PromptBox parent_instance;
	UserPromptBoxPrivate * priv;
	gchar* background;
	gchar* session;
	gboolean is_active;
};

struct _UserPromptBoxClass {
	PromptBoxClass parent_class;
};

struct _Block11Data {
	int _ref_count_;
	GPtrArray* self;
	GCompareFunc compare_func;
};

struct _UserListCreateRemoteFieldsForCurrentItemData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	UserList* self;
	GList* server_list;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	gchar* url;
	PromptBox* _tmp3_;
	PromptBox* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* username;
	PromptBox* _tmp8_;
	PromptBox* _tmp9_;
	const gchar* _tmp10_;
	const gchar* _tmp11_;
	gchar* _tmp12_;
	GList* remote_server_collection;
	GList* remote_server_it;
	RemoteServer* _tmp13_;
	RemoteServer* remote_server;
	gchar* remote_username;
	RemoteServer* _tmp14_;
	RemoteServer _tmp15_;
	gchar* _tmp16_;
	gboolean _tmp17_;
	RemoteServer* _tmp18_;
	const gchar* _tmp19_;
	const gchar* _tmp20_;
	gboolean _tmp21_;
	const gchar* _tmp22_;
	const gchar* _tmp23_;
	const gchar* _tmp24_;
	PromptBox* _tmp25_;
	PromptBox* _tmp26_;
	const gchar* _tmp27_;
	const gchar* _tmp28_;
	RemoteServer* _tmp29_;
	const gchar* _tmp30_;
	GList* fields;
	RemoteServer* _tmp31_;
	RemoteServerField* _tmp32_;
	gint _tmp32__length1;
	RemoteServerField* field_collection;
	gint field_collection_length1;
	gint _field_collection_size_;
	gint field_it;
	RemoteServerField _tmp33_;
	RemoteServerField _tmp34_;
	RemoteServerField field;
	RemoteServerField _tmp35_;
	RemoteServerField _tmp36_;
	RemoteServerField* _tmp37_;
	GList* _tmp38_;
	GList* _vala1_field_collection;
	GList* _vala1_field_it;
	RemoteServerField* _tmp39_;
	RemoteServerField* _vala1_field;
	GtkWidget* widget;
	gchar* default_value;
	gchar* _tmp40_;
	gboolean _tmp41_;
	RemoteServerField* _tmp42_;
	GVariant* _tmp43_;
	RemoteServerField* _tmp44_;
	GVariant* _tmp45_;
	const GVariantType* _tmp46_;
	RemoteServerField* _tmp47_;
	GVariant* _tmp48_;
	const gchar* _tmp49_;
	gchar* _tmp50_;
	RemoteServerField* _tmp51_;
	const gchar* _tmp52_;
	DashEntry* entry;
	DashEntry* _tmp53_;
	DashEntry* _tmp54_;
	const gchar* _tmp55_;
	DashEntry* _tmp56_;
	GtkWidget* _tmp57_;
	RemoteServerField* _tmp58_;
	const gchar* _tmp59_;
	DashEntry* _vala1_entry;
	DashEntry* _tmp60_;
	DashEntry* _tmp61_;
	const gchar* _tmp62_;
	DashEntry* _tmp63_;
	GtkWidget* _tmp64_;
	RemoteServerField* _tmp65_;
	const gchar* _tmp66_;
	gchar** domainsArray;
	gchar** _tmp67_;
	gint domainsArray_length1;
	gint _domainsArray_size_;
	gboolean _tmp68_;
	gboolean _tmp69_;
	RemoteServerField* _tmp70_;
	GHashTable* _tmp71_;
	RemoteServerField* _tmp72_;
	GHashTable* _tmp73_;
	RemoteServerField* _tmp74_;
	GHashTable* _tmp75_;
	gconstpointer _tmp76_;
	const GVariantType* _tmp77_;
	RemoteServerField* _tmp78_;
	GHashTable* _tmp79_;
	gconstpointer _tmp80_;
	gsize _tmp81_;
	gchar** _tmp82_;
	GPtrArray* domains;
	GPtrArray* _tmp83_;
	gint i;
	gboolean _tmp84_;
	gint _tmp85_;
	gchar** _tmp86_;
	gint _tmp86__length1;
	GPtrArray* _tmp87_;
	gchar** _tmp88_;
	gint _tmp88__length1;
	const gchar* _tmp89_;
	gchar* _tmp90_;
	gboolean _tmp91_;
	gboolean _tmp92_;
	gboolean _tmp93_;
	RemoteServerField* _tmp94_;
	GHashTable* _tmp95_;
	RemoteServerField* _tmp96_;
	GHashTable* _tmp97_;
	RemoteServerField* _tmp98_;
	GHashTable* _tmp99_;
	gconstpointer _tmp100_;
	const GVariantType* _tmp101_;
	RemoteServerField* _tmp102_;
	GHashTable* _tmp103_;
	gconstpointer _tmp104_;
	gboolean read_only;
	gboolean _tmp105_;
	GPtrArray* _tmp106_;
	gint _tmp107_;
	gint _tmp108_;
	gboolean _tmp109_;
	GPtrArray* _tmp110_;
	gint _tmp111_;
	gint _tmp112_;
	gboolean _tmp113_;
	GPtrArray* _tmp114_;
	gconstpointer _tmp115_;
	const gchar* _tmp116_;
	const gchar* _tmp117_;
	gint _tmp118_;
	gint _tmp119_;
	DashEntry* prompt;
	DashEntry* _tmp120_;
	const gchar* _tmp121_;
	GPtrArray* _tmp122_;
	gint _tmp123_;
	gint _tmp124_;
	GPtrArray* _tmp125_;
	gconstpointer _tmp126_;
	const gchar* _tmp127_;
	DashEntry* _tmp128_;
	DashEntry* _tmp129_;
	DashEntry* _tmp130_;
	GtkWidget* _tmp131_;
	const gchar* _tmp132_;
	gint _tmp133_;
	gint _tmp134_;
	gboolean found;
	gint _vala1_i;
	gboolean _tmp135_;
	gint _tmp136_;
	gboolean _tmp137_;
	GPtrArray* _tmp138_;
	gint _tmp139_;
	gint _tmp140_;
	const gchar* _tmp141_;
	GPtrArray* _tmp142_;
	gconstpointer _tmp143_;
	GPtrArray* _tmp144_;
	const gchar* _tmp145_;
	gchar* _tmp146_;
	GPtrArray* _tmp147_;
	GCompareFunc _tmp148_;
	GtkComboBox* combo;
	GPtrArray* _tmp149_;
	GtkComboBox* _tmp150_;
	const gchar* _tmp151_;
	gint _tmp152_;
	gint _tmp153_;
	gint _vala2_i;
	gboolean _tmp154_;
	gint _tmp155_;
	GPtrArray* _tmp156_;
	gint _tmp157_;
	gint _tmp158_;
	const gchar* _tmp159_;
	GPtrArray* _tmp160_;
	gconstpointer _tmp161_;
	GtkComboBox* _tmp162_;
	GtkEntry* _vala2_entry;
	GtkComboBox* _tmp163_;
	GtkWidget* _tmp164_;
	GtkEntry* _tmp165_;
	GtkEntry* _tmp166_;
	const gchar* _tmp167_;
	GtkComboBox* _tmp168_;
	GtkWidget* _tmp169_;
	RemoteServerField* _tmp170_;
	const gchar* _tmp171_;
	gchar** email_domains;
	gint email_domains_length1;
	gint _email_domains_size_;
	SlickGreeter* _tmp172_;
	gchar* _tmp173_;
	gchar* _tmp174_;
	gchar* _tmp175_;
	gchar* _tmp176_;
	gchar** _tmp177_;
	RemoteLoginService* _tmp178_;
	const gchar* _tmp179_;
	gchar** _tmp180_;
	gint _tmp181_;
	GError* e;
	gint _tmp182_;
	GError* _tmp183_;
	const gchar* _tmp184_;
	DashEntry* _vala3_entry;
	DashEntry* _tmp185_;
	DashEntry* _tmp186_;
	const gchar* _tmp187_;
	DashEntry* _tmp188_;
	GtkWidget* _tmp189_;
	gchar** _tmp190_;
	gint _tmp190__length1;
	DashEntry* _tmp191_;
	gchar** _tmp192_;
	gint _tmp192__length1;
	EmailAutocompleter* _tmp193_;
	RemoteServerField* _tmp194_;
	const gchar* _tmp195_;
	GHashTable* _tmp196_;
	RemoteServerField* _tmp197_;
	const gchar* _tmp198_;
	gchar* _tmp199_;
	GtkWidget* _tmp200_;
	GtkWidget* _tmp201_;
	GError* _inner_error0_;
};

static gint UserList_private_offset;
static gpointer user_list_parent_class = NULL;
VALA_EXTERN SlickGreeter* slick_greeter_singleton;

VALA_EXTERN GType remote_server_field_get_type (void) G_GNUC_CONST ;
VALA_EXTERN RemoteServerField* remote_server_field_dup (const RemoteServerField* self);
VALA_EXTERN void remote_server_field_free (RemoteServerField* self);
VALA_EXTERN void remote_server_field_copy (const RemoteServerField* self,
                               RemoteServerField* dest);
VALA_EXTERN void remote_server_field_destroy (RemoteServerField* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (RemoteServerField, remote_server_field_destroy)
VALA_EXTERN gint remote_server_field_sort_function (RemoteServerField* item1,
                                        RemoteServerField* item2);
VALA_EXTERN GType fade_tracker_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FadeTracker, g_object_unref)
VALA_EXTERN GType fadable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Fadable, g_object_unref)
VALA_EXTERN GType fadable_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FadableBox, g_object_unref)
VALA_EXTERN GType greeter_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GreeterList, g_object_unref)
VALA_EXTERN GType prompt_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PromptBox, g_object_unref)
VALA_EXTERN GType dash_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DashBox, g_object_unref)
VALA_EXTERN GType greeter_list_mode_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType user_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (UserList, g_object_unref)
VALA_EXTERN GType remote_login_service_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint remote_login_service_register_object (void* object,
                                            GDBusConnection* connection,
                                            const gchar* path,
                                            GError** error);
VALA_EXTERN GType remote_server_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType remote_server_application_get_type (void) G_GNUC_CONST ;
VALA_EXTERN RemoteServerApplication* remote_server_application_dup (const RemoteServerApplication* self);
VALA_EXTERN void remote_server_application_free (RemoteServerApplication* self);
VALA_EXTERN void remote_server_application_copy (const RemoteServerApplication* self,
                                     RemoteServerApplication* dest);
VALA_EXTERN void remote_server_application_destroy (RemoteServerApplication* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (RemoteServerApplication, remote_server_application_destroy)
VALA_EXTERN RemoteServer* remote_server_dup (const RemoteServer* self);
VALA_EXTERN void remote_server_free (RemoteServer* self);
VALA_EXTERN void remote_server_copy (const RemoteServer* self,
                         RemoteServer* dest);
VALA_EXTERN void remote_server_destroy (RemoteServer* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (RemoteServer, remote_server_destroy)
VALA_EXTERN GType remote_login_service_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RemoteLoginService, g_object_unref)
VALA_EXTERN gpointer email_autocompleter_ref (gpointer instance);
VALA_EXTERN void email_autocompleter_unref (gpointer instance);
VALA_EXTERN GParamSpec* param_spec_email_autocompleter (const gchar* name,
                                            const gchar* nick,
                                            const gchar* blurb,
                                            GType object_type,
                                            GParamFlags flags);
VALA_EXTERN void value_set_email_autocompleter (GValue* value,
                                    gpointer v_object);
VALA_EXTERN void value_take_email_autocompleter (GValue* value,
                                     gpointer v_object);
VALA_EXTERN gpointer value_get_email_autocompleter (const GValue* value);
VALA_EXTERN GType email_autocompleter_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (EmailAutocompleter, email_autocompleter_unref)
VALA_EXTERN void greeter_list_insert_entry (GreeterList* self,
                                PromptBox* entry);
VALA_EXTERN void greeter_list_setup_prompt_box (GreeterList* self,
                                    gboolean fade);
VALA_EXTERN void greeter_list_start_authentication (GreeterList* self);
VALA_EXTERN void greeter_list_focus_prompt (GreeterList* self);
VALA_EXTERN void greeter_list_show_authenticated (GreeterList* self,
                                      gboolean successful);
VALA_EXTERN void greeter_list_add_manual_entry (GreeterList* self);
VALA_EXTERN gchar* greeter_list_get_lightdm_session (GreeterList* self);
VALA_EXTERN void greeter_list_show_prompt_cb (GreeterList* self,
                                  const gchar* text,
                                  LightDMPromptType type);
VALA_EXTERN void greeter_list_test_start_authentication (GreeterList* self);
static GType user_list_test_entry_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static UserListTestEntry* user_list_test_entry_dup (const UserListTestEntry* self);
static void user_list_test_entry_free (UserListTestEntry* self);
static void user_list_test_entry_copy (const UserListTestEntry* self,
                                UserListTestEntry* dest);
static void user_list_test_entry_destroy (UserListTestEntry* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (UserListTestEntry, user_list_test_entry_destroy)
static void _remote_server_free0_ (gpointer var);
static inline void _g_list_free__remote_server_free0_ (GList* self);
static void _g_free0_ (gpointer var);
static inline void _g_list_free__g_free0_ (GList* self);
VALA_EXTERN GType background_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Background, g_object_unref)
VALA_EXTERN GType menu_bar_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MenuBar, g_object_unref)
VALA_EXTERN UserList* user_list_new (Background* bg,
                         MenuBar* mb);
VALA_EXTERN UserList* user_list_construct (GType object_type,
                               Background* bg,
                               MenuBar* mb);
static void user_list_remove_remote_servers (UserList* self);
VALA_EXTERN void greeter_list_remove_entries_with_prefix (GreeterList* self,
                                              const gchar* prefix);
static void user_list_remove_remote_login_servers (UserList* self);
VALA_EXTERN gboolean greeter_list_get_always_show_manual (GreeterList* self);
static void user_list_query_directory_servers_data_free (gpointer _data);
static void user_list_query_directory_servers (UserList* self,
                                        GAsyncReadyCallback _callback_,
                                        gpointer _user_data_);
static void user_list_query_directory_servers_finish (UserList* self,
                                               GAsyncResult* _res_);
static gboolean user_list_query_directory_servers_co (UserListQueryDirectoryServersData* _data_);
VALA_EXTERN void remote_login_service_get_servers (RemoteLoginService* self,
                                       GAsyncReadyCallback _callback_,
                                       gpointer _user_data_);
VALA_EXTERN void remote_login_service_get_servers_finish (RemoteLoginService* self,
                                              GAsyncResult* _res_,
                                              RemoteServer** serverList,
                                              gint* serverList_length1,
                                              GError** error);
static void user_list_query_directory_servers_ready (GObject* source_object,
                                              GAsyncResult* _res_,
                                              gpointer _user_data_);
static void _vala_RemoteServer_array_free (RemoteServer * array,
                                    gssize array_length);
static void user_list_set_remote_directory_servers (UserList* self,
                                             RemoteServer* server_list,
                                             gint server_list_length1);
static gchar* user_list_user_list_name_for_remote_directory_server (UserList* self,
                                                             RemoteServer* remote_server);
static gchar* user_list_username_from_remote_server_fields (UserList* self,
                                                     RemoteServer* remote_server);
static gchar* user_list_user_list_name_for_remote_login_server (UserList* self,
                                                         RemoteServer* remote_server);
static gchar* user_list_url_from_remote_loding_server_list_name (UserList* self,
                                                          const gchar* remote_server_list_name);
static gchar* user_list_username_from_remote_loding_server_list_name (UserList* self,
                                                               const gchar* remote_server_list_name);
VALA_EXTERN PromptBox* greeter_list_find_entry (GreeterList* self,
                                    const gchar* id);
VALA_EXTERN PromptBox* prompt_box_new (const gchar* id);
VALA_EXTERN PromptBox* prompt_box_construct (GType object_type,
                                 const gchar* id);
VALA_EXTERN void prompt_box_set_label (PromptBox* self,
                           const gchar* value);
static void user_list_remote_directory_respond_cb (UserList* self,
                                            GAsyncReadyCallback _callback_,
                                            gpointer _user_data_);
static void user_list_remote_directory_respond_cb_finish (UserList* self,
                                                   GAsyncResult* _res_);
static void _user_list_remote_directory_respond_cb_prompt_box_respond (PromptBox* _sender,
                                                                gchar** response,
                                                                gint response_length1,
                                                                gpointer self);
static void user_list_show_remote_account_dialog (UserList* self);
static void _user_list_show_remote_account_dialog_prompt_box_show_options (PromptBox* _sender,
                                                                    gpointer self);
VALA_EXTERN void greeter_list_add_entry (GreeterList* self,
                             PromptBox* entry);
VALA_EXTERN void greeter_list_remove_entry (GreeterList* self,
                                const gchar* name);
static PromptBox* user_list_create_prompt_for_login_server (UserList* self,
                                                     RemoteServer* remote_server);
static void user_list_remote_login_respond_cb (UserList* self);
static void _user_list_remote_login_respond_cb_prompt_box_respond (PromptBox* _sender,
                                                            gchar** response,
                                                            gint response_length1,
                                                            gpointer self);
static void user_list_remote_login_servers_updated (UserList* self,
                                             const gchar* url,
                                             const gchar* email_address,
                                             const gchar* data_type,
                                             RemoteServer* server_list,
                                             gint server_list_length1);
static void user_list_remote_login_changed (UserList* self,
                                     const gchar* url,
                                     const gchar* email_address);
VALA_EXTERN void greeter_list_set_active_entry (GreeterList* self,
                                    const gchar* name);
static void user_list_on_remote_login_service_appeared (UserList* self,
                                                 GDBusConnection* conn,
                                                 const gchar* name);
static void __lambda48_ (UserList* self,
                  GObject* obj,
                  GAsyncResult* res);
static void _user_list_set_remote_directory_servers_remote_login_service_servers_updated (RemoteLoginService* _sender,
                                                                                   RemoteServer* serverList,
                                                                                   gint serverList_length1,
                                                                                   gpointer self);
static void _user_list_remote_login_servers_updated_remote_login_service_login_servers_updated (RemoteLoginService* _sender,
                                                                                         const gchar* url,
                                                                                         const gchar* emailAddress,
                                                                                         const gchar* dataType,
                                                                                         RemoteServer* serverList,
                                                                                         gint serverList_length1,
                                                                                         gpointer self);
static void _user_list_remote_login_changed_remote_login_service_login_changed (RemoteLoginService* _sender,
                                                                         const gchar* url,
                                                                         const gchar* emailAddress,
                                                                         gpointer self);
static void ___lambda48__gasync_ready_callback (GObject* source_object,
                                         GAsyncResult* res,
                                         gpointer self);
static void user_list_on_remote_login_service_vanished (UserList* self,
                                                 GDBusConnection* conn,
                                                 const gchar* name);
VALA_EXTERN gpointer slick_greeter_ref (gpointer instance);
VALA_EXTERN void slick_greeter_unref (gpointer instance);
VALA_EXTERN GParamSpec* param_spec_slick_greeter (const gchar* name,
                                      const gchar* nick,
                                      const gchar* blurb,
                                      GType object_type,
                                      GParamFlags flags);
VALA_EXTERN void value_set_slick_greeter (GValue* value,
                              gpointer v_object);
VALA_EXTERN void value_take_slick_greeter (GValue* value,
                               gpointer v_object);
VALA_EXTERN gpointer value_get_slick_greeter (const GValue* value);
VALA_EXTERN GType slick_greeter_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SlickGreeter, slick_greeter_unref)
VALA_EXTERN gboolean slick_greeter_hide_users_hint (SlickGreeter* self);
static void user_list_remote_directory_respond_cb_data_free (gpointer _data);
static gboolean user_list_remote_directory_respond_cb_co (UserListRemoteDirectoryRespondCbData* _data_);
VALA_EXTERN GType dash_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DashEntry, g_object_unref)
VALA_EXTERN PromptBox* greeter_list_get_selected_entry (GreeterList* self);
VALA_EXTERN void prompt_box_reset_messages (PromptBox* self);
VALA_EXTERN void greeter_list_show_message (GreeterList* self,
                                const gchar* text,
                                gboolean is_error);
static void user_list_create_remote_fields_for_current_item (UserList* self,
                                                      GList* server_list,
                                                      GAsyncReadyCallback _callback_,
                                                      gpointer _user_data_);
static void user_list_create_remote_fields_for_current_item_finish (UserList* self,
                                                             GAsyncResult* _res_);
VALA_EXTERN const gchar* prompt_box_get_id (PromptBox* self);
static void user_list_test_fill_remote_login_servers (UserList* self,
                                               RemoteServer** server_list,
                                               gint* server_list_length1);
static gboolean _______lambda43_ (UserList* self);
static void user_list_test_call_set_remote_directory_servers (UserList* self);
static gboolean ________lambda43__gsource_func (gpointer self);
static gboolean ________lambda44_ (UserList* self);
static void user_list_test_call_remote_login_servers_updated (UserList* self);
static gboolean _________lambda44__gsource_func (gpointer self);
static gboolean _________lambda46_ (UserList* self);
static gboolean __________lambda46__gsource_func (gpointer self);
static void user_list_test_fill_remote_login_servers_duplicate_entries (UserList* self,
                                                                 RemoteServer** server_list,
                                                                 gint* server_list_length1);
VALA_EXTERN gboolean prompt_box_get_has_errors (PromptBox* self);
VALA_EXTERN void remote_login_service_get_servers_for_login (RemoteLoginService* self,
                                                 const gchar* url,
                                                 const gchar* emailAddress,
                                                 const gchar* password,
                                                 gboolean allowCache,
                                                 GAsyncReadyCallback _callback_,
                                                 gpointer _user_data_);
VALA_EXTERN void remote_login_service_get_servers_for_login_finish (RemoteLoginService* self,
                                                        GAsyncResult* _res_,
                                                        gboolean* loginSuccess,
                                                        gchar** dataType,
                                                        RemoteServer** serverList,
                                                        gint* serverList_length1,
                                                        GError** error);
static void user_list_remote_directory_respond_cb_ready (GObject* source_object,
                                                  GAsyncResult* _res_,
                                                  gpointer _user_data_);
VALA_EXTERN void dash_entry_set_did_respond (DashEntry* self,
                                 gboolean value);
VALA_EXTERN void greeter_list_set_active_first_entry_with_prefix (GreeterList* self,
                                                      const gchar* prefix);
static gboolean ____lambda45_ (UserList* self);
VALA_EXTERN void greeter_list_authentication_complete_cb (GreeterList* self);
static gboolean _____lambda45__gsource_func (gpointer self);
VALA_EXTERN void slick_greeter_authenticate_remote (SlickGreeter* self,
                                        const gchar* session,
                                        const gchar* userid);
VALA_EXTERN void remote_login_service_set_last_used_server (RemoteLoginService* self,
                                                const gchar* uccsUrl,
                                                const gchar* serverUrl,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_);
VALA_EXTERN void remote_login_service_set_last_used_server_finish (RemoteLoginService* self,
                                                       GAsyncResult* _res_,
                                                       GError** error);
static Block10Data* block10_data_ref (Block10Data* _data10_);
static void block10_data_unref (void * _userdata_);
VALA_EXTERN gboolean user_list_get_offer_guest (UserList* self);
static void __lambda47_ (Block10Data* _data10_,
                  gint id);
static gboolean user_list_is_supported_remote_session (UserList* self,
                                                const gchar* session_internal_name);
static void ___lambda47__gtk_dialog_response (GtkDialog* _sender,
                                       gint response_id,
                                       gpointer self);
static gboolean user_list_change_background_timeout_cb (UserList* self);
VALA_EXTERN MenuBar* greeter_list_get_menubar (GreeterList* self);
VALA_EXTERN gboolean menu_bar_get_high_contrast (MenuBar* self);
VALA_EXTERN gboolean ug_settings_get_boolean (const gchar* key);
VALA_EXTERN GType user_prompt_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (UserPromptBox, g_object_unref)
VALA_EXTERN GType fading_label_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FadingLabel, g_object_unref)
VALA_EXTERN GType flat_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FlatButton, g_object_unref)
VALA_EXTERN Background* greeter_list_get_background (GreeterList* self);
VALA_EXTERN void background_set_current_background (Background* self,
                                        const gchar* value);
static void user_list_change_background (UserList* self);
VALA_EXTERN const gchar* background_get_current_background (Background* self);
static gboolean _user_list_change_background_timeout_cb_gsource_func (gpointer self);
VALA_EXTERN gint user_list_user_list_compare_entry (PromptBox* a,
                                        PromptBox* b);
VALA_EXTERN gint greeter_list_compare_entry (PromptBox* a,
                                 PromptBox* b);
static void user_list_real_insert_entry (GreeterList* base,
                                  PromptBox* entry);
static gint _user_list_user_list_compare_entry_gcompare_func (gconstpointer a,
                                                       gconstpointer b);
static void user_list_real_setup_prompt_box (GreeterList* base,
                                      gboolean fade);
VALA_EXTERN void prompt_box_set_is_active (PromptBox* self,
                               gboolean active);
static void user_list_entry_selected_cb (UserList* self,
                                  const gchar* username);
VALA_EXTERN void slick_greeter_set_state (SlickGreeter* self,
                              const gchar* key,
                              const gchar* value);
VALA_EXTERN void user_list_set_session (UserList* self,
                            const gchar* value);
VALA_EXTERN void prompt_box_clear (PromptBox* self);
static void user_list_real_start_authentication (GreeterList* base);
static void user_list_create_remote_fields_for_current_item_data_free (gpointer _data);
static gboolean user_list_create_remote_fields_for_current_item_co (UserListCreateRemoteFieldsForCurrentItemData* _data_);
static void _g_object_unref0_ (gpointer var);
static gint _remote_server_field_sort_function_gcompare_func (gconstpointer a,
                                                       gconstpointer b);
VALA_EXTERN DashEntry* greeter_list_add_prompt (GreeterList* self,
                                    const gchar* text,
                                    gboolean secret);
static Block11Data* block11_data_ref (Block11Data* _data11_);
static void block11_data_unref (void * _userdata_);
static gint ___lambda0__gcompare_data_func (gconstpointer a,
                                     gconstpointer b,
                                     gpointer self);
VALA_EXTERN GtkComboBox* greeter_list_add_combo (GreeterList* self,
                                     GPtrArray* texts,
                                     gboolean read_only);
VALA_EXTERN void remote_login_service_get_cached_domains_for_server (RemoteLoginService* self,
                                                         const gchar* url,
                                                         GAsyncReadyCallback _callback_,
                                                         gpointer _user_data_);
VALA_EXTERN void remote_login_service_get_cached_domains_for_server_finish (RemoteLoginService* self,
                                                                GAsyncResult* _res_,
                                                                gchar*** domains,
                                                                gint* domains_length1,
                                                                GError** error);
static void user_list_create_remote_fields_for_current_item_ready (GObject* source_object,
                                                            GAsyncResult* _res_,
                                                            gpointer _user_data_);
static void _remote_server_field_free0_ (gpointer var);
static inline void _g_list_free__remote_server_field_free0_ (GList* self);
VALA_EXTERN EmailAutocompleter* email_autocompleter_new (GtkEntry* e,
                                             gchar** email_domains,
                                             gint email_domains_length1);
VALA_EXTERN EmailAutocompleter* email_autocompleter_construct (GType object_type,
                                                   GtkEntry* e,
                                                   gchar** email_domains,
                                                   gint email_domains_length1);
static void user_list_real_focus_prompt (GreeterList* base);
static void user_list_real_show_authenticated (GreeterList* base,
                                        gboolean successful);
VALA_EXTERN void prompt_box_add_button (PromptBox* self,
                            const gchar* text,
                            const gchar* accessible_text);
VALA_EXTERN const gchar* prompt_box_get_label (PromptBox* self);
VALA_EXTERN void prompt_box_show_prompts (PromptBox* self);
VALA_EXTERN void greeter_list_redraw_greeter_box (GreeterList* self);
VALA_EXTERN void user_list_add_user (UserList* self,
                         const gchar* name,
                         const gchar* label,
                         const gchar* background,
                         gboolean is_active,
                         gboolean has_messages,
                         const gchar* session);
VALA_EXTERN UserPromptBox* user_prompt_box_new (const gchar* name);
VALA_EXTERN UserPromptBox* user_prompt_box_construct (GType object_type,
                                          const gchar* name);
VALA_EXTERN void user_list_prompt_box_respond_cb (UserList* self,
                                      gchar** responses,
                                      gint responses_length1);
static void _user_list_prompt_box_respond_cb_prompt_box_respond (PromptBox* _sender,
                                                          gchar** response,
                                                          gint response_length1,
                                                          gpointer self);
static void user_list_prompt_box_login_cb (UserList* self);
static void _user_list_prompt_box_login_cb_prompt_box_login (PromptBox* _sender,
                                                      gpointer self);
static void user_list_prompt_box_show_options_cb (UserList* self);
static void _user_list_prompt_box_show_options_cb_prompt_box_show_options (PromptBox* _sender,
                                                                    gpointer self);
VALA_EXTERN const gchar* user_list_get_default_session (UserList* self);
VALA_EXTERN gchar* slick_greeter_validate_session (const gchar* session);
VALA_EXTERN void prompt_box_set_show_message_icon (PromptBox* self,
                                       gboolean show);
VALA_EXTERN gboolean greeter_list_have_entries (GreeterList* self);
static void user_list_real_add_manual_entry (GreeterList* base);
VALA_EXTERN const gchar* greeter_list_get_manual_name (GreeterList* self);
static void user_list_test_respond (UserList* self,
                             const gchar* text);
VALA_EXTERN void slick_greeter_respond (SlickGreeter* self,
                            const gchar* response);
VALA_EXTERN gboolean slick_greeter_is_authenticated (SlickGreeter* self);
VALA_EXTERN GType session_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SessionList, g_object_unref)
VALA_EXTERN const gchar* user_list_get_session (UserList* self);
VALA_EXTERN SessionList* session_list_new (Background* bg,
                               MenuBar* mb,
                               const gchar* session,
                               const gchar* default_session);
VALA_EXTERN SessionList* session_list_construct (GType object_type,
                                     Background* bg,
                                     MenuBar* mb,
                                     const gchar* session,
                                     const gchar* default_session);
static void user_list_session_clicked_cb (UserList* self,
                                   const gchar* session);
static void _user_list_session_clicked_cb_session_list_session_clicked (SessionList* _sender,
                                                                 const gchar* session,
                                                                 gpointer self);
VALA_EXTERN void slick_greeter_push_list (SlickGreeter* self,
                              GreeterList* widget);
VALA_EXTERN void slick_greeter_pop_list (SlickGreeter* self);
static gboolean user_list_should_show_session_badge (UserList* self);
VALA_EXTERN gchar* greeter_list_get_selected_id (GreeterList* self);
static GdkPixbuf* user_list_get_badge (UserList* self);
VALA_EXTERN GdkPixbuf* session_list_get_badge (const gchar* session);
static gchar* user_list_real_get_lightdm_session (GreeterList* base);
static void user_list_fill_list (UserList* self);
static void user_list_test_fill_list (UserList* self);
VALA_EXTERN gchar* slick_greeter_default_session_hint (SlickGreeter* self);
VALA_EXTERN void user_list_set_default_session (UserList* self,
                                    const gchar* value);
VALA_EXTERN gboolean slick_greeter_show_manual_login_hint (SlickGreeter* self);
VALA_EXTERN void greeter_list_set_always_show_manual (GreeterList* self,
                                          gboolean value);
static void user_list_user_added_cb (UserList* self,
                              LightDMUser* user);
static void _user_list_user_added_cb_lightdm_user_list_user_added (LightDMUserList* _sender,
                                                            LightDMUser* user,
                                                            gpointer self);
static void _user_list_user_added_cb_lightdm_user_list_user_changed (LightDMUserList* _sender,
                                                              LightDMUser* user,
                                                              gpointer self);
static void user_list_user_removed_cb (UserList* self,
                                LightDMUser* user);
static void _user_list_user_removed_cb_lightdm_user_list_user_removed (LightDMUserList* _sender,
                                                                LightDMUser* user,
                                                                gpointer self);
VALA_EXTERN gboolean slick_greeter_has_guest_account_hint (SlickGreeter* self);
VALA_EXTERN void user_list_set_offer_guest (UserList* self,
                                gboolean value);
VALA_EXTERN gboolean slick_greeter_is_live_session (SlickGreeter* self,
                                        gchar** live_username,
                                        gchar** live_realname);
VALA_EXTERN gchar* slick_greeter_get_state (SlickGreeter* self,
                                const gchar* key);
VALA_EXTERN gchar* slick_greeter_select_user_hint (SlickGreeter* self);
VALA_EXTERN gboolean user_list_get_show_hidden_users (UserList* self);
VALA_EXTERN gchar** ug_settings_get_strv (const gchar* key,
                              gint* result_length1);
static gboolean user_list_filter_group (UserList* self,
                                 const gchar* user_name);
VALA_EXTERN void user_prompt_box_set_username (UserPromptBox* self,
                                   const gchar* value);
static gboolean user_list_in_group (UserList* self,
                             const gchar* group_name,
                             const gchar* user_name);
static void user_list_real_show_prompt_cb (GreeterList* base,
                                    const gchar* text,
                                    LightDMPromptType type);
static gboolean user_list_add_test_entry (UserList* self);
static gboolean user_list_test_key_press_cb (UserList* self,
                                      GdkEventKey* event);
static gboolean _user_list_test_key_press_cb_gtk_widget_key_press_event (GtkWidget* _sender,
                                                                  GdkEventKey* event,
                                                                  gpointer self);
VALA_EXTERN gboolean slick_greeter_show_remote_login_hint (SlickGreeter* self);
static gboolean ___lambda49_ (UserList* self);
static void _vala_RemoteServerField_array_free (RemoteServerField * array,
                                         gssize array_length);
static void _vala_array_add2 (RemoteServer* * array,
                       gint* length,
                       gint* size,
                       const RemoteServer* value);
static gboolean ____lambda49__gsource_func (gpointer self);
static void _vala_array_add3 (RemoteServer* * array,
                       gint* length,
                       gint* size,
                       const RemoteServer* value);
static void _g_variant_unref0_ (gpointer var);
static GVariant* _variant_new1 (gchar** value,
                         gint value_length1);
static GVariant* _variant_new2 (gchar** value,
                         gint value_length1);
static GVariant* _variant_new3 (gboolean value);
static gboolean user_list_remove_test_entry (UserList* self);
VALA_EXTERN void greeter_list_show_message_cb (GreeterList* self,
                                   const gchar* text,
                                   LightDMMessageType type);
static void user_list_real_test_start_authentication (GreeterList* base);
VALA_EXTERN void user_list_set_show_hidden_users (UserList* self,
                                      gboolean value);
VALA_EXTERN void prompt_box_set_options_image (PromptBox* self,
                                   GdkPixbuf* image,
                                   const gchar* tooltip);
static GObject * user_list_constructor (GType type,
                                 guint n_construct_properties,
                                 GObjectConstructParam * construct_properties);
static void _user_list___lambda50_ (UserList* self);
static void __user_list___lambda50__g_object_notify (GObject* _sender,
                                              GParamSpec* pspec,
                                              gpointer self);
static void _user_list___lambda51_ (UserList* self);
static void __user_list___lambda51__greeter_list_entry_displayed_start (GreeterList* _sender,
                                                                 gpointer self);
static void _user_list___lambda52_ (UserList* self);
static void __user_list___lambda52__greeter_list_entry_displayed_done (GreeterList* _sender,
                                                                gpointer self);
static void _user_list_entry_selected_cb_greeter_list_entry_selected (GreeterList* _sender,
                                                               const gchar* name,
                                                               gpointer self);
VALA_EXTERN void greeter_list_connect_to_lightdm (GreeterList* self);
static void _user_list_on_remote_login_service_appeared_gbus_name_appeared_callback (GDBusConnection* connection,
                                                                              const gchar* name,
                                                                              const gchar* name_owner,
                                                                              gpointer self);
static void _user_list_on_remote_login_service_vanished_gbus_name_vanished_callback (GDBusConnection* connection,
                                                                              const gchar* name,
                                                                              gpointer self);
static void user_list_finalize (GObject * obj);
static GType user_list_get_type_once (void);
static void _vala_user_list_get_property (GObject * object,
                                   guint property_id,
                                   GValue * value,
                                   GParamSpec * pspec);
static void _vala_user_list_set_property (GObject * object,
                                   guint property_id,
                                   const GValue * value,
                                   GParamSpec * pspec);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static gssize _vala_array_length (gpointer array);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static const UserListTestEntry USER_LIST_test_entries[27] = {{"has-password", "Has Password", "*"}, {"different-prompt", "Different Prompt", "*"}, {"no-password", "No Password", "*"}, {"message-auth", "Message Auth", "*"}, {"change-password", "Change Password", "*"}, {"auth-error", "Auth Error", "*"}, {"two-factor", "Two Factor", "*"}, {"two-prompts", "Two Prompts", "*"}, {"info-prompt", "Info Prompt", "*"}, {"long-info-prompt", "Long Info Prompt", "*"}, {"wide-info-prompt", "Wide Info Prompt", "*"}, {"multi-info-prompt", "Multi Info Prompt", "*"}, {"very-very-long-name", "Long name (far far too long to fit)", "*"}, {"long-name-and-messages", "Long name and messages (too long to fit)", "*", FALSE, TRUE}, {"active", "Active Account", "*", TRUE}, {"has-messages", "Has Messages", "*", FALSE, TRUE}, {"gnome", "GNOME", "*", FALSE, FALSE, "gnome"}, {"locked", "Locked Account", "*"}, {"color-background", "Color Background", "#dd4814"}, {"white-background", "White Background", "#ffffff"}, {"black-background", "Black Background", "#000000"}, {"no-background", "No Background", NULL}, {"unicode", "가나다라마", "*"}, {"no-response", "No Response", "*"}, {"no-badge", "No Badge", "*"}, {"messages-after-login", "Messages After Login", "*"}, {""}};

gint
remote_server_field_sort_function (RemoteServerField* item1,
                                   RemoteServerField* item2)
{
	gchar** sorted_fields = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar** _tmp4_;
	gint sorted_fields_length1;
	gint _sorted_fields_size_;
	gchar** _tmp5_;
	gint _tmp5__length1;
	gint _tmp11_ = 0;
	const gchar* _tmp12_;
	const gchar* _tmp13_;
	gint result;
#line 23 "../src/user-list.vala"
	_tmp0_ = g_strdup ("domain");
#line 23 "../src/user-list.vala"
	_tmp1_ = g_strdup ("username");
#line 23 "../src/user-list.vala"
	_tmp2_ = g_strdup ("email");
#line 23 "../src/user-list.vala"
	_tmp3_ = g_strdup ("password");
#line 23 "../src/user-list.vala"
	_tmp4_ = g_new0 (gchar*, 4 + 1);
#line 23 "../src/user-list.vala"
	_tmp4_[0] = _tmp0_;
#line 23 "../src/user-list.vala"
	_tmp4_[1] = _tmp1_;
#line 23 "../src/user-list.vala"
	_tmp4_[2] = _tmp2_;
#line 23 "../src/user-list.vala"
	_tmp4_[3] = _tmp3_;
#line 23 "../src/user-list.vala"
	sorted_fields = _tmp4_;
#line 23 "../src/user-list.vala"
	sorted_fields_length1 = 4;
#line 23 "../src/user-list.vala"
	_sorted_fields_size_ = sorted_fields_length1;
#line 24 "../src/user-list.vala"
	_tmp5_ = sorted_fields;
#line 24 "../src/user-list.vala"
	_tmp5__length1 = sorted_fields_length1;
#line 1481 "user-list.c"
	{
		gchar** field_collection = NULL;
		gint field_collection_length1 = 0;
		gint _field_collection_size_ = 0;
		gint field_it = 0;
#line 24 "../src/user-list.vala"
		field_collection = _tmp5_;
#line 24 "../src/user-list.vala"
		field_collection_length1 = _tmp5__length1;
#line 24 "../src/user-list.vala"
		for (field_it = 0; field_it < field_collection_length1; field_it = field_it + 1) {
#line 1493 "user-list.c"
			gchar* _tmp6_;
			gchar* field = NULL;
#line 24 "../src/user-list.vala"
			_tmp6_ = g_strdup (field_collection[field_it]);
#line 24 "../src/user-list.vala"
			field = _tmp6_;
#line 1500 "user-list.c"
			{
				const gchar* _tmp7_;
				const gchar* _tmp8_;
				const gchar* _tmp9_;
				const gchar* _tmp10_;
#line 26 "../src/user-list.vala"
				_tmp7_ = (*item1).type;
#line 26 "../src/user-list.vala"
				_tmp8_ = field;
#line 26 "../src/user-list.vala"
				if (g_strcmp0 (_tmp7_, _tmp8_) == 0) {
#line 27 "../src/user-list.vala"
					result = -1;
#line 27 "../src/user-list.vala"
					_g_free0 (field);
#line 27 "../src/user-list.vala"
					sorted_fields = (_vala_array_free (sorted_fields, sorted_fields_length1, (GDestroyNotify) g_free), NULL);
#line 27 "../src/user-list.vala"
					return result;
#line 1520 "user-list.c"
				}
#line 28 "../src/user-list.vala"
				_tmp9_ = (*item2).type;
#line 28 "../src/user-list.vala"
				_tmp10_ = field;
#line 28 "../src/user-list.vala"
				if (g_strcmp0 (_tmp9_, _tmp10_) == 0) {
#line 29 "../src/user-list.vala"
					result = 1;
#line 29 "../src/user-list.vala"
					_g_free0 (field);
#line 29 "../src/user-list.vala"
					sorted_fields = (_vala_array_free (sorted_fields, sorted_fields_length1, (GDestroyNotify) g_free), NULL);
#line 29 "../src/user-list.vala"
					return result;
#line 1536 "user-list.c"
				}
#line 24 "../src/user-list.vala"
				_g_free0 (field);
#line 1540 "user-list.c"
			}
		}
	}
#line 32 "../src/user-list.vala"
	_tmp12_ = (*item1).type;
#line 32 "../src/user-list.vala"
	_tmp13_ = (*item2).type;
#line 32 "../src/user-list.vala"
	if (g_strcmp0 (_tmp12_, _tmp13_) < 0) {
#line 32 "../src/user-list.vala"
		_tmp11_ = -1;
#line 1552 "user-list.c"
	} else {
#line 32 "../src/user-list.vala"
		_tmp11_ = 0;
#line 1556 "user-list.c"
	}
#line 32 "../src/user-list.vala"
	result = _tmp11_;
#line 32 "../src/user-list.vala"
	sorted_fields = (_vala_array_free (sorted_fields, sorted_fields_length1, (GDestroyNotify) g_free), NULL);
#line 32 "../src/user-list.vala"
	return result;
#line 1564 "user-list.c"
}

static inline gpointer
user_list_get_instance_private (UserList* self)
{
	return G_STRUCT_MEMBER_P (self, UserList_private_offset);
}

static void
_remote_server_free0_ (gpointer var)
{
#line 57 "../src/user-list.vala"
	(var == NULL) ? NULL : (var = (remote_server_free (var), NULL));
#line 1578 "user-list.c"
}

static inline void
_g_list_free__remote_server_free0_ (GList* self)
{
#line 57 "../src/user-list.vala"
	g_list_free_full (self, (GDestroyNotify) _remote_server_free0_);
#line 1586 "user-list.c"
}

static void
_g_free0_ (gpointer var)
{
#line 1199 "../src/user-list.vala"
	var = (g_free (var), NULL);
#line 1594 "user-list.c"
}

static inline void
_g_list_free__g_free0_ (GList* self)
{
#line 1199 "../src/user-list.vala"
	g_list_free_full (self, (GDestroyNotify) _g_free0_);
#line 1602 "user-list.c"
}

UserList*
user_list_construct (GType object_type,
                     Background* bg,
                     MenuBar* mb)
{
	UserList * self = NULL;
#line 158 "../src/user-list.vala"
	g_return_val_if_fail (bg != NULL, NULL);
#line 158 "../src/user-list.vala"
	g_return_val_if_fail (mb != NULL, NULL);
#line 160 "../src/user-list.vala"
	self = (UserList*) g_object_new (object_type, "background", bg, "menubar", mb, NULL);
#line 158 "../src/user-list.vala"
	return self;
#line 1619 "user-list.c"
}

UserList*
user_list_new (Background* bg,
               MenuBar* mb)
{
#line 158 "../src/user-list.vala"
	return user_list_construct (TYPE_USER_LIST, bg, mb);
#line 1628 "user-list.c"
}

static void
user_list_remove_remote_servers (UserList* self)
{
#line 194 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 196 "../src/user-list.vala"
	(self->priv->remote_directory_server_list == NULL) ? NULL : (self->priv->remote_directory_server_list = (_g_list_free__remote_server_free0_ (self->priv->remote_directory_server_list), NULL));
#line 196 "../src/user-list.vala"
	self->priv->remote_directory_server_list = NULL;
#line 197 "../src/user-list.vala"
	(self->priv->remote_login_server_list == NULL) ? NULL : (self->priv->remote_login_server_list = (_g_list_free__remote_server_free0_ (self->priv->remote_login_server_list), NULL));
#line 197 "../src/user-list.vala"
	self->priv->remote_login_server_list = NULL;
#line 198 "../src/user-list.vala"
	greeter_list_remove_entries_with_prefix ((GreeterList*) self, "*remote");
#line 1646 "user-list.c"
}

static void
user_list_remove_remote_login_servers (UserList* self)
{
	gboolean _tmp0_;
	gboolean _tmp1_;
#line 201 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 203 "../src/user-list.vala"
	(self->priv->remote_login_server_list == NULL) ? NULL : (self->priv->remote_login_server_list = (_g_list_free__remote_server_free0_ (self->priv->remote_login_server_list), NULL));
#line 203 "../src/user-list.vala"
	self->priv->remote_login_server_list = NULL;
#line 204 "../src/user-list.vala"
	greeter_list_remove_entries_with_prefix ((GreeterList*) self, "*remote_login");
#line 207 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_always_show_manual ((GreeterList*) self);
#line 207 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 207 "../src/user-list.vala"
	if (!_tmp1_) {
#line 208 "../src/user-list.vala"
		greeter_list_add_manual_entry ((GreeterList*) self);
#line 1670 "user-list.c"
	}
}

static void
user_list_query_directory_servers_data_free (gpointer _data)
{
	UserListQueryDirectoryServersData* _data_;
	_data_ = _data;
#line 35 "../src/user-list.vala"
	_g_object_unref0 (_data_->self);
#line 35 "../src/user-list.vala"
	g_slice_free (UserListQueryDirectoryServersData, _data_);
#line 1683 "user-list.c"
}

static gpointer
_g_object_ref0 (gpointer self)
{
#line 35 "../src/user-list.vala"
	return self ? g_object_ref (self) : NULL;
#line 1691 "user-list.c"
}

static void
user_list_query_directory_servers (UserList* self,
                                   GAsyncReadyCallback _callback_,
                                   gpointer _user_data_)
{
	UserListQueryDirectoryServersData* _data_;
	UserList* _tmp0_;
#line 35 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 35 "../src/user-list.vala"
	_data_ = g_slice_new0 (UserListQueryDirectoryServersData);
#line 35 "../src/user-list.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
#line 35 "../src/user-list.vala"
	g_task_set_task_data (_data_->_async_result, _data_, user_list_query_directory_servers_data_free);
#line 35 "../src/user-list.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 35 "../src/user-list.vala"
	_data_->self = _tmp0_;
#line 35 "../src/user-list.vala"
	user_list_query_directory_servers_co (_data_);
#line 1715 "user-list.c"
}

static void
user_list_query_directory_servers_finish (UserList* self,
                                          GAsyncResult* _res_)
{
	UserListQueryDirectoryServersData* _data_;
#line 35 "../src/user-list.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 1725 "user-list.c"
}

static void
user_list_query_directory_servers_ready (GObject* source_object,
                                         GAsyncResult* _res_,
                                         gpointer _user_data_)
{
	UserListQueryDirectoryServersData* _data_;
#line 216 "../src/user-list.vala"
	_data_ = _user_data_;
#line 216 "../src/user-list.vala"
	_data_->_source_object_ = source_object;
#line 216 "../src/user-list.vala"
	_data_->_res_ = _res_;
#line 216 "../src/user-list.vala"
	user_list_query_directory_servers_co (_data_);
#line 1742 "user-list.c"
}

static void
_vala_RemoteServer_array_free (RemoteServer * array,
                               gssize array_length)
{
#line 216 "../src/user-list.vala"
	if (array != NULL) {
#line 1751 "user-list.c"
		gssize i;
#line 216 "../src/user-list.vala"
		for (i = 0; i < array_length; i = i + 1) {
#line 216 "../src/user-list.vala"
			remote_server_destroy (&array[i]);
#line 1757 "user-list.c"
		}
	}
#line 216 "../src/user-list.vala"
	g_free (array);
#line 1762 "user-list.c"
}

static gboolean
user_list_query_directory_servers_co (UserListQueryDirectoryServersData* _data_)
{
#line 211 "../src/user-list.vala"
	switch (_data_->_state_) {
#line 211 "../src/user-list.vala"
		case 0:
#line 1772 "user-list.c"
		goto _state_0;
#line 211 "../src/user-list.vala"
		case 1:
#line 1776 "user-list.c"
		goto _state_1;
		default:
#line 211 "../src/user-list.vala"
		g_assert_not_reached ();
#line 1781 "user-list.c"
	}
	_state_0:
	{
#line 215 "../src/user-list.vala"
		_data_->server_list_length1 = 0;
#line 215 "../src/user-list.vala"
		_data_->_server_list_size_ = 0;
#line 216 "../src/user-list.vala"
		_data_->_tmp0_ = _data_->self->priv->remote_login_service;
#line 216 "../src/user-list.vala"
		_data_->_tmp1_ = NULL;
#line 216 "../src/user-list.vala"
		_data_->_tmp2_ = 0;
#line 216 "../src/user-list.vala"
		_data_->_state_ = 1;
#line 216 "../src/user-list.vala"
		remote_login_service_get_servers (_data_->_tmp0_, user_list_query_directory_servers_ready, _data_);
#line 216 "../src/user-list.vala"
		return FALSE;
#line 1801 "user-list.c"
		_state_1:
#line 216 "../src/user-list.vala"
		remote_login_service_get_servers_finish (_data_->_tmp0_, _data_->_res_, &_data_->_tmp1_, &_data_->_tmp2_, &_data_->_inner_error0_);
#line 216 "../src/user-list.vala"
		_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 216 "../src/user-list.vala"
		_data_->server_list = _data_->_tmp1_;
#line 216 "../src/user-list.vala"
		_data_->server_list_length1 = _data_->_tmp2_;
#line 216 "../src/user-list.vala"
		_data_->_server_list_size_ = _data_->server_list_length1;
#line 216 "../src/user-list.vala"
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 216 "../src/user-list.vala"
			_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 1817 "user-list.c"
			goto __catch0_g_error;
		}
#line 217 "../src/user-list.vala"
		user_list_set_remote_directory_servers (_data_->self, _data_->server_list, (gint) _data_->server_list_length1);
#line 213 "../src/user-list.vala"
		_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 1824 "user-list.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
#line 213 "../src/user-list.vala"
		_data_->e = _data_->_inner_error0_;
#line 213 "../src/user-list.vala"
		_data_->_inner_error0_ = NULL;
#line 221 "../src/user-list.vala"
		_data_->_tmp3_ = _data_->e;
#line 221 "../src/user-list.vala"
		_data_->_tmp4_ = _data_->_tmp3_->message;
#line 221 "../src/user-list.vala"
		g_debug ("user-list.vala:221: Calling GetServers on com.canonical.RemoteLogin db" \
"us service failed. Error: %s", _data_->_tmp4_);
#line 222 "../src/user-list.vala"
		user_list_remove_remote_servers (_data_->self);
#line 213 "../src/user-list.vala"
		_g_error_free0 (_data_->e);
#line 1843 "user-list.c"
	}
	__finally0:
#line 213 "../src/user-list.vala"
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 213 "../src/user-list.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
#line 213 "../src/user-list.vala"
		g_clear_error (&_data_->_inner_error0_);
#line 213 "../src/user-list.vala"
		g_object_unref (_data_->_async_result);
#line 213 "../src/user-list.vala"
		return FALSE;
#line 1856 "user-list.c"
	}
#line 211 "../src/user-list.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 211 "../src/user-list.vala"
	if (_data_->_state_ != 0) {
#line 211 "../src/user-list.vala"
		while (!g_task_get_completed (_data_->_async_result)) {
#line 211 "../src/user-list.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 1866 "user-list.c"
		}
	}
#line 211 "../src/user-list.vala"
	g_object_unref (_data_->_async_result);
#line 211 "../src/user-list.vala"
	return FALSE;
#line 1873 "user-list.c"
}

static gchar*
user_list_user_list_name_for_remote_directory_server (UserList* self,
                                                      RemoteServer* remote_server)
{
	RemoteServer _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* result;
#line 226 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 226 "../src/user-list.vala"
	g_return_val_if_fail (remote_server != NULL, NULL);
#line 228 "../src/user-list.vala"
	_tmp0_ = *remote_server;
#line 228 "../src/user-list.vala"
	_tmp1_ = _tmp0_.url;
#line 228 "../src/user-list.vala"
	_tmp2_ = g_strconcat ("*remote_directory*", _tmp1_, NULL);
#line 228 "../src/user-list.vala"
	result = _tmp2_;
#line 228 "../src/user-list.vala"
	return result;
#line 1898 "user-list.c"
}

static gchar*
user_list_username_from_remote_server_fields (UserList* self,
                                              RemoteServer* remote_server)
{
	gchar* username = NULL;
	gchar* _tmp0_;
	RemoteServer _tmp1_;
	RemoteServerField* _tmp2_;
	gint _tmp2__length1;
	gchar* result;
#line 231 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 231 "../src/user-list.vala"
	g_return_val_if_fail (remote_server != NULL, NULL);
#line 233 "../src/user-list.vala"
	_tmp0_ = g_strdup ("");
#line 233 "../src/user-list.vala"
	username = _tmp0_;
#line 234 "../src/user-list.vala"
	_tmp1_ = *remote_server;
#line 234 "../src/user-list.vala"
	_tmp2_ = _tmp1_.fields;
#line 234 "../src/user-list.vala"
	_tmp2__length1 = _tmp1_.fields_length1;
#line 1925 "user-list.c"
	{
		RemoteServerField* f_collection = NULL;
		gint f_collection_length1 = 0;
		gint _f_collection_size_ = 0;
		gint f_it = 0;
#line 234 "../src/user-list.vala"
		f_collection = _tmp2_;
#line 234 "../src/user-list.vala"
		f_collection_length1 = _tmp2__length1;
#line 234 "../src/user-list.vala"
		for (f_it = 0; f_it < f_collection_length1; f_it = f_it + 1) {
#line 1937 "user-list.c"
			RemoteServerField _tmp3_;
			RemoteServerField _tmp4_ = {0};
			RemoteServerField f = {0};
#line 234 "../src/user-list.vala"
			_tmp3_ = f_collection[f_it];
#line 234 "../src/user-list.vala"
			remote_server_field_copy (&_tmp3_, &_tmp4_);
#line 234 "../src/user-list.vala"
			f = _tmp4_;
#line 1947 "user-list.c"
			{
				gboolean _tmp5_ = FALSE;
				RemoteServerField _tmp6_;
				const gchar* _tmp7_;
#line 236 "../src/user-list.vala"
				_tmp6_ = f;
#line 236 "../src/user-list.vala"
				_tmp7_ = _tmp6_.type;
#line 236 "../src/user-list.vala"
				if (g_strcmp0 (_tmp7_, "username") == 0) {
#line 1958 "user-list.c"
					RemoteServerField _tmp8_;
					GVariant* _tmp9_;
#line 236 "../src/user-list.vala"
					_tmp8_ = f;
#line 236 "../src/user-list.vala"
					_tmp9_ = _tmp8_.default_value;
#line 236 "../src/user-list.vala"
					_tmp5_ = _tmp9_ != NULL;
#line 1967 "user-list.c"
				} else {
#line 236 "../src/user-list.vala"
					_tmp5_ = FALSE;
#line 1971 "user-list.c"
				}
#line 236 "../src/user-list.vala"
				if (_tmp5_) {
#line 1975 "user-list.c"
					RemoteServerField _tmp10_;
					GVariant* _tmp11_;
					const gchar* _tmp12_;
					gchar* _tmp13_;
#line 238 "../src/user-list.vala"
					_tmp10_ = f;
#line 238 "../src/user-list.vala"
					_tmp11_ = _tmp10_.default_value;
#line 238 "../src/user-list.vala"
					_tmp12_ = g_variant_get_string (_tmp11_, NULL);
#line 238 "../src/user-list.vala"
					_tmp13_ = g_strdup (_tmp12_);
#line 238 "../src/user-list.vala"
					_g_free0 (username);
#line 238 "../src/user-list.vala"
					username = _tmp13_;
#line 239 "../src/user-list.vala"
					remote_server_field_destroy (&f);
#line 239 "../src/user-list.vala"
					break;
#line 1996 "user-list.c"
				}
#line 234 "../src/user-list.vala"
				remote_server_field_destroy (&f);
#line 2000 "user-list.c"
			}
		}
	}
#line 242 "../src/user-list.vala"
	result = username;
#line 242 "../src/user-list.vala"
	return result;
#line 2008 "user-list.c"
}

static gchar*
user_list_user_list_name_for_remote_login_server (UserList* self,
                                                  RemoteServer* remote_server)
{
	gchar* username = NULL;
	RemoteServer _tmp0_;
	gchar* _tmp1_;
	RemoteServer _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* result;
#line 245 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 245 "../src/user-list.vala"
	g_return_val_if_fail (remote_server != NULL, NULL);
#line 247 "../src/user-list.vala"
	_tmp0_ = *remote_server;
#line 247 "../src/user-list.vala"
	_tmp1_ = user_list_username_from_remote_server_fields (self, &_tmp0_);
#line 247 "../src/user-list.vala"
	username = _tmp1_;
#line 248 "../src/user-list.vala"
	_tmp2_ = *remote_server;
#line 248 "../src/user-list.vala"
	_tmp3_ = _tmp2_.url;
#line 248 "../src/user-list.vala"
	_tmp4_ = g_strconcat ("*remote_login*", _tmp3_, NULL);
#line 248 "../src/user-list.vala"
	_tmp5_ = _tmp4_;
#line 248 "../src/user-list.vala"
	_tmp6_ = g_strconcat (_tmp5_, "*", NULL);
#line 248 "../src/user-list.vala"
	_tmp7_ = _tmp6_;
#line 248 "../src/user-list.vala"
	_tmp8_ = g_strconcat (_tmp7_, username, NULL);
#line 248 "../src/user-list.vala"
	_tmp9_ = _tmp8_;
#line 248 "../src/user-list.vala"
	_g_free0 (_tmp7_);
#line 248 "../src/user-list.vala"
	_g_free0 (_tmp5_);
#line 248 "../src/user-list.vala"
	result = _tmp9_;
#line 248 "../src/user-list.vala"
	_g_free0 (username);
#line 248 "../src/user-list.vala"
	return result;
#line 2063 "user-list.c"
}

static gchar*
user_list_url_from_remote_loding_server_list_name (UserList* self,
                                                   const gchar* remote_server_list_name)
{
	gchar** _tmp0_;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gint _tmp2__length1;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* result;
#line 251 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 251 "../src/user-list.vala"
	g_return_val_if_fail (remote_server_list_name != NULL, NULL);
#line 253 "../src/user-list.vala"
	_tmp1_ = _tmp0_ = g_strsplit (remote_server_list_name, "*", 0);
#line 253 "../src/user-list.vala"
	_tmp2_ = _tmp1_;
#line 253 "../src/user-list.vala"
	_tmp2__length1 = _vala_array_length (_tmp0_);
#line 253 "../src/user-list.vala"
	_tmp3_ = _tmp2_[2];
#line 253 "../src/user-list.vala"
	_tmp4_ = g_strdup (_tmp3_);
#line 253 "../src/user-list.vala"
	_tmp5_ = _tmp4_;
#line 253 "../src/user-list.vala"
	_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
#line 253 "../src/user-list.vala"
	result = _tmp5_;
#line 253 "../src/user-list.vala"
	return result;
#line 2100 "user-list.c"
}

static gchar*
user_list_username_from_remote_loding_server_list_name (UserList* self,
                                                        const gchar* remote_server_list_name)
{
	gchar** _tmp0_;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gint _tmp2__length1;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* result;
#line 256 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 256 "../src/user-list.vala"
	g_return_val_if_fail (remote_server_list_name != NULL, NULL);
#line 258 "../src/user-list.vala"
	_tmp1_ = _tmp0_ = g_strsplit (remote_server_list_name, "*", 0);
#line 258 "../src/user-list.vala"
	_tmp2_ = _tmp1_;
#line 258 "../src/user-list.vala"
	_tmp2__length1 = _vala_array_length (_tmp0_);
#line 258 "../src/user-list.vala"
	_tmp3_ = _tmp2_[3];
#line 258 "../src/user-list.vala"
	_tmp4_ = g_strdup (_tmp3_);
#line 258 "../src/user-list.vala"
	_tmp5_ = _tmp4_;
#line 258 "../src/user-list.vala"
	_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
#line 258 "../src/user-list.vala"
	result = _tmp5_;
#line 258 "../src/user-list.vala"
	return result;
#line 2137 "user-list.c"
}

static void
_user_list_remote_directory_respond_cb_prompt_box_respond (PromptBox* _sender,
                                                           gchar** response,
                                                           gint response_length1,
                                                           gpointer self)
{
#line 271 "../src/user-list.vala"
	user_list_remote_directory_respond_cb ((UserList*) self, NULL, NULL);
#line 2148 "user-list.c"
}

static void
_user_list_show_remote_account_dialog_prompt_box_show_options (PromptBox* _sender,
                                                               gpointer self)
{
#line 272 "../src/user-list.vala"
	user_list_show_remote_account_dialog ((UserList*) self);
#line 2157 "user-list.c"
}

static gpointer
_remote_server_dup0 (gpointer self)
{
#line 275 "../src/user-list.vala"
	return self ? remote_server_dup (self) : NULL;
#line 2165 "user-list.c"
}

static void
user_list_set_remote_directory_servers (UserList* self,
                                        RemoteServer* server_list,
                                        gint server_list_length1)
{
	GList* it = NULL;
	GList* _tmp19_;
	gboolean _tmp46_ = FALSE;
	GList* _tmp47_;
#line 261 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 2179 "user-list.c"
	{
		RemoteServer* remote_server_collection = NULL;
		gint remote_server_collection_length1 = 0;
		gint _remote_server_collection_size_ = 0;
		gint remote_server_it = 0;
#line 264 "../src/user-list.vala"
		remote_server_collection = server_list;
#line 264 "../src/user-list.vala"
		remote_server_collection_length1 = server_list_length1;
#line 264 "../src/user-list.vala"
		for (remote_server_it = 0; remote_server_it < remote_server_collection_length1; remote_server_it = remote_server_it + 1) {
#line 2191 "user-list.c"
			RemoteServer _tmp0_;
			RemoteServer _tmp1_ = {0};
			RemoteServer remote_server = {0};
#line 264 "../src/user-list.vala"
			_tmp0_ = remote_server_collection[remote_server_it];
#line 264 "../src/user-list.vala"
			remote_server_copy (&_tmp0_, &_tmp1_);
#line 264 "../src/user-list.vala"
			remote_server = _tmp1_;
#line 2201 "user-list.c"
			{
				gchar* list_name = NULL;
				RemoteServer _tmp2_;
				gchar* _tmp3_;
				const gchar* _tmp4_;
				PromptBox* _tmp5_;
				PromptBox* _tmp6_;
				gboolean _tmp7_;
#line 266 "../src/user-list.vala"
				_tmp2_ = remote_server;
#line 266 "../src/user-list.vala"
				_tmp3_ = user_list_user_list_name_for_remote_directory_server (self, &_tmp2_);
#line 266 "../src/user-list.vala"
				list_name = _tmp3_;
#line 267 "../src/user-list.vala"
				_tmp4_ = list_name;
#line 267 "../src/user-list.vala"
				_tmp5_ = greeter_list_find_entry ((GreeterList*) self, _tmp4_);
#line 267 "../src/user-list.vala"
				_tmp6_ = _tmp5_;
#line 267 "../src/user-list.vala"
				_tmp7_ = _tmp6_ == NULL;
#line 267 "../src/user-list.vala"
				_g_object_unref0 (_tmp6_);
#line 267 "../src/user-list.vala"
				if (_tmp7_) {
#line 2228 "user-list.c"
					PromptBox* e = NULL;
					const gchar* _tmp8_;
					PromptBox* _tmp9_;
					PromptBox* _tmp10_;
					RemoteServer _tmp11_;
					const gchar* _tmp12_;
					PromptBox* _tmp13_;
					PromptBox* _tmp14_;
					PromptBox* _tmp15_;
					RemoteServer _tmp16_;
					RemoteServer _tmp17_;
					RemoteServer* _tmp18_;
#line 269 "../src/user-list.vala"
					_tmp8_ = list_name;
#line 269 "../src/user-list.vala"
					_tmp9_ = prompt_box_new (_tmp8_);
#line 269 "../src/user-list.vala"
					g_object_ref_sink (_tmp9_);
#line 269 "../src/user-list.vala"
					e = _tmp9_;
#line 270 "../src/user-list.vala"
					_tmp10_ = e;
#line 270 "../src/user-list.vala"
					_tmp11_ = remote_server;
#line 270 "../src/user-list.vala"
					_tmp12_ = _tmp11_.name;
#line 270 "../src/user-list.vala"
					prompt_box_set_label (_tmp10_, _tmp12_);
#line 271 "../src/user-list.vala"
					_tmp13_ = e;
#line 271 "../src/user-list.vala"
					g_signal_connect_object (_tmp13_, "respond", (GCallback) _user_list_remote_directory_respond_cb_prompt_box_respond, self, 0);
#line 272 "../src/user-list.vala"
					_tmp14_ = e;
#line 272 "../src/user-list.vala"
					g_signal_connect_object (_tmp14_, "show-options", (GCallback) _user_list_show_remote_account_dialog_prompt_box_show_options, self, 0);
#line 273 "../src/user-list.vala"
					_tmp15_ = e;
#line 273 "../src/user-list.vala"
					greeter_list_add_entry ((GreeterList*) self, _tmp15_);
#line 275 "../src/user-list.vala"
					_tmp16_ = remote_server;
#line 275 "../src/user-list.vala"
					_tmp17_ = _tmp16_;
#line 275 "../src/user-list.vala"
					_tmp18_ = _remote_server_dup0 (&_tmp17_);
#line 275 "../src/user-list.vala"
					self->priv->remote_directory_server_list = g_list_append (self->priv->remote_directory_server_list, _tmp18_);
#line 267 "../src/user-list.vala"
					_g_object_unref0 (e);
#line 2279 "user-list.c"
				}
#line 264 "../src/user-list.vala"
				_g_free0 (list_name);
#line 264 "../src/user-list.vala"
				remote_server_destroy (&remote_server);
#line 2285 "user-list.c"
			}
		}
	}
#line 280 "../src/user-list.vala"
	_tmp19_ = self->priv->remote_directory_server_list;
#line 280 "../src/user-list.vala"
	it = _tmp19_;
#line 281 "../src/user-list.vala"
	while (TRUE) {
#line 2295 "user-list.c"
		GList* _tmp20_;
		RemoteServer* remote_server = NULL;
		GList* _tmp21_;
		gconstpointer _tmp22_;
		RemoteServer* _tmp23_;
		gboolean found = FALSE;
#line 281 "../src/user-list.vala"
		_tmp20_ = it;
#line 281 "../src/user-list.vala"
		if (!(_tmp20_ != NULL)) {
#line 281 "../src/user-list.vala"
			break;
#line 2308 "user-list.c"
		}
#line 283 "../src/user-list.vala"
		_tmp21_ = it;
#line 283 "../src/user-list.vala"
		_tmp22_ = _tmp21_->data;
#line 283 "../src/user-list.vala"
		_tmp23_ = _remote_server_dup0 ((RemoteServer*) _tmp22_);
#line 283 "../src/user-list.vala"
		remote_server = _tmp23_;
#line 284 "../src/user-list.vala"
		found = FALSE;
#line 2320 "user-list.c"
		{
			gint i = 0;
#line 285 "../src/user-list.vala"
			i = 0;
#line 2325 "user-list.c"
			{
				gboolean _tmp24_ = FALSE;
#line 285 "../src/user-list.vala"
				_tmp24_ = TRUE;
#line 285 "../src/user-list.vala"
				while (TRUE) {
#line 2332 "user-list.c"
					gboolean _tmp26_ = FALSE;
					RemoteServer* _tmp27_;
					const gchar* _tmp28_;
					RemoteServer _tmp29_;
					const gchar* _tmp30_;
#line 285 "../src/user-list.vala"
					if (!_tmp24_) {
#line 2340 "user-list.c"
						gint _tmp25_;
#line 285 "../src/user-list.vala"
						_tmp25_ = i;
#line 285 "../src/user-list.vala"
						i = _tmp25_ + 1;
#line 2346 "user-list.c"
					}
#line 285 "../src/user-list.vala"
					_tmp24_ = FALSE;
#line 285 "../src/user-list.vala"
					if (!found) {
#line 285 "../src/user-list.vala"
						_tmp26_ = i < server_list_length1;
#line 2354 "user-list.c"
					} else {
#line 285 "../src/user-list.vala"
						_tmp26_ = FALSE;
#line 2358 "user-list.c"
					}
#line 285 "../src/user-list.vala"
					if (!_tmp26_) {
#line 285 "../src/user-list.vala"
						break;
#line 2364 "user-list.c"
					}
#line 287 "../src/user-list.vala"
					_tmp27_ = remote_server;
#line 287 "../src/user-list.vala"
					_tmp28_ = (*_tmp27_).url;
#line 287 "../src/user-list.vala"
					_tmp29_ = server_list[i];
#line 287 "../src/user-list.vala"
					_tmp30_ = _tmp29_.url;
#line 287 "../src/user-list.vala"
					found = g_strcmp0 (_tmp28_, _tmp30_) == 0;
#line 2376 "user-list.c"
				}
			}
		}
#line 289 "../src/user-list.vala"
		if (!found) {
#line 2382 "user-list.c"
			RemoteServer* _tmp31_;
			const gchar* _tmp32_;
			const gchar* _tmp33_;
			RemoteServer* _tmp36_;
			RemoteServer _tmp37_;
			gchar* _tmp38_;
			gchar* _tmp39_;
			GList* newIt = NULL;
			GList* _tmp40_;
			GList* _tmp41_;
			GList* _tmp42_;
			GList* _tmp43_;
#line 291 "../src/user-list.vala"
			_tmp31_ = remote_server;
#line 291 "../src/user-list.vala"
			_tmp32_ = (*_tmp31_).url;
#line 291 "../src/user-list.vala"
			_tmp33_ = self->priv->currently_browsing_server_url;
#line 291 "../src/user-list.vala"
			if (g_strcmp0 (_tmp32_, _tmp33_) == 0) {
#line 2403 "user-list.c"
				gchar* _tmp34_;
				gchar* _tmp35_;
#line 294 "../src/user-list.vala"
				user_list_remove_remote_login_servers (self);
#line 295 "../src/user-list.vala"
				_tmp34_ = g_strdup ("");
#line 295 "../src/user-list.vala"
				_g_free0 (self->priv->currently_browsing_server_url);
#line 295 "../src/user-list.vala"
				self->priv->currently_browsing_server_url = _tmp34_;
#line 296 "../src/user-list.vala"
				_tmp35_ = g_strdup ("");
#line 296 "../src/user-list.vala"
				_g_free0 (self->priv->currently_browsing_server_email);
#line 296 "../src/user-list.vala"
				self->priv->currently_browsing_server_email = _tmp35_;
#line 2420 "user-list.c"
			}
#line 298 "../src/user-list.vala"
			_tmp36_ = remote_server;
#line 298 "../src/user-list.vala"
			_tmp37_ = *_tmp36_;
#line 298 "../src/user-list.vala"
			_tmp38_ = user_list_user_list_name_for_remote_directory_server (self, &_tmp37_);
#line 298 "../src/user-list.vala"
			_tmp39_ = _tmp38_;
#line 298 "../src/user-list.vala"
			greeter_list_remove_entry ((GreeterList*) self, _tmp39_);
#line 298 "../src/user-list.vala"
			_g_free0 (_tmp39_);
#line 299 "../src/user-list.vala"
			_tmp40_ = it;
#line 299 "../src/user-list.vala"
			_tmp41_ = _tmp40_->next;
#line 299 "../src/user-list.vala"
			newIt = _tmp41_;
#line 300 "../src/user-list.vala"
			_tmp42_ = it;
#line 300 "../src/user-list.vala"
			self->priv->remote_directory_server_list = g_list_delete_link (self->priv->remote_directory_server_list, _tmp42_);
#line 301 "../src/user-list.vala"
			_tmp43_ = newIt;
#line 301 "../src/user-list.vala"
			it = _tmp43_;
#line 2448 "user-list.c"
		} else {
			GList* _tmp44_;
			GList* _tmp45_;
#line 305 "../src/user-list.vala"
			_tmp44_ = it;
#line 305 "../src/user-list.vala"
			_tmp45_ = _tmp44_->next;
#line 305 "../src/user-list.vala"
			it = _tmp45_;
#line 2458 "user-list.c"
		}
#line 281 "../src/user-list.vala"
		_remote_server_free0 (remote_server);
#line 2462 "user-list.c"
	}
#line 310 "../src/user-list.vala"
	_tmp47_ = self->priv->remote_directory_server_list;
#line 310 "../src/user-list.vala"
	if (g_list_length (_tmp47_) > ((guint) 0)) {
#line 2468 "user-list.c"
		gboolean _tmp48_;
		gboolean _tmp49_;
#line 310 "../src/user-list.vala"
		_tmp48_ = greeter_list_get_always_show_manual ((GreeterList*) self);
#line 310 "../src/user-list.vala"
		_tmp49_ = _tmp48_;
#line 310 "../src/user-list.vala"
		_tmp46_ = !_tmp49_;
#line 2477 "user-list.c"
	} else {
#line 310 "../src/user-list.vala"
		_tmp46_ = FALSE;
#line 2481 "user-list.c"
	}
#line 310 "../src/user-list.vala"
	if (_tmp46_) {
#line 311 "../src/user-list.vala"
		g_debug ("user-list.vala:311: removing manual login since we have a remote login" \
" entry");
#line 312 "../src/user-list.vala"
		greeter_list_remove_entry ((GreeterList*) self, "*other");
#line 2489 "user-list.c"
	}
}

static void
_user_list_remote_login_respond_cb_prompt_box_respond (PromptBox* _sender,
                                                       gchar** response,
                                                       gint response_length1,
                                                       gpointer self)
{
#line 320 "../src/user-list.vala"
	user_list_remote_login_respond_cb ((UserList*) self);
#line 2501 "user-list.c"
}

static PromptBox*
user_list_create_prompt_for_login_server (UserList* self,
                                          RemoteServer* remote_server)
{
	PromptBox* e = NULL;
	RemoteServer _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	PromptBox* _tmp3_;
	PromptBox* _tmp4_;
	RemoteServer _tmp5_;
	const gchar* _tmp6_;
	RemoteServer _tmp7_;
	RemoteServer _tmp8_;
	RemoteServer* _tmp9_;
	PromptBox* result;
#line 316 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 316 "../src/user-list.vala"
	g_return_val_if_fail (remote_server != NULL, NULL);
#line 318 "../src/user-list.vala"
	_tmp0_ = *remote_server;
#line 318 "../src/user-list.vala"
	_tmp1_ = user_list_user_list_name_for_remote_login_server (self, &_tmp0_);
#line 318 "../src/user-list.vala"
	_tmp2_ = _tmp1_;
#line 318 "../src/user-list.vala"
	_tmp3_ = prompt_box_new (_tmp2_);
#line 318 "../src/user-list.vala"
	g_object_ref_sink (_tmp3_);
#line 318 "../src/user-list.vala"
	_tmp4_ = _tmp3_;
#line 318 "../src/user-list.vala"
	_g_free0 (_tmp2_);
#line 318 "../src/user-list.vala"
	e = _tmp4_;
#line 319 "../src/user-list.vala"
	_tmp5_ = *remote_server;
#line 319 "../src/user-list.vala"
	_tmp6_ = _tmp5_.name;
#line 319 "../src/user-list.vala"
	prompt_box_set_label (e, _tmp6_);
#line 320 "../src/user-list.vala"
	g_signal_connect_object (e, "respond", (GCallback) _user_list_remote_login_respond_cb_prompt_box_respond, self, 0);
#line 321 "../src/user-list.vala"
	greeter_list_add_entry ((GreeterList*) self, e);
#line 322 "../src/user-list.vala"
	_tmp7_ = *remote_server;
#line 322 "../src/user-list.vala"
	_tmp8_ = _tmp7_;
#line 322 "../src/user-list.vala"
	_tmp9_ = _remote_server_dup0 (&_tmp8_);
#line 322 "../src/user-list.vala"
	self->priv->remote_login_server_list = g_list_append (self->priv->remote_login_server_list, _tmp9_);
#line 324 "../src/user-list.vala"
	result = e;
#line 324 "../src/user-list.vala"
	return result;
#line 2562 "user-list.c"
}

static void
user_list_remote_login_servers_updated (UserList* self,
                                        const gchar* url,
                                        const gchar* email_address,
                                        const gchar* data_type,
                                        RemoteServer* server_list,
                                        gint server_list_length1)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
#line 327 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 327 "../src/user-list.vala"
	g_return_if_fail (url != NULL);
#line 327 "../src/user-list.vala"
	g_return_if_fail (email_address != NULL);
#line 327 "../src/user-list.vala"
	g_return_if_fail (data_type != NULL);
#line 329 "../src/user-list.vala"
	_tmp1_ = self->priv->currently_browsing_server_url;
#line 329 "../src/user-list.vala"
	if (g_strcmp0 (_tmp1_, url) == 0) {
#line 2587 "user-list.c"
		const gchar* _tmp2_;
#line 329 "../src/user-list.vala"
		_tmp2_ = self->priv->currently_browsing_server_email;
#line 329 "../src/user-list.vala"
		_tmp0_ = g_strcmp0 (_tmp2_, email_address) == 0;
#line 2593 "user-list.c"
	} else {
#line 329 "../src/user-list.vala"
		_tmp0_ = FALSE;
#line 2597 "user-list.c"
	}
#line 329 "../src/user-list.vala"
	if (_tmp0_) {
#line 2601 "user-list.c"
		GList* it = NULL;
		GList* _tmp14_;
		{
			RemoteServer* remote_server_collection = NULL;
			gint remote_server_collection_length1 = 0;
			gint _remote_server_collection_size_ = 0;
			gint remote_server_it = 0;
#line 332 "../src/user-list.vala"
			remote_server_collection = server_list;
#line 332 "../src/user-list.vala"
			remote_server_collection_length1 = server_list_length1;
#line 332 "../src/user-list.vala"
			for (remote_server_it = 0; remote_server_it < remote_server_collection_length1; remote_server_it = remote_server_it + 1) {
#line 2615 "user-list.c"
				RemoteServer _tmp3_;
				RemoteServer _tmp4_ = {0};
				RemoteServer remote_server = {0};
#line 332 "../src/user-list.vala"
				_tmp3_ = remote_server_collection[remote_server_it];
#line 332 "../src/user-list.vala"
				remote_server_copy (&_tmp3_, &_tmp4_);
#line 332 "../src/user-list.vala"
				remote_server = _tmp4_;
#line 2625 "user-list.c"
				{
					gchar* list_name = NULL;
					RemoteServer _tmp5_;
					gchar* _tmp6_;
					const gchar* _tmp7_;
					PromptBox* _tmp8_;
					PromptBox* _tmp9_;
					gboolean _tmp10_;
#line 334 "../src/user-list.vala"
					_tmp5_ = remote_server;
#line 334 "../src/user-list.vala"
					_tmp6_ = user_list_user_list_name_for_remote_login_server (self, &_tmp5_);
#line 334 "../src/user-list.vala"
					list_name = _tmp6_;
#line 335 "../src/user-list.vala"
					_tmp7_ = list_name;
#line 335 "../src/user-list.vala"
					_tmp8_ = greeter_list_find_entry ((GreeterList*) self, _tmp7_);
#line 335 "../src/user-list.vala"
					_tmp9_ = _tmp8_;
#line 335 "../src/user-list.vala"
					_tmp10_ = _tmp9_ == NULL;
#line 335 "../src/user-list.vala"
					_g_object_unref0 (_tmp9_);
#line 335 "../src/user-list.vala"
					if (_tmp10_) {
#line 2652 "user-list.c"
						RemoteServer _tmp11_;
						PromptBox* _tmp12_;
						PromptBox* _tmp13_;
#line 336 "../src/user-list.vala"
						_tmp11_ = remote_server;
#line 336 "../src/user-list.vala"
						_tmp12_ = user_list_create_prompt_for_login_server (self, &_tmp11_);
#line 336 "../src/user-list.vala"
						_tmp13_ = _tmp12_;
#line 336 "../src/user-list.vala"
						_g_object_unref0 (_tmp13_);
#line 2664 "user-list.c"
					}
#line 332 "../src/user-list.vala"
					_g_free0 (list_name);
#line 332 "../src/user-list.vala"
					remote_server_destroy (&remote_server);
#line 2670 "user-list.c"
				}
			}
		}
#line 340 "../src/user-list.vala"
		_tmp14_ = self->priv->remote_login_server_list;
#line 340 "../src/user-list.vala"
		it = _tmp14_;
#line 341 "../src/user-list.vala"
		while (TRUE) {
#line 2680 "user-list.c"
			GList* _tmp15_;
			RemoteServer remote_server = {0};
			GList* _tmp16_;
			gconstpointer _tmp17_;
			RemoteServer _tmp18_;
			RemoteServer _tmp19_ = {0};
			gboolean found = FALSE;
#line 341 "../src/user-list.vala"
			_tmp15_ = it;
#line 341 "../src/user-list.vala"
			if (!(_tmp15_ != NULL)) {
#line 341 "../src/user-list.vala"
				break;
#line 2694 "user-list.c"
			}
#line 343 "../src/user-list.vala"
			_tmp16_ = it;
#line 343 "../src/user-list.vala"
			_tmp17_ = _tmp16_->data;
#line 343 "../src/user-list.vala"
			_tmp18_ = *((RemoteServer*) _tmp17_);
#line 343 "../src/user-list.vala"
			remote_server_copy (&_tmp18_, &_tmp19_);
#line 343 "../src/user-list.vala"
			remote_server = _tmp19_;
#line 344 "../src/user-list.vala"
			found = FALSE;
#line 2708 "user-list.c"
			{
				gint i = 0;
#line 345 "../src/user-list.vala"
				i = 0;
#line 2713 "user-list.c"
				{
					gboolean _tmp20_ = FALSE;
#line 345 "../src/user-list.vala"
					_tmp20_ = TRUE;
#line 345 "../src/user-list.vala"
					while (TRUE) {
#line 2720 "user-list.c"
						gboolean _tmp22_ = FALSE;
						RemoteServer _tmp23_;
						const gchar* _tmp24_;
						RemoteServer _tmp25_;
						const gchar* _tmp26_;
#line 345 "../src/user-list.vala"
						if (!_tmp20_) {
#line 2728 "user-list.c"
							gint _tmp21_;
#line 345 "../src/user-list.vala"
							_tmp21_ = i;
#line 345 "../src/user-list.vala"
							i = _tmp21_ + 1;
#line 2734 "user-list.c"
						}
#line 345 "../src/user-list.vala"
						_tmp20_ = FALSE;
#line 345 "../src/user-list.vala"
						if (!found) {
#line 345 "../src/user-list.vala"
							_tmp22_ = i < server_list_length1;
#line 2742 "user-list.c"
						} else {
#line 345 "../src/user-list.vala"
							_tmp22_ = FALSE;
#line 2746 "user-list.c"
						}
#line 345 "../src/user-list.vala"
						if (!_tmp22_) {
#line 345 "../src/user-list.vala"
							break;
#line 2752 "user-list.c"
						}
#line 346 "../src/user-list.vala"
						_tmp23_ = remote_server;
#line 346 "../src/user-list.vala"
						_tmp24_ = _tmp23_.url;
#line 346 "../src/user-list.vala"
						_tmp25_ = server_list[i];
#line 346 "../src/user-list.vala"
						_tmp26_ = _tmp25_.url;
#line 346 "../src/user-list.vala"
						found = g_strcmp0 (_tmp24_, _tmp26_) == 0;
#line 2764 "user-list.c"
					}
				}
			}
#line 347 "../src/user-list.vala"
			if (!found) {
#line 2770 "user-list.c"
				RemoteServer _tmp27_;
				gchar* _tmp28_;
				gchar* _tmp29_;
				GList* newIt = NULL;
				GList* _tmp30_;
				GList* _tmp31_;
				GList* _tmp32_;
				GList* _tmp33_;
#line 349 "../src/user-list.vala"
				_tmp27_ = remote_server;
#line 349 "../src/user-list.vala"
				_tmp28_ = user_list_user_list_name_for_remote_login_server (self, &_tmp27_);
#line 349 "../src/user-list.vala"
				_tmp29_ = _tmp28_;
#line 349 "../src/user-list.vala"
				greeter_list_remove_entry ((GreeterList*) self, _tmp29_);
#line 349 "../src/user-list.vala"
				_g_free0 (_tmp29_);
#line 350 "../src/user-list.vala"
				_tmp30_ = it;
#line 350 "../src/user-list.vala"
				_tmp31_ = _tmp30_->next;
#line 350 "../src/user-list.vala"
				newIt = _tmp31_;
#line 351 "../src/user-list.vala"
				_tmp32_ = it;
#line 351 "../src/user-list.vala"
				self->priv->remote_login_server_list = g_list_delete_link (self->priv->remote_login_server_list, _tmp32_);
#line 352 "../src/user-list.vala"
				_tmp33_ = newIt;
#line 352 "../src/user-list.vala"
				it = _tmp33_;
#line 2803 "user-list.c"
			} else {
				GList* _tmp34_;
				GList* _tmp35_;
#line 356 "../src/user-list.vala"
				_tmp34_ = it;
#line 356 "../src/user-list.vala"
				_tmp35_ = _tmp34_->next;
#line 356 "../src/user-list.vala"
				it = _tmp35_;
#line 2813 "user-list.c"
			}
#line 341 "../src/user-list.vala"
			remote_server_destroy (&remote_server);
#line 2817 "user-list.c"
		}
	}
}

static void
user_list_remote_login_changed (UserList* self,
                                const gchar* url,
                                const gchar* email_address)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
#line 362 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 362 "../src/user-list.vala"
	g_return_if_fail (url != NULL);
#line 362 "../src/user-list.vala"
	g_return_if_fail (email_address != NULL);
#line 364 "../src/user-list.vala"
	_tmp1_ = self->priv->currently_browsing_server_url;
#line 364 "../src/user-list.vala"
	if (g_strcmp0 (_tmp1_, url) == 0) {
#line 2839 "user-list.c"
		const gchar* _tmp2_;
#line 364 "../src/user-list.vala"
		_tmp2_ = self->priv->currently_browsing_server_email;
#line 364 "../src/user-list.vala"
		_tmp0_ = g_strcmp0 (_tmp2_, email_address) == 0;
#line 2845 "user-list.c"
	} else {
#line 364 "../src/user-list.vala"
		_tmp0_ = FALSE;
#line 2849 "user-list.c"
	}
#line 364 "../src/user-list.vala"
	if (_tmp0_) {
#line 2853 "user-list.c"
		gchar* _tmp3_;
		gchar* _tmp4_;
		gchar* directory_list_name = NULL;
		gchar* _tmp5_;
		const gchar* _tmp6_;
#line 367 "../src/user-list.vala"
		user_list_remove_remote_login_servers (self);
#line 368 "../src/user-list.vala"
		_tmp3_ = g_strdup ("");
#line 368 "../src/user-list.vala"
		_g_free0 (self->priv->currently_browsing_server_url);
#line 368 "../src/user-list.vala"
		self->priv->currently_browsing_server_url = _tmp3_;
#line 369 "../src/user-list.vala"
		_tmp4_ = g_strdup ("");
#line 369 "../src/user-list.vala"
		_g_free0 (self->priv->currently_browsing_server_email);
#line 369 "../src/user-list.vala"
		self->priv->currently_browsing_server_email = _tmp4_;
#line 371 "../src/user-list.vala"
		_tmp5_ = g_strconcat ("*remote_directory*", url, NULL);
#line 371 "../src/user-list.vala"
		directory_list_name = _tmp5_;
#line 372 "../src/user-list.vala"
		_tmp6_ = directory_list_name;
#line 372 "../src/user-list.vala"
		greeter_list_set_active_entry ((GreeterList*) self, _tmp6_);
#line 364 "../src/user-list.vala"
		_g_free0 (directory_list_name);
#line 2883 "user-list.c"
	}
}

static void
_user_list_set_remote_directory_servers_remote_login_service_servers_updated (RemoteLoginService* _sender,
                                                                              RemoteServer* serverList,
                                                                              gint serverList_length1,
                                                                              gpointer self)
{
#line 387 "../src/user-list.vala"
	user_list_set_remote_directory_servers ((UserList*) self, serverList, serverList_length1);
#line 2895 "user-list.c"
}

static void
_user_list_remote_login_servers_updated_remote_login_service_login_servers_updated (RemoteLoginService* _sender,
                                                                                    const gchar* url,
                                                                                    const gchar* emailAddress,
                                                                                    const gchar* dataType,
                                                                                    RemoteServer* serverList,
                                                                                    gint serverList_length1,
                                                                                    gpointer self)
{
#line 388 "../src/user-list.vala"
	user_list_remote_login_servers_updated ((UserList*) self, url, emailAddress, dataType, serverList, serverList_length1);
#line 2909 "user-list.c"
}

static void
_user_list_remote_login_changed_remote_login_service_login_changed (RemoteLoginService* _sender,
                                                                    const gchar* url,
                                                                    const gchar* emailAddress,
                                                                    gpointer self)
{
#line 389 "../src/user-list.vala"
	user_list_remote_login_changed ((UserList*) self, url, emailAddress);
#line 2920 "user-list.c"
}

static void
__lambda48_ (UserList* self,
             GObject* obj,
             GAsyncResult* res)
{
	GError* _inner_error0_ = NULL;
#line 383 "../src/user-list.vala"
	g_return_if_fail (res != NULL);
#line 2931 "user-list.c"
	{
		RemoteLoginService* _tmp0_ = NULL;
		RemoteLoginService* _tmp1_;
		RemoteLoginService* _tmp2_;
		RemoteLoginService* _tmp3_;
		RemoteLoginService* _tmp4_;
		RemoteLoginService* _tmp5_;
		RemoteLoginService* _tmp6_;
#line 386 "../src/user-list.vala"
		_tmp1_ = g_async_result_get_source_object (res);
#line 386 "../src/user-list.vala"
		_tmp2_ = (RemoteLoginService*) g_async_initable_new_finish ((GAsyncInitable *) _tmp1_, res, &_inner_error0_);
#line 386 "../src/user-list.vala"
		g_object_unref (_tmp1_);
#line 386 "../src/user-list.vala"
		_tmp0_ = (RemoteLoginService*) _tmp2_;
#line 386 "../src/user-list.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 386 "../src/user-list.vala"
			if (_inner_error0_->domain == G_IO_ERROR) {
#line 2952 "user-list.c"
				goto __catch0_g_io_error;
			}
#line 386 "../src/user-list.vala"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 386 "../src/user-list.vala"
			g_clear_error (&_inner_error0_);
#line 386 "../src/user-list.vala"
			return;
#line 2961 "user-list.c"
		}
#line 386 "../src/user-list.vala"
		_tmp3_ = _tmp0_;
#line 386 "../src/user-list.vala"
		_tmp0_ = NULL;
#line 386 "../src/user-list.vala"
		_g_object_unref0 (self->priv->remote_login_service);
#line 386 "../src/user-list.vala"
		self->priv->remote_login_service = _tmp3_;
#line 387 "../src/user-list.vala"
		_tmp4_ = self->priv->remote_login_service;
#line 387 "../src/user-list.vala"
		g_signal_connect_object (_tmp4_, "servers-updated", (GCallback) _user_list_set_remote_directory_servers_remote_login_service_servers_updated, self, 0);
#line 388 "../src/user-list.vala"
		_tmp5_ = self->priv->remote_login_service;
#line 388 "../src/user-list.vala"
		g_signal_connect_object (_tmp5_, "login-servers-updated", (GCallback) _user_list_remote_login_servers_updated_remote_login_service_login_servers_updated, self, 0);
#line 389 "../src/user-list.vala"
		_tmp6_ = self->priv->remote_login_service;
#line 389 "../src/user-list.vala"
		g_signal_connect_object (_tmp6_, "login-changed", (GCallback) _user_list_remote_login_changed_remote_login_service_login_changed, self, 0);
#line 390 "../src/user-list.vala"
		user_list_query_directory_servers (self, NULL, NULL);
#line 384 "../src/user-list.vala"
		_g_object_unref0 (_tmp0_);
#line 2987 "user-list.c"
	}
	goto __finally0;
	__catch0_g_io_error:
	{
		GError* e = NULL;
		GError* _tmp7_;
		const gchar* _tmp8_;
#line 384 "../src/user-list.vala"
		e = _inner_error0_;
#line 384 "../src/user-list.vala"
		_inner_error0_ = NULL;
#line 394 "../src/user-list.vala"
		_tmp7_ = e;
#line 394 "../src/user-list.vala"
		_tmp8_ = _tmp7_->message;
#line 394 "../src/user-list.vala"
		g_debug ("user-list.vala:394: Getting the com.canonical.RemoteLogin dbus service" \
" failed. Error: %s", _tmp8_);
#line 395 "../src/user-list.vala"
		user_list_remove_remote_servers (self);
#line 396 "../src/user-list.vala"
		_g_object_unref0 (self->priv->remote_login_service);
#line 396 "../src/user-list.vala"
		self->priv->remote_login_service = NULL;
#line 384 "../src/user-list.vala"
		_g_error_free0 (e);
#line 3013 "user-list.c"
	}
	__finally0:
#line 384 "../src/user-list.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 384 "../src/user-list.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 384 "../src/user-list.vala"
		g_clear_error (&_inner_error0_);
#line 384 "../src/user-list.vala"
		return;
#line 3024 "user-list.c"
	}
}

static void
___lambda48__gasync_ready_callback (GObject* source_object,
                                    GAsyncResult* res,
                                    gpointer self)
{
#line 378 "../src/user-list.vala"
	__lambda48_ ((UserList*) self, source_object, res);
#line 378 "../src/user-list.vala"
	g_object_unref (self);
#line 3037 "user-list.c"
}

static void
user_list_on_remote_login_service_appeared (UserList* self,
                                            GDBusConnection* conn,
                                            const gchar* name)
{
	GError* _inner_error0_ = NULL;
#line 376 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 376 "../src/user-list.vala"
	g_return_if_fail (conn != NULL);
#line 376 "../src/user-list.vala"
	g_return_if_fail (name != NULL);
#line 378 "../src/user-list.vala"
	g_async_initable_new_async (TYPE_REMOTE_LOGIN_SERVICE_PROXY, 0, NULL, ___lambda48__gasync_ready_callback, g_object_ref (self), "g-flags", 0, "g-name", "com.canonical.RemoteLogin", "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", "/com/canonical/RemoteLogin", "g-interface-name", "com.canonical.RemoteLogin", NULL);
#line 3054 "user-list.c"
}

static void
user_list_on_remote_login_service_vanished (UserList* self,
                                            GDBusConnection* conn,
                                            const gchar* name)
{
	SlickGreeter* _tmp0_;
#line 402 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 402 "../src/user-list.vala"
	g_return_if_fail (conn != NULL);
#line 402 "../src/user-list.vala"
	g_return_if_fail (name != NULL);
#line 404 "../src/user-list.vala"
	user_list_remove_remote_servers (self);
#line 405 "../src/user-list.vala"
	_g_object_unref0 (self->priv->remote_login_service);
#line 405 "../src/user-list.vala"
	self->priv->remote_login_service = NULL;
#line 408 "../src/user-list.vala"
	_tmp0_ = slick_greeter_singleton;
#line 408 "../src/user-list.vala"
	if (slick_greeter_hide_users_hint (_tmp0_)) {
#line 409 "../src/user-list.vala"
		greeter_list_add_manual_entry ((GreeterList*) self);
#line 410 "../src/user-list.vala"
		greeter_list_set_active_entry ((GreeterList*) self, "*other");
#line 3083 "user-list.c"
	}
}

static void
user_list_remote_directory_respond_cb_data_free (gpointer _data)
{
	UserListRemoteDirectoryRespondCbData* _data_;
	_data_ = _data;
#line 35 "../src/user-list.vala"
	_g_object_unref0 (_data_->self);
#line 35 "../src/user-list.vala"
	g_slice_free (UserListRemoteDirectoryRespondCbData, _data_);
#line 3096 "user-list.c"
}

static void
user_list_remote_directory_respond_cb (UserList* self,
                                       GAsyncReadyCallback _callback_,
                                       gpointer _user_data_)
{
	UserListRemoteDirectoryRespondCbData* _data_;
	UserList* _tmp0_;
#line 35 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 35 "../src/user-list.vala"
	_data_ = g_slice_new0 (UserListRemoteDirectoryRespondCbData);
#line 35 "../src/user-list.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
#line 35 "../src/user-list.vala"
	g_task_set_task_data (_data_->_async_result, _data_, user_list_remote_directory_respond_cb_data_free);
#line 35 "../src/user-list.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 35 "../src/user-list.vala"
	_data_->self = _tmp0_;
#line 35 "../src/user-list.vala"
	user_list_remote_directory_respond_cb_co (_data_);
#line 3120 "user-list.c"
}

static void
user_list_remote_directory_respond_cb_finish (UserList* self,
                                              GAsyncResult* _res_)
{
	UserListRemoteDirectoryRespondCbData* _data_;
#line 35 "../src/user-list.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 3130 "user-list.c"
}

static gboolean
_______lambda43_ (UserList* self)
{
	gboolean result;
#line 475 "../src/user-list.vala"
	user_list_test_call_set_remote_directory_servers (self);
#line 475 "../src/user-list.vala"
	result = FALSE;
#line 475 "../src/user-list.vala"
	return result;
#line 3143 "user-list.c"
}

static gboolean
________lambda43__gsource_func (gpointer self)
{
	gboolean result;
	result = _______lambda43_ ((UserList*) self);
#line 475 "../src/user-list.vala"
	return result;
#line 3153 "user-list.c"
}

static gboolean
________lambda44_ (UserList* self)
{
	gboolean result;
#line 481 "../src/user-list.vala"
	user_list_test_call_remote_login_servers_updated (self);
#line 481 "../src/user-list.vala"
	result = FALSE;
#line 481 "../src/user-list.vala"
	return result;
#line 3166 "user-list.c"
}

static gboolean
_________lambda44__gsource_func (gpointer self)
{
	gboolean result;
	result = ________lambda44_ ((UserList*) self);
#line 481 "../src/user-list.vala"
	return result;
#line 3176 "user-list.c"
}

static gboolean
_________lambda46_ (UserList* self)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gboolean result;
#line 487 "../src/user-list.vala"
	_tmp0_ = self->priv->currently_browsing_server_url;
#line 487 "../src/user-list.vala"
	_tmp1_ = self->priv->currently_browsing_server_email;
#line 487 "../src/user-list.vala"
	user_list_remote_login_changed (self, _tmp0_, _tmp1_);
#line 487 "../src/user-list.vala"
	result = FALSE;
#line 487 "../src/user-list.vala"
	return result;
#line 3195 "user-list.c"
}

static gboolean
__________lambda46__gsource_func (gpointer self)
{
	gboolean result;
	result = _________lambda46_ ((UserList*) self);
#line 487 "../src/user-list.vala"
	return result;
#line 3205 "user-list.c"
}

static void
user_list_remote_directory_respond_cb_ready (GObject* source_object,
                                             GAsyncResult* _res_,
                                             gpointer _user_data_)
{
	UserListRemoteDirectoryRespondCbData* _data_;
#line 502 "../src/user-list.vala"
	_data_ = _user_data_;
#line 502 "../src/user-list.vala"
	_data_->_source_object_ = source_object;
#line 502 "../src/user-list.vala"
	_data_->_res_ = _res_;
#line 502 "../src/user-list.vala"
	user_list_remote_directory_respond_cb_co (_data_);
#line 3222 "user-list.c"
}

static gboolean
user_list_remote_directory_respond_cb_co (UserListRemoteDirectoryRespondCbData* _data_)
{
#line 414 "../src/user-list.vala"
	switch (_data_->_state_) {
#line 414 "../src/user-list.vala"
		case 0:
#line 3232 "user-list.c"
		goto _state_0;
#line 414 "../src/user-list.vala"
		case 1:
#line 3236 "user-list.c"
		goto _state_1;
		default:
#line 414 "../src/user-list.vala"
		g_assert_not_reached ();
#line 3241 "user-list.c"
	}
	_state_0:
#line 416 "../src/user-list.vala"
	user_list_remove_remote_login_servers (_data_->self);
#line 417 "../src/user-list.vala"
	_data_->_tmp0_ = g_strdup ("");
#line 417 "../src/user-list.vala"
	_g_free0 (_data_->self->priv->currently_browsing_server_url);
#line 417 "../src/user-list.vala"
	_data_->self->priv->currently_browsing_server_url = _data_->_tmp0_;
#line 418 "../src/user-list.vala"
	_data_->_tmp1_ = g_strdup ("");
#line 418 "../src/user-list.vala"
	_g_free0 (_data_->self->priv->currently_browsing_server_email);
#line 418 "../src/user-list.vala"
	_data_->self->priv->currently_browsing_server_email = _data_->_tmp1_;
#line 420 "../src/user-list.vala"
	_data_->_tmp2_ = _data_->self->priv->current_remote_fields;
#line 420 "../src/user-list.vala"
	_data_->_tmp3_ = g_hash_table_lookup (_data_->_tmp2_, "password");
#line 420 "../src/user-list.vala"
	_data_->_tmp4_ = (GtkWidget*) _data_->_tmp3_;
#line 420 "../src/user-list.vala"
	_data_->_tmp5_ = _g_object_ref0 (IS_DASH_ENTRY (_data_->_tmp4_) ? ((DashEntry*) _data_->_tmp4_) : NULL);
#line 420 "../src/user-list.vala"
	_data_->password_field = _data_->_tmp5_;
#line 421 "../src/user-list.vala"
	_data_->_tmp6_ = _data_->self->priv->current_remote_fields;
#line 421 "../src/user-list.vala"
	_data_->_tmp7_ = g_hash_table_lookup (_data_->_tmp6_, "email");
#line 421 "../src/user-list.vala"
	_data_->_tmp8_ = (GtkWidget*) _data_->_tmp7_;
#line 421 "../src/user-list.vala"
	_data_->_tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp8_, gtk_entry_get_type ()) ? ((GtkEntry*) _data_->_tmp8_) : NULL);
#line 421 "../src/user-list.vala"
	_data_->email_field = _data_->_tmp9_;
#line 422 "../src/user-list.vala"
	_data_->_tmp10_ = _data_->password_field;
#line 422 "../src/user-list.vala"
	if (_data_->_tmp10_ == NULL) {
#line 424 "../src/user-list.vala"
		g_debug ("user-list.vala:424: Something wrong happened in remote_directory_respo" \
"nd_cb. There was no password field");
#line 425 "../src/user-list.vala"
		_g_object_unref0 (_data_->email_field);
#line 425 "../src/user-list.vala"
		_g_object_unref0 (_data_->password_field);
#line 425 "../src/user-list.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 425 "../src/user-list.vala"
		if (_data_->_state_ != 0) {
#line 425 "../src/user-list.vala"
			while (!g_task_get_completed (_data_->_async_result)) {
#line 425 "../src/user-list.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3296 "user-list.c"
			}
		}
#line 425 "../src/user-list.vala"
		g_object_unref (_data_->_async_result);
#line 425 "../src/user-list.vala"
		return FALSE;
#line 3303 "user-list.c"
	}
#line 427 "../src/user-list.vala"
	_data_->_tmp11_ = _data_->email_field;
#line 427 "../src/user-list.vala"
	if (_data_->_tmp11_ == NULL) {
#line 429 "../src/user-list.vala"
		g_debug ("user-list.vala:429: Something wrong happened in remote_directory_respo" \
"nd_cb. There was no email field");
#line 430 "../src/user-list.vala"
		_g_object_unref0 (_data_->email_field);
#line 430 "../src/user-list.vala"
		_g_object_unref0 (_data_->password_field);
#line 430 "../src/user-list.vala"
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 430 "../src/user-list.vala"
		if (_data_->_state_ != 0) {
#line 430 "../src/user-list.vala"
			while (!g_task_get_completed (_data_->_async_result)) {
#line 430 "../src/user-list.vala"
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3323 "user-list.c"
			}
		}
#line 430 "../src/user-list.vala"
		g_object_unref (_data_->_async_result);
#line 430 "../src/user-list.vala"
		return FALSE;
#line 3330 "user-list.c"
	}
#line 433 "../src/user-list.vala"
	_data_->_tmp12_ = g_new0 (RemoteServer, 0);
#line 433 "../src/user-list.vala"
	_data_->server_list = _data_->_tmp12_;
#line 433 "../src/user-list.vala"
	_data_->server_list_length1 = 0;
#line 433 "../src/user-list.vala"
	_data_->_server_list_size_ = _data_->server_list_length1;
#line 434 "../src/user-list.vala"
	_data_->_tmp13_ = _data_->email_field;
#line 434 "../src/user-list.vala"
	_data_->_tmp14_ = gtk_entry_get_text (_data_->_tmp13_);
#line 434 "../src/user-list.vala"
	_data_->_tmp15_ = _data_->_tmp14_;
#line 434 "../src/user-list.vala"
	_data_->_tmp16_ = g_strdup (_data_->_tmp15_);
#line 434 "../src/user-list.vala"
	_data_->email = _data_->_tmp16_;
#line 435 "../src/user-list.vala"
	_data_->email_valid = FALSE;
#line 3352 "user-list.c"
	{
#line 441 "../src/user-list.vala"
		_data_->_tmp17_ = g_regex_new ("[a-zA-Z0-9.!#$%&'\\*\\+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)" \
"*", 0, 0, &_data_->_inner_error0_);
#line 441 "../src/user-list.vala"
		_data_->re = _data_->_tmp17_;
#line 441 "../src/user-list.vala"
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 441 "../src/user-list.vala"
			if (_data_->_inner_error0_->domain == G_REGEX_ERROR) {
#line 3362 "user-list.c"
				goto __catch0_g_regex_error;
			}
#line 441 "../src/user-list.vala"
			_g_free0 (_data_->email);
#line 441 "../src/user-list.vala"
			_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 441 "../src/user-list.vala"
			_g_object_unref0 (_data_->email_field);
#line 441 "../src/user-list.vala"
			_g_object_unref0 (_data_->password_field);
#line 441 "../src/user-list.vala"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
#line 441 "../src/user-list.vala"
			g_clear_error (&_data_->_inner_error0_);
#line 441 "../src/user-list.vala"
			g_object_unref (_data_->_async_result);
#line 441 "../src/user-list.vala"
			return FALSE;
#line 3381 "user-list.c"
		}
#line 443 "../src/user-list.vala"
		_data_->_tmp18_ = _data_->re;
#line 443 "../src/user-list.vala"
		_data_->_tmp19_ = _data_->email;
#line 443 "../src/user-list.vala"
		_data_->_tmp20_ = NULL;
#line 443 "../src/user-list.vala"
		_data_->_tmp21_ = g_regex_match_all (_data_->_tmp18_, _data_->_tmp19_, 0, &_data_->_tmp20_);
#line 443 "../src/user-list.vala"
		_g_match_info_unref0 (_data_->info);
#line 443 "../src/user-list.vala"
		_data_->info = _data_->_tmp20_;
#line 443 "../src/user-list.vala"
		_data_->email_valid = _data_->_tmp21_;
#line 444 "../src/user-list.vala"
		if (_data_->email_valid) {
#line 444 "../src/user-list.vala"
			_data_->_tmp24_ = _data_->info;
#line 444 "../src/user-list.vala"
			_data_->_tmp23_ = g_match_info_get_match_count (_data_->_tmp24_) > 0;
#line 3403 "user-list.c"
		} else {
#line 444 "../src/user-list.vala"
			_data_->_tmp23_ = FALSE;
#line 3407 "user-list.c"
		}
#line 444 "../src/user-list.vala"
		if (_data_->_tmp23_) {
#line 444 "../src/user-list.vala"
			_data_->_tmp25_ = _data_->info;
#line 444 "../src/user-list.vala"
			_data_->_tmp26_ = g_match_info_fetch (_data_->_tmp25_, 0);
#line 444 "../src/user-list.vala"
			_data_->_tmp27_ = _data_->_tmp26_;
#line 444 "../src/user-list.vala"
			_data_->_tmp28_ = _data_->email;
#line 444 "../src/user-list.vala"
			_data_->_tmp22_ = g_strcmp0 (_data_->_tmp27_, _data_->_tmp28_) == 0;
#line 444 "../src/user-list.vala"
			_g_free0 (_data_->_tmp27_);
#line 3423 "user-list.c"
		} else {
#line 444 "../src/user-list.vala"
			_data_->_tmp22_ = FALSE;
#line 3427 "user-list.c"
		}
#line 444 "../src/user-list.vala"
		_data_->email_valid = _data_->_tmp22_;
#line 436 "../src/user-list.vala"
		_g_match_info_unref0 (_data_->info);
#line 436 "../src/user-list.vala"
		_g_regex_unref0 (_data_->re);
#line 3435 "user-list.c"
	}
	goto __finally0;
	__catch0_g_regex_error:
	{
#line 436 "../src/user-list.vala"
		_data_->e = _data_->_inner_error0_;
#line 436 "../src/user-list.vala"
		_data_->_inner_error0_ = NULL;
#line 448 "../src/user-list.vala"
		_data_->_tmp29_ = _data_->e;
#line 448 "../src/user-list.vala"
		_data_->_tmp30_ = _data_->_tmp29_->message;
#line 448 "../src/user-list.vala"
		g_debug ("user-list.vala:448: Calling email regex match failed. Error: %s", _data_->_tmp30_);
#line 436 "../src/user-list.vala"
		_g_error_free0 (_data_->e);
#line 3452 "user-list.c"
	}
	__finally0:
#line 436 "../src/user-list.vala"
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 436 "../src/user-list.vala"
		_g_free0 (_data_->email);
#line 436 "../src/user-list.vala"
		_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 436 "../src/user-list.vala"
		_g_object_unref0 (_data_->email_field);
#line 436 "../src/user-list.vala"
		_g_object_unref0 (_data_->password_field);
#line 436 "../src/user-list.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
#line 436 "../src/user-list.vala"
		g_clear_error (&_data_->_inner_error0_);
#line 436 "../src/user-list.vala"
		g_object_unref (_data_->_async_result);
#line 436 "../src/user-list.vala"
		return FALSE;
#line 3473 "user-list.c"
	}
#line 451 "../src/user-list.vala"
	_data_->_tmp31_ = greeter_list_get_selected_entry ((GreeterList*) _data_->self);
#line 451 "../src/user-list.vala"
	_data_->_tmp32_ = _data_->_tmp31_;
#line 451 "../src/user-list.vala"
	prompt_box_reset_messages (_data_->_tmp32_);
#line 452 "../src/user-list.vala"
	if (!_data_->email_valid) {
#line 454 "../src/user-list.vala"
		((GreeterList*) _data_->self)->will_clear = TRUE;
#line 455 "../src/user-list.vala"
		greeter_list_show_message ((GreeterList*) _data_->self, _ ("Please enter a complete e-mail address"), TRUE);
#line 456 "../src/user-list.vala"
		_data_->_tmp33_ = _data_->self->priv->remote_directory_server_list;
#line 456 "../src/user-list.vala"
		user_list_create_remote_fields_for_current_item (_data_->self, _data_->_tmp33_, NULL, NULL);
#line 3491 "user-list.c"
	} else {
#line 460 "../src/user-list.vala"
		_data_->login_success = FALSE;
#line 3495 "user-list.c"
		{
#line 463 "../src/user-list.vala"
			_data_->_tmp34_ = greeter_list_get_selected_entry ((GreeterList*) _data_->self);
#line 463 "../src/user-list.vala"
			_data_->_tmp35_ = _data_->_tmp34_;
#line 463 "../src/user-list.vala"
			_data_->_tmp36_ = prompt_box_get_id (_data_->_tmp35_);
#line 463 "../src/user-list.vala"
			_data_->_tmp37_ = _data_->_tmp36_;
#line 463 "../src/user-list.vala"
			_data_->_tmp38_ = user_list_url_from_remote_loding_server_list_name (_data_->self, _data_->_tmp37_);
#line 463 "../src/user-list.vala"
			_data_->url = _data_->_tmp38_;
#line 464 "../src/user-list.vala"
			_data_->_tmp39_ = slick_greeter_singleton;
#line 464 "../src/user-list.vala"
			if (_data_->_tmp39_->test_mode) {
#line 466 "../src/user-list.vala"
				_data_->_tmp40_ = _data_->password_field;
#line 466 "../src/user-list.vala"
				_data_->_tmp41_ = gtk_entry_get_text ((GtkEntry*) _data_->_tmp40_);
#line 466 "../src/user-list.vala"
				_data_->_tmp42_ = _data_->_tmp41_;
#line 466 "../src/user-list.vala"
				if (g_strcmp0 (_data_->_tmp42_, "password") == 0) {
#line 468 "../src/user-list.vala"
					_data_->_tmp43_ = NULL;
#line 468 "../src/user-list.vala"
					_data_->_tmp44_ = 0;
#line 468 "../src/user-list.vala"
					user_list_test_fill_remote_login_servers (_data_->self, &_data_->_tmp43_, &_data_->_tmp44_);
#line 468 "../src/user-list.vala"
					_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 468 "../src/user-list.vala"
					_data_->server_list = _data_->_tmp43_;
#line 468 "../src/user-list.vala"
					_data_->server_list_length1 = _data_->_tmp44_;
#line 468 "../src/user-list.vala"
					_data_->_server_list_size_ = _data_->server_list_length1;
#line 469 "../src/user-list.vala"
					_data_->login_success = TRUE;
#line 3537 "user-list.c"
				} else {
#line 471 "../src/user-list.vala"
					_data_->_tmp45_ = _data_->password_field;
#line 471 "../src/user-list.vala"
					_data_->_tmp46_ = gtk_entry_get_text ((GtkEntry*) _data_->_tmp45_);
#line 471 "../src/user-list.vala"
					_data_->_tmp47_ = _data_->_tmp46_;
#line 471 "../src/user-list.vala"
					if (g_strcmp0 (_data_->_tmp47_, "delay1") == 0) {
#line 473 "../src/user-list.vala"
						_data_->_tmp48_ = NULL;
#line 473 "../src/user-list.vala"
						_data_->_tmp49_ = 0;
#line 473 "../src/user-list.vala"
						user_list_test_fill_remote_login_servers (_data_->self, &_data_->_tmp48_, &_data_->_tmp49_);
#line 473 "../src/user-list.vala"
						_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 473 "../src/user-list.vala"
						_data_->server_list = _data_->_tmp48_;
#line 473 "../src/user-list.vala"
						_data_->server_list_length1 = _data_->_tmp49_;
#line 473 "../src/user-list.vala"
						_data_->_server_list_size_ = _data_->server_list_length1;
#line 474 "../src/user-list.vala"
						_data_->login_success = TRUE;
#line 475 "../src/user-list.vala"
						g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 5000, ________lambda43__gsource_func, g_object_ref (_data_->self), g_object_unref);
#line 3565 "user-list.c"
					} else {
#line 477 "../src/user-list.vala"
						_data_->_tmp50_ = _data_->password_field;
#line 477 "../src/user-list.vala"
						_data_->_tmp51_ = gtk_entry_get_text ((GtkEntry*) _data_->_tmp50_);
#line 477 "../src/user-list.vala"
						_data_->_tmp52_ = _data_->_tmp51_;
#line 477 "../src/user-list.vala"
						if (g_strcmp0 (_data_->_tmp52_, "delay2") == 0) {
#line 479 "../src/user-list.vala"
							_data_->_tmp53_ = NULL;
#line 479 "../src/user-list.vala"
							_data_->_tmp54_ = 0;
#line 479 "../src/user-list.vala"
							user_list_test_fill_remote_login_servers (_data_->self, &_data_->_tmp53_, &_data_->_tmp54_);
#line 479 "../src/user-list.vala"
							_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 479 "../src/user-list.vala"
							_data_->server_list = _data_->_tmp53_;
#line 479 "../src/user-list.vala"
							_data_->server_list_length1 = _data_->_tmp54_;
#line 479 "../src/user-list.vala"
							_data_->_server_list_size_ = _data_->server_list_length1;
#line 480 "../src/user-list.vala"
							_data_->login_success = TRUE;
#line 481 "../src/user-list.vala"
							g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 5000, _________lambda44__gsource_func, g_object_ref (_data_->self), g_object_unref);
#line 3593 "user-list.c"
						} else {
#line 483 "../src/user-list.vala"
							_data_->_tmp55_ = _data_->password_field;
#line 483 "../src/user-list.vala"
							_data_->_tmp56_ = gtk_entry_get_text ((GtkEntry*) _data_->_tmp55_);
#line 483 "../src/user-list.vala"
							_data_->_tmp57_ = _data_->_tmp56_;
#line 483 "../src/user-list.vala"
							if (g_strcmp0 (_data_->_tmp57_, "delay3") == 0) {
#line 485 "../src/user-list.vala"
								_data_->_tmp58_ = NULL;
#line 485 "../src/user-list.vala"
								_data_->_tmp59_ = 0;
#line 485 "../src/user-list.vala"
								user_list_test_fill_remote_login_servers (_data_->self, &_data_->_tmp58_, &_data_->_tmp59_);
#line 485 "../src/user-list.vala"
								_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 485 "../src/user-list.vala"
								_data_->server_list = _data_->_tmp58_;
#line 485 "../src/user-list.vala"
								_data_->server_list_length1 = _data_->_tmp59_;
#line 485 "../src/user-list.vala"
								_data_->_server_list_size_ = _data_->server_list_length1;
#line 486 "../src/user-list.vala"
								_data_->login_success = TRUE;
#line 487 "../src/user-list.vala"
								g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 5000, __________lambda46__gsource_func, g_object_ref (_data_->self), g_object_unref);
#line 3621 "user-list.c"
							} else {
#line 489 "../src/user-list.vala"
								_data_->_tmp60_ = _data_->password_field;
#line 489 "../src/user-list.vala"
								_data_->_tmp61_ = gtk_entry_get_text ((GtkEntry*) _data_->_tmp60_);
#line 489 "../src/user-list.vala"
								_data_->_tmp62_ = _data_->_tmp61_;
#line 489 "../src/user-list.vala"
								if (g_strcmp0 (_data_->_tmp62_, "duplicate") == 0) {
#line 491 "../src/user-list.vala"
									_data_->_tmp63_ = NULL;
#line 491 "../src/user-list.vala"
									_data_->_tmp64_ = 0;
#line 491 "../src/user-list.vala"
									user_list_test_fill_remote_login_servers_duplicate_entries (_data_->self, &_data_->_tmp63_, &_data_->_tmp64_);
#line 491 "../src/user-list.vala"
									_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 491 "../src/user-list.vala"
									_data_->server_list = _data_->_tmp63_;
#line 491 "../src/user-list.vala"
									_data_->server_list_length1 = _data_->_tmp64_;
#line 491 "../src/user-list.vala"
									_data_->_server_list_size_ = _data_->server_list_length1;
#line 492 "../src/user-list.vala"
									_data_->login_success = TRUE;
#line 3647 "user-list.c"
								}
							}
						}
					}
				}
			} else {
#line 498 "../src/user-list.vala"
				_data_->allowcache = TRUE;
#line 500 "../src/user-list.vala"
				_data_->_tmp67_ = greeter_list_get_selected_entry ((GreeterList*) _data_->self);
#line 500 "../src/user-list.vala"
				_data_->_tmp68_ = _data_->_tmp67_;
#line 500 "../src/user-list.vala"
				_data_->_tmp69_ = prompt_box_get_has_errors (_data_->_tmp68_);
#line 500 "../src/user-list.vala"
				_data_->_tmp70_ = _data_->_tmp69_;
#line 500 "../src/user-list.vala"
				if (_data_->_tmp70_) {
#line 500 "../src/user-list.vala"
					_data_->_tmp71_ = _data_->self->priv->currently_browsing_server_email;
#line 500 "../src/user-list.vala"
					_data_->_tmp72_ = _data_->email;
#line 500 "../src/user-list.vala"
					_data_->_tmp66_ = g_strcmp0 (_data_->_tmp71_, _data_->_tmp72_) == 0;
#line 3672 "user-list.c"
				} else {
#line 500 "../src/user-list.vala"
					_data_->_tmp66_ = FALSE;
#line 3676 "user-list.c"
				}
#line 500 "../src/user-list.vala"
				if (_data_->_tmp66_) {
#line 500 "../src/user-list.vala"
					_data_->_tmp73_ = _data_->self->priv->currently_browsing_server_url;
#line 500 "../src/user-list.vala"
					_data_->_tmp74_ = _data_->url;
#line 500 "../src/user-list.vala"
					_data_->_tmp65_ = g_strcmp0 (_data_->_tmp73_, _data_->_tmp74_) == 0;
#line 3686 "user-list.c"
				} else {
#line 500 "../src/user-list.vala"
					_data_->_tmp65_ = FALSE;
#line 3690 "user-list.c"
				}
#line 500 "../src/user-list.vala"
				if (_data_->_tmp65_) {
#line 501 "../src/user-list.vala"
					_data_->allowcache = FALSE;
#line 3696 "user-list.c"
				}
#line 502 "../src/user-list.vala"
				_data_->_tmp75_ = _data_->self->priv->remote_login_service;
#line 502 "../src/user-list.vala"
				_data_->_tmp76_ = _data_->url;
#line 502 "../src/user-list.vala"
				_data_->_tmp77_ = _data_->email;
#line 502 "../src/user-list.vala"
				_data_->_tmp78_ = _data_->password_field;
#line 502 "../src/user-list.vala"
				_data_->_tmp79_ = gtk_entry_get_text ((GtkEntry*) _data_->_tmp78_);
#line 502 "../src/user-list.vala"
				_data_->_tmp80_ = _data_->_tmp79_;
#line 502 "../src/user-list.vala"
				_data_->_tmp81_ = FALSE;
#line 502 "../src/user-list.vala"
				_data_->_tmp82_ = NULL;
#line 502 "../src/user-list.vala"
				_data_->_tmp83_ = NULL;
#line 502 "../src/user-list.vala"
				_data_->_tmp84_ = 0;
#line 502 "../src/user-list.vala"
				_data_->_state_ = 1;
#line 502 "../src/user-list.vala"
				remote_login_service_get_servers_for_login (_data_->_tmp75_, _data_->_tmp76_, _data_->_tmp77_, _data_->_tmp80_, _data_->allowcache, user_list_remote_directory_respond_cb_ready, _data_);
#line 502 "../src/user-list.vala"
				return FALSE;
#line 3724 "user-list.c"
				_state_1:
#line 502 "../src/user-list.vala"
				remote_login_service_get_servers_for_login_finish (_data_->_tmp75_, _data_->_res_, &_data_->_tmp81_, &_data_->_tmp82_, &_data_->_tmp83_, &_data_->_tmp84_, &_data_->_inner_error0_);
#line 502 "../src/user-list.vala"
				_data_->login_success = _data_->_tmp81_;
#line 502 "../src/user-list.vala"
				_g_free0 (_data_->data_type);
#line 502 "../src/user-list.vala"
				_data_->data_type = _data_->_tmp82_;
#line 502 "../src/user-list.vala"
				_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 502 "../src/user-list.vala"
				_data_->server_list = _data_->_tmp83_;
#line 502 "../src/user-list.vala"
				_data_->server_list_length1 = _data_->_tmp84_;
#line 502 "../src/user-list.vala"
				_data_->_server_list_size_ = _data_->server_list_length1;
#line 502 "../src/user-list.vala"
				if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 502 "../src/user-list.vala"
					_g_free0 (_data_->data_type);
#line 502 "../src/user-list.vala"
					_g_free0 (_data_->url);
#line 3748 "user-list.c"
					goto __catch1_g_error;
				}
#line 464 "../src/user-list.vala"
				_g_free0 (_data_->data_type);
#line 3753 "user-list.c"
			}
#line 504 "../src/user-list.vala"
			_data_->_tmp85_ = _data_->url;
#line 504 "../src/user-list.vala"
			_data_->_tmp86_ = g_strdup (_data_->_tmp85_);
#line 504 "../src/user-list.vala"
			_g_free0 (_data_->self->priv->currently_browsing_server_url);
#line 504 "../src/user-list.vala"
			_data_->self->priv->currently_browsing_server_url = _data_->_tmp86_;
#line 505 "../src/user-list.vala"
			_data_->_tmp87_ = _data_->email;
#line 505 "../src/user-list.vala"
			_data_->_tmp88_ = g_strdup (_data_->_tmp87_);
#line 505 "../src/user-list.vala"
			_g_free0 (_data_->self->priv->currently_browsing_server_email);
#line 505 "../src/user-list.vala"
			_data_->self->priv->currently_browsing_server_email = _data_->_tmp88_;
#line 461 "../src/user-list.vala"
			_g_free0 (_data_->url);
#line 3773 "user-list.c"
		}
		goto __finally1;
		__catch1_g_error:
		{
#line 461 "../src/user-list.vala"
			_data_->_vala1_e = _data_->_inner_error0_;
#line 461 "../src/user-list.vala"
			_data_->_inner_error0_ = NULL;
#line 509 "../src/user-list.vala"
			_data_->_tmp89_ = _data_->_vala1_e;
#line 509 "../src/user-list.vala"
			_data_->_tmp90_ = _data_->_tmp89_->message;
#line 509 "../src/user-list.vala"
			g_debug ("user-list.vala:509: Calling get_servers in com.canonical.RemoteLogin d" \
"bus service failed. Error: %s", _data_->_tmp90_);
#line 461 "../src/user-list.vala"
			_g_error_free0 (_data_->_vala1_e);
#line 3790 "user-list.c"
		}
		__finally1:
#line 461 "../src/user-list.vala"
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 461 "../src/user-list.vala"
			_g_free0 (_data_->email);
#line 461 "../src/user-list.vala"
			_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 461 "../src/user-list.vala"
			_g_object_unref0 (_data_->email_field);
#line 461 "../src/user-list.vala"
			_g_object_unref0 (_data_->password_field);
#line 461 "../src/user-list.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
#line 461 "../src/user-list.vala"
			g_clear_error (&_data_->_inner_error0_);
#line 461 "../src/user-list.vala"
			g_object_unref (_data_->_async_result);
#line 461 "../src/user-list.vala"
			return FALSE;
#line 3811 "user-list.c"
		}
#line 512 "../src/user-list.vala"
		if (_data_->login_success) {
#line 514 "../src/user-list.vala"
			_data_->_tmp91_ = _data_->password_field;
#line 514 "../src/user-list.vala"
			dash_entry_set_did_respond (_data_->_tmp91_, FALSE);
#line 515 "../src/user-list.vala"
			_data_->_tmp92_ = _data_->server_list;
#line 515 "../src/user-list.vala"
			_data_->_tmp92__length1 = _data_->server_list_length1;
#line 515 "../src/user-list.vala"
			if (_data_->_tmp92__length1 == 0) {
#line 516 "../src/user-list.vala"
				user_list_show_remote_account_dialog (_data_->self);
#line 3827 "user-list.c"
			} else {
#line 519 "../src/user-list.vala"
				_data_->_tmp93_ = g_strdup ("");
#line 519 "../src/user-list.vala"
				_data_->last_used_server_list_name = _data_->_tmp93_;
#line 520 "../src/user-list.vala"
				_data_->_tmp94_ = _data_->server_list;
#line 520 "../src/user-list.vala"
				_data_->_tmp94__length1 = _data_->server_list_length1;
#line 3837 "user-list.c"
				{
#line 520 "../src/user-list.vala"
					_data_->remote_server_collection_length1 = 0;
#line 520 "../src/user-list.vala"
					_data_->_remote_server_collection_size_ = 0;
#line 520 "../src/user-list.vala"
					_data_->remote_server_collection = _data_->_tmp94_;
#line 520 "../src/user-list.vala"
					_data_->remote_server_collection_length1 = _data_->_tmp94__length1;
#line 520 "../src/user-list.vala"
					for (_data_->remote_server_it = 0; _data_->remote_server_it < _data_->remote_server_collection_length1; _data_->remote_server_it = _data_->remote_server_it + 1) {
#line 520 "../src/user-list.vala"
						_data_->_tmp95_ = _data_->remote_server_collection[_data_->remote_server_it];
#line 520 "../src/user-list.vala"
						memset (&_data_->_tmp96_, 0, sizeof (RemoteServer));
#line 520 "../src/user-list.vala"
						remote_server_copy (&_data_->_tmp95_, &_data_->_tmp96_);
#line 520 "../src/user-list.vala"
						_data_->remote_server = _data_->_tmp96_;
#line 3857 "user-list.c"
						{
#line 522 "../src/user-list.vala"
							_data_->_tmp97_ = _data_->remote_server;
#line 522 "../src/user-list.vala"
							_data_->_tmp98_ = user_list_create_prompt_for_login_server (_data_->self, &_data_->_tmp97_);
#line 522 "../src/user-list.vala"
							_data_->_vala2_e = _data_->_tmp98_;
#line 523 "../src/user-list.vala"
							_data_->_tmp99_ = _data_->remote_server;
#line 523 "../src/user-list.vala"
							if (_data_->_tmp99_.last_used_server) {
#line 524 "../src/user-list.vala"
								_data_->_tmp100_ = _data_->_vala2_e;
#line 524 "../src/user-list.vala"
								_data_->_tmp101_ = prompt_box_get_id (_data_->_tmp100_);
#line 524 "../src/user-list.vala"
								_data_->_tmp102_ = _data_->_tmp101_;
#line 524 "../src/user-list.vala"
								_data_->_tmp103_ = g_strdup (_data_->_tmp102_);
#line 524 "../src/user-list.vala"
								_g_free0 (_data_->last_used_server_list_name);
#line 524 "../src/user-list.vala"
								_data_->last_used_server_list_name = _data_->_tmp103_;
#line 3881 "user-list.c"
							}
#line 520 "../src/user-list.vala"
							_g_object_unref0 (_data_->_vala2_e);
#line 520 "../src/user-list.vala"
							remote_server_destroy (&_data_->remote_server);
#line 3887 "user-list.c"
						}
					}
				}
#line 526 "../src/user-list.vala"
				_data_->_tmp104_ = _data_->last_used_server_list_name;
#line 526 "../src/user-list.vala"
				if (g_strcmp0 (_data_->_tmp104_, "") != 0) {
#line 527 "../src/user-list.vala"
					_data_->_tmp105_ = _data_->last_used_server_list_name;
#line 527 "../src/user-list.vala"
					greeter_list_set_active_entry ((GreeterList*) _data_->self, _data_->_tmp105_);
#line 3899 "user-list.c"
				} else {
#line 529 "../src/user-list.vala"
					greeter_list_set_active_first_entry_with_prefix ((GreeterList*) _data_->self, "*remote_login");
#line 3903 "user-list.c"
				}
#line 515 "../src/user-list.vala"
				_g_free0 (_data_->last_used_server_list_name);
#line 3907 "user-list.c"
			}
		} else {
#line 534 "../src/user-list.vala"
			((GreeterList*) _data_->self)->will_clear = TRUE;
#line 535 "../src/user-list.vala"
			greeter_list_show_message ((GreeterList*) _data_->self, _ ("Incorrect e-mail address or password"), TRUE);
#line 536 "../src/user-list.vala"
			_data_->_tmp106_ = _data_->self->priv->remote_directory_server_list;
#line 536 "../src/user-list.vala"
			user_list_create_remote_fields_for_current_item (_data_->self, _data_->_tmp106_, NULL, NULL);
#line 3918 "user-list.c"
		}
	}
#line 414 "../src/user-list.vala"
	_g_free0 (_data_->email);
#line 414 "../src/user-list.vala"
	_data_->server_list = (_vala_RemoteServer_array_free (_data_->server_list, _data_->server_list_length1), NULL);
#line 414 "../src/user-list.vala"
	_g_object_unref0 (_data_->email_field);
#line 414 "../src/user-list.vala"
	_g_object_unref0 (_data_->password_field);
#line 414 "../src/user-list.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 414 "../src/user-list.vala"
	if (_data_->_state_ != 0) {
#line 414 "../src/user-list.vala"
		while (!g_task_get_completed (_data_->_async_result)) {
#line 414 "../src/user-list.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 3937 "user-list.c"
		}
	}
#line 414 "../src/user-list.vala"
	g_object_unref (_data_->_async_result);
#line 414 "../src/user-list.vala"
	return FALSE;
#line 3944 "user-list.c"
}

static gboolean
____lambda45_ (UserList* self)
{
	gboolean result;
#line 551 "../src/user-list.vala"
	greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 551 "../src/user-list.vala"
	result = FALSE;
#line 551 "../src/user-list.vala"
	return result;
#line 3957 "user-list.c"
}

static gboolean
_____lambda45__gsource_func (gpointer self)
{
	gboolean result;
	result = ____lambda45_ ((UserList*) self);
#line 551 "../src/user-list.vala"
	return result;
#line 3967 "user-list.c"
}

static void
user_list_remote_login_respond_cb (UserList* self)
{
	PromptBox* _tmp0_;
	PromptBox* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	SlickGreeter* _tmp5_;
#line 541 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 543 "../src/user-list.vala"
	gtk_widget_set_sensitive ((GtkWidget*) self, FALSE);
#line 544 "../src/user-list.vala"
	((GreeterList*) self)->will_clear = TRUE;
#line 545 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 545 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 545 "../src/user-list.vala"
	_tmp2_ = prompt_box_get_id (_tmp1_);
#line 545 "../src/user-list.vala"
	_tmp3_ = _tmp2_;
#line 545 "../src/user-list.vala"
	_tmp4_ = g_strdup (_tmp3_);
#line 545 "../src/user-list.vala"
	_g_free0 (((GreeterList*) self)->greeter_authenticating_user);
#line 545 "../src/user-list.vala"
	((GreeterList*) self)->greeter_authenticating_user = _tmp4_;
#line 546 "../src/user-list.vala"
	_tmp5_ = slick_greeter_singleton;
#line 546 "../src/user-list.vala"
	if (_tmp5_->test_mode) {
#line 4003 "user-list.c"
		GtkEntry* field = NULL;
		GHashTable* _tmp6_;
		gconstpointer _tmp7_;
		GtkWidget* _tmp8_;
		GtkEntry* _tmp9_;
		GtkEntry* _tmp10_;
		const gchar* _tmp11_;
		const gchar* _tmp12_;
		GtkEntry* _tmp13_;
		const gchar* _tmp14_;
		const gchar* _tmp15_;
#line 548 "../src/user-list.vala"
		_tmp6_ = self->priv->current_remote_fields;
#line 548 "../src/user-list.vala"
		_tmp7_ = g_hash_table_lookup (_tmp6_, "password");
#line 548 "../src/user-list.vala"
		_tmp8_ = (GtkWidget*) _tmp7_;
#line 548 "../src/user-list.vala"
		_tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp8_) : NULL);
#line 548 "../src/user-list.vala"
		field = _tmp9_;
#line 549 "../src/user-list.vala"
		_tmp10_ = field;
#line 549 "../src/user-list.vala"
		_tmp11_ = gtk_entry_get_text (_tmp10_);
#line 549 "../src/user-list.vala"
		_tmp12_ = _tmp11_;
#line 549 "../src/user-list.vala"
		((GreeterList*) self)->test_is_authenticated = g_strcmp0 (_tmp12_, "password") == 0;
#line 550 "../src/user-list.vala"
		_tmp13_ = field;
#line 550 "../src/user-list.vala"
		_tmp14_ = gtk_entry_get_text (_tmp13_);
#line 550 "../src/user-list.vala"
		_tmp15_ = _tmp14_;
#line 550 "../src/user-list.vala"
		if (g_strcmp0 (_tmp15_, "delay") == 0) {
#line 551 "../src/user-list.vala"
			g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 5000, _____lambda45__gsource_func, g_object_ref (self), g_object_unref);
#line 4043 "user-list.c"
		} else {
#line 553 "../src/user-list.vala"
			greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 4047 "user-list.c"
		}
#line 546 "../src/user-list.vala"
		_g_object_unref0 (field);
#line 4051 "user-list.c"
	} else {
		SlickGreeter* _tmp16_;
		gchar* _tmp17_;
		gchar* _tmp18_;
		RemoteLoginService* _tmp19_;
		const gchar* _tmp20_;
		PromptBox* _tmp21_;
		PromptBox* _tmp22_;
		const gchar* _tmp23_;
		const gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
#line 557 "../src/user-list.vala"
		_tmp16_ = slick_greeter_singleton;
#line 557 "../src/user-list.vala"
		_tmp17_ = greeter_list_get_lightdm_session ((GreeterList*) self);
#line 557 "../src/user-list.vala"
		_tmp18_ = _tmp17_;
#line 557 "../src/user-list.vala"
		slick_greeter_authenticate_remote (_tmp16_, _tmp18_, NULL);
#line 557 "../src/user-list.vala"
		_g_free0 (_tmp18_);
#line 558 "../src/user-list.vala"
		_tmp19_ = self->priv->remote_login_service;
#line 558 "../src/user-list.vala"
		_tmp20_ = self->priv->currently_browsing_server_url;
#line 558 "../src/user-list.vala"
		_tmp21_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 558 "../src/user-list.vala"
		_tmp22_ = _tmp21_;
#line 558 "../src/user-list.vala"
		_tmp23_ = prompt_box_get_id (_tmp22_);
#line 558 "../src/user-list.vala"
		_tmp24_ = _tmp23_;
#line 558 "../src/user-list.vala"
		_tmp25_ = user_list_url_from_remote_loding_server_list_name (self, _tmp24_);
#line 558 "../src/user-list.vala"
		_tmp26_ = _tmp25_;
#line 558 "../src/user-list.vala"
		remote_login_service_set_last_used_server (_tmp19_, _tmp20_, _tmp26_, NULL, NULL);
#line 558 "../src/user-list.vala"
		_g_free0 (_tmp26_);
#line 4094 "user-list.c"
	}
}

static Block10Data*
block10_data_ref (Block10Data* _data10_)
{
#line 562 "../src/user-list.vala"
	g_atomic_int_inc (&_data10_->_ref_count_);
#line 562 "../src/user-list.vala"
	return _data10_;
#line 4105 "user-list.c"
}

static void
block10_data_unref (void * _userdata_)
{
	Block10Data* _data10_;
	_data10_ = (Block10Data*) _userdata_;
#line 562 "../src/user-list.vala"
	if (g_atomic_int_dec_and_test (&_data10_->_ref_count_)) {
#line 4115 "user-list.c"
		UserList* self;
#line 562 "../src/user-list.vala"
		self = _data10_->self;
#line 562 "../src/user-list.vala"
		_g_object_unref0 (_data10_->dialog);
#line 562 "../src/user-list.vala"
		_g_object_unref0 (self);
#line 562 "../src/user-list.vala"
		g_slice_free (Block10Data, _data10_);
#line 4125 "user-list.c"
	}
}

static void
__lambda47_ (Block10Data* _data10_,
             gint id)
{
	UserList* self;
	GtkMessageDialog* _tmp9_;
#line 583 "../src/user-list.vala"
	self = _data10_->self;
#line 585 "../src/user-list.vala"
	if (id == 1) {
#line 4139 "user-list.c"
		gchar* config_session = NULL;
		gchar* _tmp0_;
		const gchar* _tmp1_;
#line 587 "../src/user-list.vala"
		_tmp0_ = g_strdup ("uccsconfigure");
#line 587 "../src/user-list.vala"
		config_session = _tmp0_;
#line 588 "../src/user-list.vala"
		_tmp1_ = config_session;
#line 588 "../src/user-list.vala"
		if (user_list_is_supported_remote_session (self, _tmp1_)) {
#line 4151 "user-list.c"
			PromptBox* _tmp2_;
			PromptBox* _tmp3_;
			const gchar* _tmp4_;
			const gchar* _tmp5_;
			gchar* _tmp6_;
			SlickGreeter* _tmp7_;
			const gchar* _tmp8_;
#line 590 "../src/user-list.vala"
			_tmp2_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 590 "../src/user-list.vala"
			_tmp3_ = _tmp2_;
#line 590 "../src/user-list.vala"
			_tmp4_ = prompt_box_get_id (_tmp3_);
#line 590 "../src/user-list.vala"
			_tmp5_ = _tmp4_;
#line 590 "../src/user-list.vala"
			_tmp6_ = g_strdup (_tmp5_);
#line 590 "../src/user-list.vala"
			_g_free0 (((GreeterList*) self)->greeter_authenticating_user);
#line 590 "../src/user-list.vala"
			((GreeterList*) self)->greeter_authenticating_user = _tmp6_;
#line 591 "../src/user-list.vala"
			_tmp7_ = slick_greeter_singleton;
#line 591 "../src/user-list.vala"
			_tmp8_ = config_session;
#line 591 "../src/user-list.vala"
			slick_greeter_authenticate_remote (_tmp7_, _tmp8_, NULL);
#line 4179 "user-list.c"
		}
#line 585 "../src/user-list.vala"
		_g_free0 (config_session);
#line 4183 "user-list.c"
	}
#line 594 "../src/user-list.vala"
	_tmp9_ = _data10_->dialog;
#line 594 "../src/user-list.vala"
	gtk_widget_destroy ((GtkWidget*) _tmp9_);
#line 4189 "user-list.c"
}

static void
___lambda47__gtk_dialog_response (GtkDialog* _sender,
                                  gint response_id,
                                  gpointer self)
{
#line 583 "../src/user-list.vala"
	__lambda47_ (self, response_id);
#line 4199 "user-list.c"
}

static void
user_list_show_remote_account_dialog (UserList* self)
{
	Block10Data* _data10_;
	GtkMessageDialog* _tmp0_;
	GtkMessageDialog* _tmp1_;
	GtkMessageDialog* _tmp2_;
	GtkMessageDialog* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	GtkMessageDialog* _tmp14_;
	GtkMessageDialog* _tmp15_;
	GtkMessageDialog* _tmp16_;
#line 562 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 562 "../src/user-list.vala"
	_data10_ = g_slice_new0 (Block10Data);
#line 562 "../src/user-list.vala"
	_data10_->_ref_count_ = 1;
#line 562 "../src/user-list.vala"
	_data10_->self = g_object_ref (self);
#line 564 "../src/user-list.vala"
	_tmp0_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_OTHER, GTK_BUTTONS_NONE, "");
#line 564 "../src/user-list.vala"
	g_object_ref_sink (_tmp0_);
#line 564 "../src/user-list.vala"
	_data10_->dialog = _tmp0_;
#line 565 "../src/user-list.vala"
	_tmp1_ = _data10_->dialog;
#line 565 "../src/user-list.vala"
	gtk_window_set_position ((GtkWindow*) _tmp1_, GTK_WIN_POS_CENTER_ALWAYS);
#line 566 "../src/user-list.vala"
	_tmp2_ = _data10_->dialog;
#line 566 "../src/user-list.vala"
	g_object_set (_tmp2_, "secondary-text", _ ("If you have an account on an RDP or Citrix server, Remote Login lets y" \
"ou run applications from that server."), NULL);
#line 568 "../src/user-list.vala"
	_tmp3_ = _data10_->dialog;
#line 568 "../src/user-list.vala"
	g_object_set (_tmp3_, "secondary-text", _ ("If you have an account on an RDP server, Remote Login lets you run app" \
"lications from that server."), NULL);
#line 569 "../src/user-list.vala"
	_tmp4_ = user_list_get_offer_guest (self);
#line 569 "../src/user-list.vala"
	_tmp5_ = _tmp4_;
#line 569 "../src/user-list.vala"
	if (_tmp5_) {
#line 4247 "user-list.c"
		GtkMessageDialog* _tmp6_;
		GtkWidget* b = NULL;
		GtkMessageDialog* _tmp7_;
		GtkWidget* _tmp8_;
		GtkWidget* _tmp9_;
		GtkWidget* _tmp10_;
		GtkMessageDialog* _tmp11_;
#line 571 "../src/user-list.vala"
		_tmp6_ = _data10_->dialog;
#line 571 "../src/user-list.vala"
		gtk_dialog_add_button ((GtkDialog*) _tmp6_, _ ("Cancel"), 0);
#line 572 "../src/user-list.vala"
		_tmp7_ = _data10_->dialog;
#line 572 "../src/user-list.vala"
		_tmp8_ = gtk_dialog_add_button ((GtkDialog*) _tmp7_, _ ("Set Up..."), 1);
#line 572 "../src/user-list.vala"
		_tmp9_ = _g_object_ref0 (_tmp8_);
#line 572 "../src/user-list.vala"
		b = _tmp9_;
#line 573 "../src/user-list.vala"
		_tmp10_ = b;
#line 573 "../src/user-list.vala"
		gtk_widget_grab_focus (_tmp10_);
#line 574 "../src/user-list.vala"
		_tmp11_ = _data10_->dialog;
#line 574 "../src/user-list.vala"
		g_object_set (_tmp11_, "text", _ ("You need an Ubuntu Remote Login account to use this service. Would you" \
" like to set up an account now?"), NULL);
#line 569 "../src/user-list.vala"
		_g_object_unref0 (b);
#line 4277 "user-list.c"
	} else {
		GtkMessageDialog* _tmp12_;
		GtkMessageDialog* _tmp13_;
#line 578 "../src/user-list.vala"
		_tmp12_ = _data10_->dialog;
#line 578 "../src/user-list.vala"
		gtk_dialog_add_button ((GtkDialog*) _tmp12_, _ ("OK"), 0);
#line 579 "../src/user-list.vala"
		_tmp13_ = _data10_->dialog;
#line 579 "../src/user-list.vala"
		g_object_set (_tmp13_, "text", _ ("You need an Ubuntu Remote Login account to use this service. Visit ucc" \
"s.canonical.com to set up an account."), NULL);
#line 4289 "user-list.c"
	}
#line 582 "../src/user-list.vala"
	_tmp14_ = _data10_->dialog;
#line 582 "../src/user-list.vala"
	gtk_widget_show_all ((GtkWidget*) _tmp14_);
#line 583 "../src/user-list.vala"
	_tmp15_ = _data10_->dialog;
#line 583 "../src/user-list.vala"
	g_signal_connect_data ((GtkDialog*) _tmp15_, "response", (GCallback) ___lambda47__gtk_dialog_response, block10_data_ref (_data10_), (GClosureNotify) block10_data_unref, 0);
#line 596 "../src/user-list.vala"
	_tmp16_ = _data10_->dialog;
#line 596 "../src/user-list.vala"
	gtk_dialog_run ((GtkDialog*) _tmp16_);
#line 562 "../src/user-list.vala"
	block10_data_unref (_data10_);
#line 562 "../src/user-list.vala"
	_data10_ = NULL;
#line 4307 "user-list.c"
}

static gboolean
user_list_change_background_timeout_cb (UserList* self)
{
	gchar* new_background_file = NULL;
	gboolean _tmp0_ = FALSE;
	MenuBar* _tmp1_;
	MenuBar* _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_;
	Background* _tmp11_;
	Background* _tmp12_;
	const gchar* _tmp13_;
	gboolean result;
#line 599 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 601 "../src/user-list.vala"
	new_background_file = NULL;
#line 602 "../src/user-list.vala"
	_tmp1_ = greeter_list_get_menubar ((GreeterList*) self);
#line 602 "../src/user-list.vala"
	_tmp2_ = _tmp1_;
#line 602 "../src/user-list.vala"
	_tmp3_ = menu_bar_get_high_contrast (_tmp2_);
#line 602 "../src/user-list.vala"
	_tmp4_ = _tmp3_;
#line 602 "../src/user-list.vala"
	if (_tmp4_) {
#line 602 "../src/user-list.vala"
		_tmp0_ = TRUE;
#line 4339 "user-list.c"
	} else {
#line 602 "../src/user-list.vala"
		_tmp0_ = !ug_settings_get_boolean (UG_SETTINGS_KEY_DRAW_USER_BACKGROUNDS);
#line 4343 "user-list.c"
	}
#line 602 "../src/user-list.vala"
	if (_tmp0_) {
#line 603 "../src/user-list.vala"
		_g_free0 (new_background_file);
#line 603 "../src/user-list.vala"
		new_background_file = NULL;
#line 4351 "user-list.c"
	} else {
		PromptBox* _tmp5_;
		PromptBox* _tmp6_;
#line 604 "../src/user-list.vala"
		_tmp5_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 604 "../src/user-list.vala"
		_tmp6_ = _tmp5_;
#line 604 "../src/user-list.vala"
		if (IS_USER_PROMPT_BOX (_tmp6_)) {
#line 4361 "user-list.c"
			PromptBox* _tmp7_;
			PromptBox* _tmp8_;
			const gchar* _tmp9_;
			gchar* _tmp10_;
#line 605 "../src/user-list.vala"
			_tmp7_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 605 "../src/user-list.vala"
			_tmp8_ = _tmp7_;
#line 605 "../src/user-list.vala"
			_tmp9_ = (IS_USER_PROMPT_BOX (_tmp8_) ? ((UserPromptBox*) _tmp8_) : NULL)->background;
#line 605 "../src/user-list.vala"
			_tmp10_ = g_strdup (_tmp9_);
#line 605 "../src/user-list.vala"
			_g_free0 (new_background_file);
#line 605 "../src/user-list.vala"
			new_background_file = _tmp10_;
#line 4378 "user-list.c"
		}
	}
#line 607 "../src/user-list.vala"
	_tmp11_ = greeter_list_get_background ((GreeterList*) self);
#line 607 "../src/user-list.vala"
	_tmp12_ = _tmp11_;
#line 607 "../src/user-list.vala"
	_tmp13_ = new_background_file;
#line 607 "../src/user-list.vala"
	background_set_current_background (_tmp12_, _tmp13_);
#line 609 "../src/user-list.vala"
	self->priv->change_background_timeout = (guint) 0;
#line 610 "../src/user-list.vala"
	result = FALSE;
#line 610 "../src/user-list.vala"
	_g_free0 (new_background_file);
#line 610 "../src/user-list.vala"
	return result;
#line 4397 "user-list.c"
}

static gboolean
_user_list_change_background_timeout_cb_gsource_func (gpointer self)
{
	gboolean result;
	result = user_list_change_background_timeout_cb ((UserList*) self);
#line 618 "../src/user-list.vala"
	return result;
#line 4407 "user-list.c"
}

static void
user_list_change_background (UserList* self)
{
	Background* _tmp0_;
	Background* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
#line 613 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 615 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_background ((GreeterList*) self);
#line 615 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 615 "../src/user-list.vala"
	_tmp2_ = background_get_current_background (_tmp1_);
#line 615 "../src/user-list.vala"
	_tmp3_ = _tmp2_;
#line 615 "../src/user-list.vala"
	if (_tmp3_ != NULL) {
#line 617 "../src/user-list.vala"
		if (self->priv->change_background_timeout == ((guint) 0)) {
#line 618 "../src/user-list.vala"
			self->priv->change_background_timeout = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, _user_list_change_background_timeout_cb_gsource_func, g_object_ref (self), g_object_unref);
#line 4433 "user-list.c"
		}
	} else {
#line 622 "../src/user-list.vala"
		user_list_change_background_timeout_cb (self);
#line 4438 "user-list.c"
	}
}

gint
user_list_user_list_compare_entry (PromptBox* a,
                                   PromptBox* b)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gboolean _tmp5_ = FALSE;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	gint result;
#line 626 "../src/user-list.vala"
	g_return_val_if_fail (a != NULL, -1);
#line 626 "../src/user-list.vala"
	g_return_val_if_fail (b != NULL, -1);
#line 628 "../src/user-list.vala"
	_tmp1_ = prompt_box_get_id (a);
#line 628 "../src/user-list.vala"
	_tmp2_ = _tmp1_;
#line 628 "../src/user-list.vala"
	if (g_str_has_prefix (_tmp2_, "*remote_directory")) {
#line 4463 "user-list.c"
		const gchar* _tmp3_;
		const gchar* _tmp4_;
#line 628 "../src/user-list.vala"
		_tmp3_ = prompt_box_get_id (b);
#line 628 "../src/user-list.vala"
		_tmp4_ = _tmp3_;
#line 628 "../src/user-list.vala"
		_tmp0_ = !g_str_has_prefix (_tmp4_, "*remote_directory");
#line 4472 "user-list.c"
	} else {
#line 628 "../src/user-list.vala"
		_tmp0_ = FALSE;
#line 4476 "user-list.c"
	}
#line 628 "../src/user-list.vala"
	if (_tmp0_) {
#line 629 "../src/user-list.vala"
		result = 1;
#line 629 "../src/user-list.vala"
		return result;
#line 4484 "user-list.c"
	}
#line 630 "../src/user-list.vala"
	_tmp6_ = prompt_box_get_id (a);
#line 630 "../src/user-list.vala"
	_tmp7_ = _tmp6_;
#line 630 "../src/user-list.vala"
	if (g_str_has_prefix (_tmp7_, "*remote_login")) {
#line 4492 "user-list.c"
		const gchar* _tmp8_;
		const gchar* _tmp9_;
#line 630 "../src/user-list.vala"
		_tmp8_ = prompt_box_get_id (b);
#line 630 "../src/user-list.vala"
		_tmp9_ = _tmp8_;
#line 630 "../src/user-list.vala"
		_tmp5_ = !g_str_has_prefix (_tmp9_, "*remote_login");
#line 4501 "user-list.c"
	} else {
#line 630 "../src/user-list.vala"
		_tmp5_ = FALSE;
#line 4505 "user-list.c"
	}
#line 630 "../src/user-list.vala"
	if (_tmp5_) {
#line 631 "../src/user-list.vala"
		result = 1;
#line 631 "../src/user-list.vala"
		return result;
#line 4513 "user-list.c"
	}
#line 634 "../src/user-list.vala"
	result = greeter_list_compare_entry (a, b);
#line 634 "../src/user-list.vala"
	return result;
#line 4519 "user-list.c"
}

static gint
_user_list_user_list_compare_entry_gcompare_func (gconstpointer a,
                                                  gconstpointer b)
{
	gint result;
	result = user_list_user_list_compare_entry ((PromptBox*) a, (PromptBox*) b);
#line 639 "../src/user-list.vala"
	return result;
#line 4530 "user-list.c"
}

static void
user_list_real_insert_entry (GreeterList* base,
                             PromptBox* entry)
{
	UserList * self;
	PromptBox* _tmp0_;
#line 637 "../src/user-list.vala"
	self = (UserList*) base;
#line 637 "../src/user-list.vala"
	g_return_if_fail (entry != NULL);
#line 639 "../src/user-list.vala"
	_tmp0_ = _g_object_ref0 (entry);
#line 639 "../src/user-list.vala"
	((GreeterList*) self)->entries = g_list_insert_sorted (((GreeterList*) self)->entries, _tmp0_, _user_list_user_list_compare_entry_gcompare_func);
#line 4547 "user-list.c"
}

static void
user_list_real_setup_prompt_box (GreeterList* base,
                                 gboolean fade)
{
	UserList * self;
	UserPromptBox* userbox = NULL;
	PromptBox* _tmp0_;
	PromptBox* _tmp1_;
	UserPromptBox* _tmp2_;
	UserPromptBox* _tmp3_;
#line 642 "../src/user-list.vala"
	self = (UserList*) base;
#line 644 "../src/user-list.vala"
	GREETER_LIST_CLASS (user_list_parent_class)->setup_prompt_box (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_GREETER_LIST, GreeterList), fade);
#line 645 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 645 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 645 "../src/user-list.vala"
	_tmp2_ = _g_object_ref0 (IS_USER_PROMPT_BOX (_tmp1_) ? ((UserPromptBox*) _tmp1_) : NULL);
#line 645 "../src/user-list.vala"
	userbox = _tmp2_;
#line 646 "../src/user-list.vala"
	_tmp3_ = userbox;
#line 646 "../src/user-list.vala"
	if (_tmp3_ != NULL) {
#line 4576 "user-list.c"
		PromptBox* _tmp4_;
		PromptBox* _tmp5_;
		UserPromptBox* _tmp6_;
#line 647 "../src/user-list.vala"
		_tmp4_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 647 "../src/user-list.vala"
		_tmp5_ = _tmp4_;
#line 647 "../src/user-list.vala"
		_tmp6_ = userbox;
#line 647 "../src/user-list.vala"
		prompt_box_set_is_active (_tmp5_, _tmp6_->is_active);
#line 4588 "user-list.c"
	}
#line 642 "../src/user-list.vala"
	_g_object_unref0 (userbox);
#line 4592 "user-list.c"
}

static void
user_list_entry_selected_cb (UserList* self,
                             const gchar* username)
{
	SlickGreeter* _tmp0_;
	PromptBox* _tmp1_;
	PromptBox* _tmp2_;
	PromptBox* _tmp6_;
	PromptBox* _tmp7_;
#line 650 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 652 "../src/user-list.vala"
	_tmp0_ = slick_greeter_singleton;
#line 652 "../src/user-list.vala"
	slick_greeter_set_state (_tmp0_, "last-user", username);
#line 653 "../src/user-list.vala"
	_tmp1_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 653 "../src/user-list.vala"
	_tmp2_ = _tmp1_;
#line 653 "../src/user-list.vala"
	if (IS_USER_PROMPT_BOX (_tmp2_)) {
#line 4616 "user-list.c"
		PromptBox* _tmp3_;
		PromptBox* _tmp4_;
		const gchar* _tmp5_;
#line 654 "../src/user-list.vala"
		_tmp3_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 654 "../src/user-list.vala"
		_tmp4_ = _tmp3_;
#line 654 "../src/user-list.vala"
		_tmp5_ = (IS_USER_PROMPT_BOX (_tmp4_) ? ((UserPromptBox*) _tmp4_) : NULL)->session;
#line 654 "../src/user-list.vala"
		user_list_set_session (self, _tmp5_);
#line 4628 "user-list.c"
	} else {
#line 656 "../src/user-list.vala"
		user_list_set_session (self, NULL);
#line 4632 "user-list.c"
	}
#line 657 "../src/user-list.vala"
	_tmp6_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 657 "../src/user-list.vala"
	_tmp7_ = _tmp6_;
#line 657 "../src/user-list.vala"
	prompt_box_clear (_tmp7_);
#line 660 "../src/user-list.vala"
	_email_autocompleter_unref0 (self->priv->remote_server_email_field_autocompleter);
#line 660 "../src/user-list.vala"
	self->priv->remote_server_email_field_autocompleter = NULL;
#line 662 "../src/user-list.vala"
	greeter_list_start_authentication ((GreeterList*) self);
#line 4646 "user-list.c"
}

static void
user_list_real_start_authentication (GreeterList* base)
{
	UserList * self;
	gchar* _tmp0_;
	PromptBox* _tmp1_;
	PromptBox* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
#line 665 "../src/user-list.vala"
	self = (UserList*) base;
#line 667 "../src/user-list.vala"
	gtk_widget_set_sensitive ((GtkWidget*) self, TRUE);
#line 668 "../src/user-list.vala"
	_tmp0_ = g_strdup ("");
#line 668 "../src/user-list.vala"
	_g_free0 (((GreeterList*) self)->greeter_authenticating_user);
#line 668 "../src/user-list.vala"
	((GreeterList*) self)->greeter_authenticating_user = _tmp0_;
#line 669 "../src/user-list.vala"
	_tmp1_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 669 "../src/user-list.vala"
	_tmp2_ = _tmp1_;
#line 669 "../src/user-list.vala"
	_tmp3_ = prompt_box_get_id (_tmp2_);
#line 669 "../src/user-list.vala"
	_tmp4_ = _tmp3_;
#line 669 "../src/user-list.vala"
	if (g_str_has_prefix (_tmp4_, "*remote_directory")) {
#line 4678 "user-list.c"
		GList* _tmp5_;
#line 671 "../src/user-list.vala"
		((GreeterList*) self)->auth_interaction_seen = TRUE;
#line 672 "../src/user-list.vala"
		_tmp5_ = self->priv->remote_directory_server_list;
#line 672 "../src/user-list.vala"
		user_list_create_remote_fields_for_current_item (self, _tmp5_, NULL, NULL);
#line 4686 "user-list.c"
	} else {
		PromptBox* _tmp6_;
		PromptBox* _tmp7_;
		const gchar* _tmp8_;
		const gchar* _tmp9_;
#line 674 "../src/user-list.vala"
		_tmp6_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 674 "../src/user-list.vala"
		_tmp7_ = _tmp6_;
#line 674 "../src/user-list.vala"
		_tmp8_ = prompt_box_get_id (_tmp7_);
#line 674 "../src/user-list.vala"
		_tmp9_ = _tmp8_;
#line 674 "../src/user-list.vala"
		if (g_str_has_prefix (_tmp9_, "*remote_login")) {
#line 4702 "user-list.c"
			GList* _tmp10_;
#line 676 "../src/user-list.vala"
			((GreeterList*) self)->auth_interaction_seen = TRUE;
#line 677 "../src/user-list.vala"
			_tmp10_ = self->priv->remote_login_server_list;
#line 677 "../src/user-list.vala"
			user_list_create_remote_fields_for_current_item (self, _tmp10_, NULL, NULL);
#line 4710 "user-list.c"
		} else {
#line 680 "../src/user-list.vala"
			GREETER_LIST_CLASS (user_list_parent_class)->start_authentication (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_GREETER_LIST, GreeterList));
#line 4714 "user-list.c"
		}
	}
}

static void
user_list_create_remote_fields_for_current_item_data_free (gpointer _data)
{
	UserListCreateRemoteFieldsForCurrentItemData* _data_;
	_data_ = _data;
#line 35 "../src/user-list.vala"
	_g_object_unref0 (_data_->self);
#line 35 "../src/user-list.vala"
	g_slice_free (UserListCreateRemoteFieldsForCurrentItemData, _data_);
#line 4728 "user-list.c"
}

static void
user_list_create_remote_fields_for_current_item (UserList* self,
                                                 GList* server_list,
                                                 GAsyncReadyCallback _callback_,
                                                 gpointer _user_data_)
{
	UserListCreateRemoteFieldsForCurrentItemData* _data_;
	UserList* _tmp0_;
#line 35 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 35 "../src/user-list.vala"
	_data_ = g_slice_new0 (UserListCreateRemoteFieldsForCurrentItemData);
#line 35 "../src/user-list.vala"
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
#line 35 "../src/user-list.vala"
	g_task_set_task_data (_data_->_async_result, _data_, user_list_create_remote_fields_for_current_item_data_free);
#line 35 "../src/user-list.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 35 "../src/user-list.vala"
	_data_->self = _tmp0_;
#line 35 "../src/user-list.vala"
	_data_->server_list = server_list;
#line 35 "../src/user-list.vala"
	user_list_create_remote_fields_for_current_item_co (_data_);
#line 4755 "user-list.c"
}

static void
user_list_create_remote_fields_for_current_item_finish (UserList* self,
                                                        GAsyncResult* _res_)
{
	UserListCreateRemoteFieldsForCurrentItemData* _data_;
#line 35 "../src/user-list.vala"
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
#line 4765 "user-list.c"
}

static void
_g_object_unref0_ (gpointer var)
{
#line 685 "../src/user-list.vala"
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
#line 4773 "user-list.c"
}

static gpointer
_remote_server_field_dup0 (gpointer self)
{
#line 704 "../src/user-list.vala"
	return self ? remote_server_field_dup (self) : NULL;
#line 4781 "user-list.c"
}

static gint
_remote_server_field_sort_function_gcompare_func (gconstpointer a,
                                                  gconstpointer b)
{
	gint result;
	result = remote_server_field_sort_function ((RemoteServerField*) a, (RemoteServerField*) b);
#line 705 "../src/user-list.vala"
	return result;
#line 4792 "user-list.c"
}

static gint
vala_g_ptr_array_get_length (GPtrArray* self)
{
	gint result;
#line 5954 "glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, -1);
#line 5955 "glib-2.0.vapi"
	result = (gint) self->len;
#line 5955 "glib-2.0.vapi"
	return result;
#line 4805 "user-list.c"
}

static Block11Data*
block11_data_ref (Block11Data* _data11_)
{
#line 5926 "glib-2.0.vapi"
	g_atomic_int_inc (&_data11_->_ref_count_);
#line 5926 "glib-2.0.vapi"
	return _data11_;
#line 4815 "user-list.c"
}

static void
block11_data_unref (void * _userdata_)
{
	Block11Data* _data11_;
	_data11_ = (Block11Data*) _userdata_;
#line 5926 "glib-2.0.vapi"
	if (g_atomic_int_dec_and_test (&_data11_->_ref_count_)) {
#line 4825 "user-list.c"
		GPtrArray* self;
#line 5926 "glib-2.0.vapi"
		self = _data11_->self;
#line 5926 "glib-2.0.vapi"
		_g_ptr_array_unref0 (self);
#line 5926 "glib-2.0.vapi"
		g_slice_free (Block11Data, _data11_);
#line 4833 "user-list.c"
	}
}

static gint
__lambda0_ (Block11Data* _data11_,
            gconstpointer** a,
            gconstpointer** b)
{
	GPtrArray* self;
	gint result;
#line 5927 "glib-2.0.vapi"
	self = _data11_->self;
#line 5928 "glib-2.0.vapi"
	result = _data11_->compare_func ((gconstpointer**) (*a), (gconstpointer**) (*b));
#line 5928 "glib-2.0.vapi"
	return result;
#line 4850 "user-list.c"
}

static gint
___lambda0__gcompare_data_func (gconstpointer a,
                                gconstpointer b,
                                gpointer self)
{
	gint result;
	result = __lambda0_ (self, a, b);
#line 5927 "glib-2.0.vapi"
	return result;
#line 4862 "user-list.c"
}

static void
vala_g_ptr_array_sort (GPtrArray* self,
                       GCompareFunc compare_func)
{
	Block11Data* _data11_;
#line 5926 "glib-2.0.vapi"
	g_return_if_fail (self != NULL);
#line 5926 "glib-2.0.vapi"
	_data11_ = g_slice_new0 (Block11Data);
#line 5926 "glib-2.0.vapi"
	_data11_->_ref_count_ = 1;
#line 5926 "glib-2.0.vapi"
	_data11_->self = g_ptr_array_ref (self);
#line 5926 "glib-2.0.vapi"
	_data11_->compare_func = compare_func;
#line 5927 "glib-2.0.vapi"
	g_ptr_array_sort_with_data (self, ___lambda0__gcompare_data_func, _data11_);
#line 5926 "glib-2.0.vapi"
	block11_data_unref (_data11_);
#line 5926 "glib-2.0.vapi"
	_data11_ = NULL;
#line 4886 "user-list.c"
}

static void
user_list_create_remote_fields_for_current_item_ready (GObject* source_object,
                                                       GAsyncResult* _res_,
                                                       gpointer _user_data_)
{
	UserListCreateRemoteFieldsForCurrentItemData* _data_;
#line 792 "../src/user-list.vala"
	_data_ = _user_data_;
#line 792 "../src/user-list.vala"
	_data_->_source_object_ = source_object;
#line 792 "../src/user-list.vala"
	_data_->_res_ = _res_;
#line 792 "../src/user-list.vala"
	user_list_create_remote_fields_for_current_item_co (_data_);
#line 4903 "user-list.c"
}

static void
_remote_server_field_free0_ (gpointer var)
{
#line 787 "../src/user-list.vala"
	(var == NULL) ? NULL : (var = (remote_server_field_free (var), NULL));
#line 4911 "user-list.c"
}

static inline void
_g_list_free__remote_server_field_free0_ (GList* self)
{
#line 787 "../src/user-list.vala"
	g_list_free_full (self, (GDestroyNotify) _remote_server_field_free0_);
#line 4919 "user-list.c"
}

static gboolean
user_list_create_remote_fields_for_current_item_co (UserListCreateRemoteFieldsForCurrentItemData* _data_)
{
#line 683 "../src/user-list.vala"
	switch (_data_->_state_) {
#line 683 "../src/user-list.vala"
		case 0:
#line 4929 "user-list.c"
		goto _state_0;
#line 683 "../src/user-list.vala"
		case 1:
#line 4933 "user-list.c"
		goto _state_1;
		default:
#line 683 "../src/user-list.vala"
		g_assert_not_reached ();
#line 4938 "user-list.c"
	}
	_state_0:
#line 685 "../src/user-list.vala"
	_data_->_tmp0_ = g_str_hash;
#line 685 "../src/user-list.vala"
	_data_->_tmp1_ = g_str_equal;
#line 685 "../src/user-list.vala"
	_data_->_tmp2_ = g_hash_table_new_full (_data_->_tmp0_, _data_->_tmp1_, _g_free0_, _g_object_unref0_);
#line 685 "../src/user-list.vala"
	_g_hash_table_unref0 (_data_->self->priv->current_remote_fields);
#line 685 "../src/user-list.vala"
	_data_->self->priv->current_remote_fields = _data_->_tmp2_;
#line 686 "../src/user-list.vala"
	_data_->_tmp3_ = greeter_list_get_selected_entry ((GreeterList*) _data_->self);
#line 686 "../src/user-list.vala"
	_data_->_tmp4_ = _data_->_tmp3_;
#line 686 "../src/user-list.vala"
	_data_->_tmp5_ = prompt_box_get_id (_data_->_tmp4_);
#line 686 "../src/user-list.vala"
	_data_->_tmp6_ = _data_->_tmp5_;
#line 686 "../src/user-list.vala"
	_data_->_tmp7_ = user_list_url_from_remote_loding_server_list_name (_data_->self, _data_->_tmp6_);
#line 686 "../src/user-list.vala"
	_data_->url = _data_->_tmp7_;
#line 687 "../src/user-list.vala"
	_data_->_tmp8_ = greeter_list_get_selected_entry ((GreeterList*) _data_->self);
#line 687 "../src/user-list.vala"
	_data_->_tmp9_ = _data_->_tmp8_;
#line 687 "../src/user-list.vala"
	_data_->_tmp10_ = prompt_box_get_id (_data_->_tmp9_);
#line 687 "../src/user-list.vala"
	_data_->_tmp11_ = _data_->_tmp10_;
#line 687 "../src/user-list.vala"
	_data_->_tmp12_ = user_list_username_from_remote_loding_server_list_name (_data_->self, _data_->_tmp11_);
#line 687 "../src/user-list.vala"
	_data_->username = _data_->_tmp12_;
#line 4975 "user-list.c"
	{
#line 689 "../src/user-list.vala"
		_data_->remote_server_collection = _data_->server_list;
#line 689 "../src/user-list.vala"
		for (_data_->remote_server_it = _data_->remote_server_collection; _data_->remote_server_it != NULL; _data_->remote_server_it = _data_->remote_server_it->next) {
#line 689 "../src/user-list.vala"
			_data_->_tmp13_ = _remote_server_dup0 ((RemoteServer*) _data_->remote_server_it->data);
#line 689 "../src/user-list.vala"
			_data_->remote_server = _data_->_tmp13_;
#line 4985 "user-list.c"
			{
#line 691 "../src/user-list.vala"
				_data_->_tmp14_ = _data_->remote_server;
#line 691 "../src/user-list.vala"
				_data_->_tmp15_ = *_data_->_tmp14_;
#line 691 "../src/user-list.vala"
				_data_->_tmp16_ = user_list_username_from_remote_server_fields (_data_->self, &_data_->_tmp15_);
#line 691 "../src/user-list.vala"
				_data_->remote_username = _data_->_tmp16_;
#line 692 "../src/user-list.vala"
				_data_->_tmp18_ = _data_->remote_server;
#line 692 "../src/user-list.vala"
				_data_->_tmp19_ = (*_data_->_tmp18_).url;
#line 692 "../src/user-list.vala"
				_data_->_tmp20_ = _data_->url;
#line 692 "../src/user-list.vala"
				if (g_strcmp0 (_data_->_tmp19_, _data_->_tmp20_) == 0) {
#line 692 "../src/user-list.vala"
					_data_->_tmp22_ = _data_->username;
#line 692 "../src/user-list.vala"
					if (_data_->_tmp22_ == NULL) {
#line 692 "../src/user-list.vala"
						_data_->_tmp21_ = TRUE;
#line 5009 "user-list.c"
					} else {
#line 692 "../src/user-list.vala"
						_data_->_tmp23_ = _data_->username;
#line 692 "../src/user-list.vala"
						_data_->_tmp24_ = _data_->remote_username;
#line 692 "../src/user-list.vala"
						_data_->_tmp21_ = g_strcmp0 (_data_->_tmp23_, _data_->_tmp24_) == 0;
#line 5017 "user-list.c"
					}
#line 692 "../src/user-list.vala"
					_data_->_tmp17_ = _data_->_tmp21_;
#line 5021 "user-list.c"
				} else {
#line 692 "../src/user-list.vala"
					_data_->_tmp17_ = FALSE;
#line 5025 "user-list.c"
				}
#line 692 "../src/user-list.vala"
				if (_data_->_tmp17_) {
#line 694 "../src/user-list.vala"
					_data_->_tmp25_ = greeter_list_get_selected_entry ((GreeterList*) _data_->self);
#line 694 "../src/user-list.vala"
					_data_->_tmp26_ = _data_->_tmp25_;
#line 694 "../src/user-list.vala"
					_data_->_tmp27_ = prompt_box_get_id (_data_->_tmp26_);
#line 694 "../src/user-list.vala"
					_data_->_tmp28_ = _data_->_tmp27_;
#line 694 "../src/user-list.vala"
					if (g_str_has_prefix (_data_->_tmp28_, "*remote_login")) {
#line 696 "../src/user-list.vala"
						_data_->_tmp29_ = _data_->remote_server;
#line 696 "../src/user-list.vala"
						_data_->_tmp30_ = (*_data_->_tmp29_).type;
#line 696 "../src/user-list.vala"
						if (!user_list_is_supported_remote_session (_data_->self, _data_->_tmp30_)) {
#line 698 "../src/user-list.vala"
							greeter_list_show_message ((GreeterList*) _data_->self, _ ("Server type not supported."), TRUE);
#line 5047 "user-list.c"
						}
					}
#line 702 "../src/user-list.vala"
					_data_->fields = NULL;
#line 703 "../src/user-list.vala"
					_data_->_tmp31_ = _data_->remote_server;
#line 703 "../src/user-list.vala"
					_data_->_tmp32_ = (*_data_->_tmp31_).fields;
#line 703 "../src/user-list.vala"
					_data_->_tmp32__length1 = (*_data_->_tmp31_).fields_length1;
#line 5058 "user-list.c"
					{
#line 703 "../src/user-list.vala"
						_data_->field_collection_length1 = 0;
#line 703 "../src/user-list.vala"
						_data_->_field_collection_size_ = 0;
#line 703 "../src/user-list.vala"
						_data_->field_collection = _data_->_tmp32_;
#line 703 "../src/user-list.vala"
						_data_->field_collection_length1 = _data_->_tmp32__length1;
#line 703 "../src/user-list.vala"
						for (_data_->field_it = 0; _data_->field_it < _data_->field_collection_length1; _data_->field_it = _data_->field_it + 1) {
#line 703 "../src/user-list.vala"
							_data_->_tmp33_ = _data_->field_collection[_data_->field_it];
#line 703 "../src/user-list.vala"
							memset (&_data_->_tmp34_, 0, sizeof (RemoteServerField));
#line 703 "../src/user-list.vala"
							remote_server_field_copy (&_data_->_tmp33_, &_data_->_tmp34_);
#line 703 "../src/user-list.vala"
							_data_->field = _data_->_tmp34_;
#line 5078 "user-list.c"
							{
#line 704 "../src/user-list.vala"
								_data_->_tmp35_ = _data_->field;
#line 704 "../src/user-list.vala"
								_data_->_tmp36_ = _data_->_tmp35_;
#line 704 "../src/user-list.vala"
								_data_->_tmp37_ = _remote_server_field_dup0 (&_data_->_tmp36_);
#line 704 "../src/user-list.vala"
								_data_->fields = g_list_append (_data_->fields, _data_->_tmp37_);
#line 703 "../src/user-list.vala"
								remote_server_field_destroy (&_data_->field);
#line 5090 "user-list.c"
							}
						}
					}
#line 705 "../src/user-list.vala"
					_data_->fields = g_list_sort (_data_->fields, _remote_server_field_sort_function_gcompare_func);
#line 706 "../src/user-list.vala"
					_data_->_tmp38_ = _data_->fields;
#line 5098 "user-list.c"
					{
#line 706 "../src/user-list.vala"
						_data_->_vala1_field_collection = _data_->_tmp38_;
#line 706 "../src/user-list.vala"
						for (_data_->_vala1_field_it = _data_->_vala1_field_collection; _data_->_vala1_field_it != NULL; _data_->_vala1_field_it = _data_->_vala1_field_it->next) {
#line 706 "../src/user-list.vala"
							_data_->_tmp39_ = _remote_server_field_dup0 ((RemoteServerField*) _data_->_vala1_field_it->data);
#line 706 "../src/user-list.vala"
							_data_->_vala1_field = _data_->_tmp39_;
#line 5108 "user-list.c"
							{
#line 708 "../src/user-list.vala"
								_data_->widget = NULL;
#line 709 "../src/user-list.vala"
								_data_->_tmp40_ = g_strdup ("");
#line 709 "../src/user-list.vala"
								_data_->default_value = _data_->_tmp40_;
#line 710 "../src/user-list.vala"
								_data_->_tmp42_ = _data_->_vala1_field;
#line 710 "../src/user-list.vala"
								_data_->_tmp43_ = (*_data_->_tmp42_).default_value;
#line 710 "../src/user-list.vala"
								if (_data_->_tmp43_ != NULL) {
#line 710 "../src/user-list.vala"
									_data_->_tmp44_ = _data_->_vala1_field;
#line 710 "../src/user-list.vala"
									_data_->_tmp45_ = (*_data_->_tmp44_).default_value;
#line 710 "../src/user-list.vala"
									_data_->_tmp46_ = G_VARIANT_TYPE_STRING;
#line 710 "../src/user-list.vala"
									_data_->_tmp41_ = g_variant_is_of_type (_data_->_tmp45_, _data_->_tmp46_);
#line 5130 "user-list.c"
								} else {
#line 710 "../src/user-list.vala"
									_data_->_tmp41_ = FALSE;
#line 5134 "user-list.c"
								}
#line 710 "../src/user-list.vala"
								if (_data_->_tmp41_) {
#line 711 "../src/user-list.vala"
									_data_->_tmp47_ = _data_->_vala1_field;
#line 711 "../src/user-list.vala"
									_data_->_tmp48_ = (*_data_->_tmp47_).default_value;
#line 711 "../src/user-list.vala"
									_data_->_tmp49_ = g_variant_get_string (_data_->_tmp48_, NULL);
#line 711 "../src/user-list.vala"
									_data_->_tmp50_ = g_strdup (_data_->_tmp49_);
#line 711 "../src/user-list.vala"
									_g_free0 (_data_->default_value);
#line 711 "../src/user-list.vala"
									_data_->default_value = _data_->_tmp50_;
#line 5150 "user-list.c"
								}
#line 712 "../src/user-list.vala"
								_data_->_tmp51_ = _data_->_vala1_field;
#line 712 "../src/user-list.vala"
								_data_->_tmp52_ = (*_data_->_tmp51_).type;
#line 712 "../src/user-list.vala"
								if (g_strcmp0 (_data_->_tmp52_, "username") == 0) {
#line 714 "../src/user-list.vala"
									_data_->_tmp53_ = greeter_list_add_prompt ((GreeterList*) _data_->self, _ ("Username:"), FALSE);
#line 714 "../src/user-list.vala"
									_data_->entry = _data_->_tmp53_;
#line 715 "../src/user-list.vala"
									_data_->_tmp54_ = _data_->entry;
#line 715 "../src/user-list.vala"
									_data_->_tmp55_ = _data_->default_value;
#line 715 "../src/user-list.vala"
									gtk_entry_set_text ((GtkEntry*) _data_->_tmp54_, _data_->_tmp55_);
#line 716 "../src/user-list.vala"
									_data_->_tmp56_ = _data_->entry;
#line 716 "../src/user-list.vala"
									_data_->_tmp57_ = _g_object_ref0 ((GtkWidget*) _data_->_tmp56_);
#line 716 "../src/user-list.vala"
									_g_object_unref0 (_data_->widget);
#line 716 "../src/user-list.vala"
									_data_->widget = _data_->_tmp57_;
#line 712 "../src/user-list.vala"
									_g_object_unref0 (_data_->entry);
#line 5178 "user-list.c"
								} else {
#line 718 "../src/user-list.vala"
									_data_->_tmp58_ = _data_->_vala1_field;
#line 718 "../src/user-list.vala"
									_data_->_tmp59_ = (*_data_->_tmp58_).type;
#line 718 "../src/user-list.vala"
									if (g_strcmp0 (_data_->_tmp59_, "password") == 0) {
#line 720 "../src/user-list.vala"
										_data_->_tmp60_ = greeter_list_add_prompt ((GreeterList*) _data_->self, _ ("Password:"), TRUE);
#line 720 "../src/user-list.vala"
										_data_->_vala1_entry = _data_->_tmp60_;
#line 721 "../src/user-list.vala"
										_data_->_tmp61_ = _data_->_vala1_entry;
#line 721 "../src/user-list.vala"
										_data_->_tmp62_ = _data_->default_value;
#line 721 "../src/user-list.vala"
										gtk_entry_set_text ((GtkEntry*) _data_->_tmp61_, _data_->_tmp62_);
#line 722 "../src/user-list.vala"
										_data_->_tmp63_ = _data_->_vala1_entry;
#line 722 "../src/user-list.vala"
										_data_->_tmp64_ = _g_object_ref0 ((GtkWidget*) _data_->_tmp63_);
#line 722 "../src/user-list.vala"
										_g_object_unref0 (_data_->widget);
#line 722 "../src/user-list.vala"
										_data_->widget = _data_->_tmp64_;
#line 718 "../src/user-list.vala"
										_g_object_unref0 (_data_->_vala1_entry);
#line 5206 "user-list.c"
									} else {
#line 724 "../src/user-list.vala"
										_data_->_tmp65_ = _data_->_vala1_field;
#line 724 "../src/user-list.vala"
										_data_->_tmp66_ = (*_data_->_tmp65_).type;
#line 724 "../src/user-list.vala"
										if (g_strcmp0 (_data_->_tmp66_, "domain") == 0) {
#line 726 "../src/user-list.vala"
											_data_->_tmp67_ = g_new0 (gchar*, 0 + 1);
#line 726 "../src/user-list.vala"
											_data_->domainsArray = _data_->_tmp67_;
#line 726 "../src/user-list.vala"
											_data_->domainsArray_length1 = 0;
#line 726 "../src/user-list.vala"
											_data_->_domainsArray_size_ = _data_->domainsArray_length1;
#line 727 "../src/user-list.vala"
											_data_->_tmp70_ = _data_->_vala1_field;
#line 727 "../src/user-list.vala"
											_data_->_tmp71_ = (*_data_->_tmp70_).properties;
#line 727 "../src/user-list.vala"
											if (_data_->_tmp71_ != NULL) {
#line 727 "../src/user-list.vala"
												_data_->_tmp72_ = _data_->_vala1_field;
#line 727 "../src/user-list.vala"
												_data_->_tmp73_ = (*_data_->_tmp72_).properties;
#line 727 "../src/user-list.vala"
												_data_->_tmp69_ = g_hash_table_contains (_data_->_tmp73_, "domains");
#line 5234 "user-list.c"
											} else {
#line 727 "../src/user-list.vala"
												_data_->_tmp69_ = FALSE;
#line 5238 "user-list.c"
											}
#line 727 "../src/user-list.vala"
											if (_data_->_tmp69_) {
#line 727 "../src/user-list.vala"
												_data_->_tmp74_ = _data_->_vala1_field;
#line 727 "../src/user-list.vala"
												_data_->_tmp75_ = (*_data_->_tmp74_).properties;
#line 727 "../src/user-list.vala"
												_data_->_tmp76_ = g_hash_table_lookup (_data_->_tmp75_, "domains");
#line 727 "../src/user-list.vala"
												_data_->_tmp77_ = G_VARIANT_TYPE_ARRAY;
#line 727 "../src/user-list.vala"
												_data_->_tmp68_ = g_variant_is_of_type ((GVariant*) _data_->_tmp76_, _data_->_tmp77_);
#line 5252 "user-list.c"
											} else {
#line 727 "../src/user-list.vala"
												_data_->_tmp68_ = FALSE;
#line 5256 "user-list.c"
											}
#line 727 "../src/user-list.vala"
											if (_data_->_tmp68_) {
#line 728 "../src/user-list.vala"
												_data_->_tmp78_ = _data_->_vala1_field;
#line 728 "../src/user-list.vala"
												_data_->_tmp79_ = (*_data_->_tmp78_).properties;
#line 728 "../src/user-list.vala"
												_data_->_tmp80_ = g_hash_table_lookup (_data_->_tmp79_, "domains");
#line 728 "../src/user-list.vala"
												_data_->_tmp81_ = 0;
#line 728 "../src/user-list.vala"
												_data_->_tmp82_ = g_variant_dup_strv ((GVariant*) _data_->_tmp80_, &_data_->_tmp81_);
#line 728 "../src/user-list.vala"
												_data_->domainsArray = (_vala_array_free (_data_->domainsArray, _data_->domainsArray_length1, (GDestroyNotify) g_free), NULL);
#line 728 "../src/user-list.vala"
												_data_->domainsArray = _data_->_tmp82_;
#line 728 "../src/user-list.vala"
												_data_->domainsArray_length1 = _data_->_tmp81_;
#line 728 "../src/user-list.vala"
												_data_->_domainsArray_size_ = _data_->domainsArray_length1;
#line 5278 "user-list.c"
											}
#line 729 "../src/user-list.vala"
											_data_->_tmp83_ = g_ptr_array_new_full ((guint) 0, _g_free0_);
#line 729 "../src/user-list.vala"
											_data_->domains = _data_->_tmp83_;
#line 5284 "user-list.c"
											{
#line 730 "../src/user-list.vala"
												_data_->i = 0;
#line 5288 "user-list.c"
												{
#line 730 "../src/user-list.vala"
													_data_->_tmp84_ = TRUE;
#line 730 "../src/user-list.vala"
													while (TRUE) {
#line 730 "../src/user-list.vala"
														if (!_data_->_tmp84_) {
#line 730 "../src/user-list.vala"
															_data_->_tmp85_ = _data_->i;
#line 730 "../src/user-list.vala"
															_data_->i = _data_->_tmp85_ + 1;
#line 5300 "user-list.c"
														}
#line 730 "../src/user-list.vala"
														_data_->_tmp84_ = FALSE;
#line 730 "../src/user-list.vala"
														_data_->_tmp86_ = _data_->domainsArray;
#line 730 "../src/user-list.vala"
														_data_->_tmp86__length1 = _data_->domainsArray_length1;
#line 730 "../src/user-list.vala"
														if (!(_data_->i < _data_->_tmp86__length1)) {
#line 730 "../src/user-list.vala"
															break;
#line 5312 "user-list.c"
														}
#line 731 "../src/user-list.vala"
														_data_->_tmp87_ = _data_->domains;
#line 731 "../src/user-list.vala"
														_data_->_tmp88_ = _data_->domainsArray;
#line 731 "../src/user-list.vala"
														_data_->_tmp88__length1 = _data_->domainsArray_length1;
#line 731 "../src/user-list.vala"
														_data_->_tmp89_ = _data_->_tmp88_[_data_->i];
#line 731 "../src/user-list.vala"
														_data_->_tmp90_ = g_strdup (_data_->_tmp89_);
#line 731 "../src/user-list.vala"
														g_ptr_array_add (_data_->_tmp87_, _data_->_tmp90_);
#line 5326 "user-list.c"
													}
												}
											}
#line 733 "../src/user-list.vala"
											_data_->_tmp94_ = _data_->_vala1_field;
#line 733 "../src/user-list.vala"
											_data_->_tmp95_ = (*_data_->_tmp94_).properties;
#line 733 "../src/user-list.vala"
											if (_data_->_tmp95_ != NULL) {
#line 734 "../src/user-list.vala"
												_data_->_tmp96_ = _data_->_vala1_field;
#line 734 "../src/user-list.vala"
												_data_->_tmp97_ = (*_data_->_tmp96_).properties;
#line 734 "../src/user-list.vala"
												_data_->_tmp93_ = g_hash_table_contains (_data_->_tmp97_, "read-only");
#line 5342 "user-list.c"
											} else {
#line 733 "../src/user-list.vala"
												_data_->_tmp93_ = FALSE;
#line 5346 "user-list.c"
											}
#line 733 "../src/user-list.vala"
											if (_data_->_tmp93_) {
#line 735 "../src/user-list.vala"
												_data_->_tmp98_ = _data_->_vala1_field;
#line 735 "../src/user-list.vala"
												_data_->_tmp99_ = (*_data_->_tmp98_).properties;
#line 735 "../src/user-list.vala"
												_data_->_tmp100_ = g_hash_table_lookup (_data_->_tmp99_, "read-only");
#line 735 "../src/user-list.vala"
												_data_->_tmp101_ = G_VARIANT_TYPE_BOOLEAN;
#line 735 "../src/user-list.vala"
												_data_->_tmp92_ = g_variant_is_of_type ((GVariant*) _data_->_tmp100_, _data_->_tmp101_);
#line 5360 "user-list.c"
											} else {
#line 733 "../src/user-list.vala"
												_data_->_tmp92_ = FALSE;
#line 5364 "user-list.c"
											}
#line 733 "../src/user-list.vala"
											if (_data_->_tmp92_) {
#line 736 "../src/user-list.vala"
												_data_->_tmp102_ = _data_->_vala1_field;
#line 736 "../src/user-list.vala"
												_data_->_tmp103_ = (*_data_->_tmp102_).properties;
#line 736 "../src/user-list.vala"
												_data_->_tmp104_ = g_hash_table_lookup (_data_->_tmp103_, "read-only");
#line 736 "../src/user-list.vala"
												_data_->_tmp91_ = g_variant_get_boolean ((GVariant*) _data_->_tmp104_);
#line 5376 "user-list.c"
											} else {
#line 733 "../src/user-list.vala"
												_data_->_tmp91_ = FALSE;
#line 5380 "user-list.c"
											}
#line 733 "../src/user-list.vala"
											_data_->read_only = _data_->_tmp91_;
#line 737 "../src/user-list.vala"
											_data_->_tmp106_ = _data_->domains;
#line 737 "../src/user-list.vala"
											_data_->_tmp107_ = vala_g_ptr_array_get_length (_data_->_tmp106_);
#line 737 "../src/user-list.vala"
											_data_->_tmp108_ = _data_->_tmp107_;
#line 737 "../src/user-list.vala"
											if (_data_->_tmp108_ == 0) {
#line 737 "../src/user-list.vala"
												_data_->_tmp105_ = TRUE;
#line 5394 "user-list.c"
											} else {
#line 737 "../src/user-list.vala"
												_data_->_tmp110_ = _data_->domains;
#line 737 "../src/user-list.vala"
												_data_->_tmp111_ = vala_g_ptr_array_get_length (_data_->_tmp110_);
#line 737 "../src/user-list.vala"
												_data_->_tmp112_ = _data_->_tmp111_;
#line 737 "../src/user-list.vala"
												if (_data_->_tmp112_ == 1) {
#line 737 "../src/user-list.vala"
													_data_->_tmp114_ = _data_->domains;
#line 737 "../src/user-list.vala"
													_data_->_tmp115_ = g_ptr_array_index (_data_->_tmp114_, (guint) 0);
#line 737 "../src/user-list.vala"
													_data_->_tmp116_ = _data_->default_value;
#line 737 "../src/user-list.vala"
													if (g_strcmp0 ((const gchar*) _data_->_tmp115_, _data_->_tmp116_) == 0) {
#line 737 "../src/user-list.vala"
														_data_->_tmp113_ = TRUE;
#line 5414 "user-list.c"
													} else {
#line 737 "../src/user-list.vala"
														_data_->_tmp117_ = _data_->default_value;
#line 737 "../src/user-list.vala"
														_data_->_tmp118_ = strlen (_data_->_tmp117_);
#line 737 "../src/user-list.vala"
														_data_->_tmp119_ = _data_->_tmp118_;
#line 737 "../src/user-list.vala"
														_data_->_tmp113_ = _data_->_tmp119_ == 0;
#line 5424 "user-list.c"
													}
#line 737 "../src/user-list.vala"
													_data_->_tmp109_ = _data_->_tmp113_;
#line 5428 "user-list.c"
												} else {
#line 737 "../src/user-list.vala"
													_data_->_tmp109_ = FALSE;
#line 5432 "user-list.c"
												}
#line 737 "../src/user-list.vala"
												_data_->_tmp105_ = _data_->_tmp109_;
#line 5436 "user-list.c"
											}
#line 737 "../src/user-list.vala"
											if (_data_->_tmp105_) {
#line 739 "../src/user-list.vala"
												_data_->_tmp120_ = greeter_list_add_prompt ((GreeterList*) _data_->self, _ ("Domain:"), FALSE);
#line 739 "../src/user-list.vala"
												_data_->prompt = _data_->_tmp120_;
#line 740 "../src/user-list.vala"
												_data_->_tmp122_ = _data_->domains;
#line 740 "../src/user-list.vala"
												_data_->_tmp123_ = vala_g_ptr_array_get_length (_data_->_tmp122_);
#line 740 "../src/user-list.vala"
												_data_->_tmp124_ = _data_->_tmp123_;
#line 740 "../src/user-list.vala"
												if (_data_->_tmp124_ == 1) {
#line 740 "../src/user-list.vala"
													_data_->_tmp125_ = _data_->domains;
#line 740 "../src/user-list.vala"
													_data_->_tmp126_ = g_ptr_array_index (_data_->_tmp125_, (guint) 0);
#line 740 "../src/user-list.vala"
													_data_->_tmp121_ = (const gchar*) _data_->_tmp126_;
#line 5458 "user-list.c"
												} else {
#line 740 "../src/user-list.vala"
													_data_->_tmp127_ = _data_->default_value;
#line 740 "../src/user-list.vala"
													_data_->_tmp121_ = _data_->_tmp127_;
#line 5464 "user-list.c"
												}
#line 740 "../src/user-list.vala"
												_data_->_tmp128_ = _data_->prompt;
#line 740 "../src/user-list.vala"
												gtk_entry_set_text ((GtkEntry*) _data_->_tmp128_, _data_->_tmp121_);
#line 741 "../src/user-list.vala"
												_data_->_tmp129_ = _data_->prompt;
#line 741 "../src/user-list.vala"
												gtk_widget_set_sensitive ((GtkWidget*) _data_->_tmp129_, !_data_->read_only);
#line 742 "../src/user-list.vala"
												_data_->_tmp130_ = _data_->prompt;
#line 742 "../src/user-list.vala"
												_data_->_tmp131_ = _g_object_ref0 ((GtkWidget*) _data_->_tmp130_);
#line 742 "../src/user-list.vala"
												_g_object_unref0 (_data_->widget);
#line 742 "../src/user-list.vala"
												_data_->widget = _data_->_tmp131_;
#line 737 "../src/user-list.vala"
												_g_object_unref0 (_data_->prompt);
#line 5484 "user-list.c"
											} else {
#line 746 "../src/user-list.vala"
												_data_->_tmp132_ = _data_->default_value;
#line 746 "../src/user-list.vala"
												_data_->_tmp133_ = strlen (_data_->_tmp132_);
#line 746 "../src/user-list.vala"
												_data_->_tmp134_ = _data_->_tmp133_;
#line 746 "../src/user-list.vala"
												if (_data_->_tmp134_ > 0) {
#line 749 "../src/user-list.vala"
													_data_->found = FALSE;
#line 5496 "user-list.c"
													{
#line 750 "../src/user-list.vala"
														_data_->_vala1_i = 0;
#line 5500 "user-list.c"
														{
#line 750 "../src/user-list.vala"
															_data_->_tmp135_ = TRUE;
#line 750 "../src/user-list.vala"
															while (TRUE) {
#line 750 "../src/user-list.vala"
																if (!_data_->_tmp135_) {
#line 750 "../src/user-list.vala"
																	_data_->_tmp136_ = _data_->_vala1_i;
#line 750 "../src/user-list.vala"
																	_data_->_vala1_i = _data_->_tmp136_ + 1;
#line 5512 "user-list.c"
																}
#line 750 "../src/user-list.vala"
																_data_->_tmp135_ = FALSE;
#line 750 "../src/user-list.vala"
																if (!_data_->found) {
#line 750 "../src/user-list.vala"
																	_data_->_tmp138_ = _data_->domains;
#line 750 "../src/user-list.vala"
																	_data_->_tmp139_ = vala_g_ptr_array_get_length (_data_->_tmp138_);
#line 750 "../src/user-list.vala"
																	_data_->_tmp140_ = _data_->_tmp139_;
#line 750 "../src/user-list.vala"
																	_data_->_tmp137_ = _data_->_vala1_i < _data_->_tmp140_;
#line 5526 "user-list.c"
																} else {
#line 750 "../src/user-list.vala"
																	_data_->_tmp137_ = FALSE;
#line 5530 "user-list.c"
																}
#line 750 "../src/user-list.vala"
																if (!_data_->_tmp137_) {
#line 750 "../src/user-list.vala"
																	break;
#line 5536 "user-list.c"
																}
#line 751 "../src/user-list.vala"
																_data_->_tmp141_ = _data_->default_value;
#line 751 "../src/user-list.vala"
																_data_->_tmp142_ = _data_->domains;
#line 751 "../src/user-list.vala"
																_data_->_tmp143_ = g_ptr_array_index (_data_->_tmp142_, (guint) _data_->_vala1_i);
#line 751 "../src/user-list.vala"
																_data_->found = g_strcmp0 (_data_->_tmp141_, (const gchar*) _data_->_tmp143_) == 0;
#line 5546 "user-list.c"
															}
														}
													}
#line 753 "../src/user-list.vala"
													if (!_data_->found) {
#line 754 "../src/user-list.vala"
														_data_->_tmp144_ = _data_->domains;
#line 754 "../src/user-list.vala"
														_data_->_tmp145_ = _data_->default_value;
#line 754 "../src/user-list.vala"
														_data_->_tmp146_ = g_strdup (_data_->_tmp145_);
#line 754 "../src/user-list.vala"
														g_ptr_array_add (_data_->_tmp144_, _data_->_tmp146_);
#line 5560 "user-list.c"
													}
												}
#line 758 "../src/user-list.vala"
												_data_->_tmp147_ = _data_->domains;
#line 758 "../src/user-list.vala"
												_data_->_tmp148_ = ((GCompareFunc) g_strcmp0);
#line 758 "../src/user-list.vala"
												vala_g_ptr_array_sort (_data_->_tmp147_, _data_->_tmp148_);
#line 759 "../src/user-list.vala"
												_data_->_tmp149_ = _data_->domains;
#line 759 "../src/user-list.vala"
												_data_->_tmp150_ = greeter_list_add_combo ((GreeterList*) _data_->self, _data_->_tmp149_, _data_->read_only);
#line 759 "../src/user-list.vala"
												_data_->combo = _data_->_tmp150_;
#line 761 "../src/user-list.vala"
												_data_->_tmp151_ = _data_->default_value;
#line 761 "../src/user-list.vala"
												_data_->_tmp152_ = strlen (_data_->_tmp151_);
#line 761 "../src/user-list.vala"
												_data_->_tmp153_ = _data_->_tmp152_;
#line 761 "../src/user-list.vala"
												if (_data_->_tmp153_ > 0) {
#line 763 "../src/user-list.vala"
													if (_data_->read_only) {
#line 5585 "user-list.c"
														{
#line 765 "../src/user-list.vala"
															_data_->_vala2_i = 0;
#line 5589 "user-list.c"
															{
#line 765 "../src/user-list.vala"
																_data_->_tmp154_ = TRUE;
#line 765 "../src/user-list.vala"
																while (TRUE) {
#line 765 "../src/user-list.vala"
																	if (!_data_->_tmp154_) {
#line 765 "../src/user-list.vala"
																		_data_->_tmp155_ = _data_->_vala2_i;
#line 765 "../src/user-list.vala"
																		_data_->_vala2_i = _data_->_tmp155_ + 1;
#line 5601 "user-list.c"
																	}
#line 765 "../src/user-list.vala"
																	_data_->_tmp154_ = FALSE;
#line 765 "../src/user-list.vala"
																	_data_->_tmp156_ = _data_->domains;
#line 765 "../src/user-list.vala"
																	_data_->_tmp157_ = vala_g_ptr_array_get_length (_data_->_tmp156_);
#line 765 "../src/user-list.vala"
																	_data_->_tmp158_ = _data_->_tmp157_;
#line 765 "../src/user-list.vala"
																	if (!(_data_->_vala2_i < _data_->_tmp158_)) {
#line 765 "../src/user-list.vala"
																		break;
#line 5615 "user-list.c"
																	}
#line 767 "../src/user-list.vala"
																	_data_->_tmp159_ = _data_->default_value;
#line 767 "../src/user-list.vala"
																	_data_->_tmp160_ = _data_->domains;
#line 767 "../src/user-list.vala"
																	_data_->_tmp161_ = g_ptr_array_index (_data_->_tmp160_, (guint) _data_->_vala2_i);
#line 767 "../src/user-list.vala"
																	if (g_strcmp0 (_data_->_tmp159_, (const gchar*) _data_->_tmp161_) == 0) {
#line 769 "../src/user-list.vala"
																		_data_->_tmp162_ = _data_->combo;
#line 769 "../src/user-list.vala"
																		gtk_combo_box_set_active (_data_->_tmp162_, _data_->_vala2_i);
#line 770 "../src/user-list.vala"
																		break;
#line 5631 "user-list.c"
																	}
																}
															}
														}
													} else {
#line 776 "../src/user-list.vala"
														_data_->_tmp163_ = _data_->combo;
#line 776 "../src/user-list.vala"
														_data_->_tmp164_ = gtk_bin_get_child ((GtkBin*) _data_->_tmp163_);
#line 776 "../src/user-list.vala"
														_data_->_tmp165_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_data_->_tmp164_, gtk_entry_get_type ()) ? ((GtkEntry*) _data_->_tmp164_) : NULL);
#line 776 "../src/user-list.vala"
														_data_->_vala2_entry = _data_->_tmp165_;
#line 777 "../src/user-list.vala"
														_data_->_tmp166_ = _data_->_vala2_entry;
#line 777 "../src/user-list.vala"
														_data_->_tmp167_ = _data_->default_value;
#line 777 "../src/user-list.vala"
														gtk_entry_set_text (_data_->_tmp166_, _data_->_tmp167_);
#line 763 "../src/user-list.vala"
														_g_object_unref0 (_data_->_vala2_entry);
#line 5653 "user-list.c"
													}
												}
#line 781 "../src/user-list.vala"
												_data_->_tmp168_ = _data_->combo;
#line 781 "../src/user-list.vala"
												_data_->_tmp169_ = _g_object_ref0 ((GtkWidget*) _data_->_tmp168_);
#line 781 "../src/user-list.vala"
												_g_object_unref0 (_data_->widget);
#line 781 "../src/user-list.vala"
												_data_->widget = _data_->_tmp169_;
#line 737 "../src/user-list.vala"
												_g_object_unref0 (_data_->combo);
#line 5666 "user-list.c"
											}
#line 724 "../src/user-list.vala"
											_g_ptr_array_unref0 (_data_->domains);
#line 724 "../src/user-list.vala"
											_data_->domainsArray = (_vala_array_free (_data_->domainsArray, _data_->domainsArray_length1, (GDestroyNotify) g_free), NULL);
#line 5672 "user-list.c"
										} else {
#line 784 "../src/user-list.vala"
											_data_->_tmp170_ = _data_->_vala1_field;
#line 784 "../src/user-list.vala"
											_data_->_tmp171_ = (*_data_->_tmp170_).type;
#line 784 "../src/user-list.vala"
											if (g_strcmp0 (_data_->_tmp171_, "email") == 0) {
#line 786 "../src/user-list.vala"
												_data_->email_domains_length1 = 0;
#line 786 "../src/user-list.vala"
												_data_->_email_domains_size_ = 0;
#line 5684 "user-list.c"
												{
#line 789 "../src/user-list.vala"
													_data_->_tmp172_ = slick_greeter_singleton;
#line 789 "../src/user-list.vala"
													if (_data_->_tmp172_->test_mode) {
#line 790 "../src/user-list.vala"
														_data_->_tmp173_ = g_strdup ("canonical.com");
#line 790 "../src/user-list.vala"
														_data_->_tmp174_ = g_strdup ("ubuntu.org");
#line 790 "../src/user-list.vala"
														_data_->_tmp175_ = g_strdup ("candy.com");
#line 790 "../src/user-list.vala"
														_data_->_tmp176_ = g_strdup ("urban.net");
#line 790 "../src/user-list.vala"
														_data_->_tmp177_ = g_new0 (gchar*, 4 + 1);
#line 790 "../src/user-list.vala"
														_data_->_tmp177_[0] = _data_->_tmp173_;
#line 790 "../src/user-list.vala"
														_data_->_tmp177_[1] = _data_->_tmp174_;
#line 790 "../src/user-list.vala"
														_data_->_tmp177_[2] = _data_->_tmp175_;
#line 790 "../src/user-list.vala"
														_data_->_tmp177_[3] = _data_->_tmp176_;
#line 790 "../src/user-list.vala"
														_data_->email_domains = (_vala_array_free (_data_->email_domains, _data_->email_domains_length1, (GDestroyNotify) g_free), NULL);
#line 790 "../src/user-list.vala"
														_data_->email_domains = _data_->_tmp177_;
#line 790 "../src/user-list.vala"
														_data_->email_domains_length1 = 4;
#line 790 "../src/user-list.vala"
														_data_->_email_domains_size_ = _data_->email_domains_length1;
#line 5716 "user-list.c"
													} else {
#line 792 "../src/user-list.vala"
														_data_->_tmp178_ = _data_->self->priv->remote_login_service;
#line 792 "../src/user-list.vala"
														_data_->_tmp179_ = _data_->url;
#line 792 "../src/user-list.vala"
														_data_->_tmp180_ = NULL;
#line 792 "../src/user-list.vala"
														_data_->_tmp181_ = 0;
#line 792 "../src/user-list.vala"
														_data_->_state_ = 1;
#line 792 "../src/user-list.vala"
														remote_login_service_get_cached_domains_for_server (_data_->_tmp178_, _data_->_tmp179_, user_list_create_remote_fields_for_current_item_ready, _data_);
#line 792 "../src/user-list.vala"
														return FALSE;
#line 5732 "user-list.c"
														_state_1:
#line 792 "../src/user-list.vala"
														remote_login_service_get_cached_domains_for_server_finish (_data_->_tmp178_, _data_->_res_, &_data_->_tmp180_, &_data_->_tmp181_, &_data_->_inner_error0_);
#line 792 "../src/user-list.vala"
														_data_->email_domains = (_vala_array_free (_data_->email_domains, _data_->email_domains_length1, (GDestroyNotify) g_free), NULL);
#line 792 "../src/user-list.vala"
														_data_->email_domains = _data_->_tmp180_;
#line 792 "../src/user-list.vala"
														_data_->email_domains_length1 = _data_->_tmp181_;
#line 792 "../src/user-list.vala"
														_data_->_email_domains_size_ = _data_->email_domains_length1;
#line 792 "../src/user-list.vala"
														if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 5746 "user-list.c"
															goto __catch0_g_error;
														}
													}
												}
												goto __finally0;
												__catch0_g_error:
												{
#line 787 "../src/user-list.vala"
													_data_->e = _data_->_inner_error0_;
#line 787 "../src/user-list.vala"
													_data_->_inner_error0_ = NULL;
#line 796 "../src/user-list.vala"
													_data_->_tmp182_ = 0;
#line 796 "../src/user-list.vala"
													_data_->email_domains = g_renew (gchar*, _data_->email_domains, 0);
#line 796 "../src/user-list.vala"
													(_data_->_tmp182_ > _data_->email_domains_length1) ? memset (_data_->email_domains + _data_->email_domains_length1, 0, sizeof (gchar*) * (_data_->_tmp182_ - _data_->email_domains_length1)) : NULL;
#line 796 "../src/user-list.vala"
													_data_->email_domains_length1 = _data_->_tmp182_;
#line 796 "../src/user-list.vala"
													_data_->_email_domains_size_ = _data_->_tmp182_;
#line 797 "../src/user-list.vala"
													_data_->_tmp183_ = _data_->e;
#line 797 "../src/user-list.vala"
													_data_->_tmp184_ = _data_->_tmp183_->message;
#line 797 "../src/user-list.vala"
													g_debug ("user-list.vala:797: Calling get_cached_domains_for_server in com.canon" \
"ical.RemoteLogin dbus service failed. Error: %s", _data_->_tmp184_);
#line 787 "../src/user-list.vala"
													_g_error_free0 (_data_->e);
#line 5776 "user-list.c"
												}
												__finally0:
#line 787 "../src/user-list.vala"
												if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
#line 787 "../src/user-list.vala"
													_data_->email_domains = (_vala_array_free (_data_->email_domains, _data_->email_domains_length1, (GDestroyNotify) g_free), NULL);
#line 787 "../src/user-list.vala"
													_g_free0 (_data_->default_value);
#line 787 "../src/user-list.vala"
													_g_object_unref0 (_data_->widget);
#line 787 "../src/user-list.vala"
													_remote_server_field_free0 (_data_->_vala1_field);
#line 787 "../src/user-list.vala"
													(_data_->fields == NULL) ? NULL : (_data_->fields = (_g_list_free__remote_server_field_free0_ (_data_->fields), NULL));
#line 787 "../src/user-list.vala"
													_g_free0 (_data_->remote_username);
#line 787 "../src/user-list.vala"
													_remote_server_free0 (_data_->remote_server);
#line 787 "../src/user-list.vala"
													_g_free0 (_data_->username);
#line 787 "../src/user-list.vala"
													_g_free0 (_data_->url);
#line 787 "../src/user-list.vala"
													g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
#line 787 "../src/user-list.vala"
													g_clear_error (&_data_->_inner_error0_);
#line 787 "../src/user-list.vala"
													g_object_unref (_data_->_async_result);
#line 787 "../src/user-list.vala"
													return FALSE;
#line 5807 "user-list.c"
												}
#line 800 "../src/user-list.vala"
												_data_->_tmp185_ = greeter_list_add_prompt ((GreeterList*) _data_->self, _ ("Email address:"), FALSE);
#line 800 "../src/user-list.vala"
												_data_->_vala3_entry = _data_->_tmp185_;
#line 801 "../src/user-list.vala"
												_data_->_tmp186_ = _data_->_vala3_entry;
#line 801 "../src/user-list.vala"
												_data_->_tmp187_ = _data_->default_value;
#line 801 "../src/user-list.vala"
												gtk_entry_set_text ((GtkEntry*) _data_->_tmp186_, _data_->_tmp187_);
#line 802 "../src/user-list.vala"
												_data_->_tmp188_ = _data_->_vala3_entry;
#line 802 "../src/user-list.vala"
												_data_->_tmp189_ = _g_object_ref0 ((GtkWidget*) _data_->_tmp188_);
#line 802 "../src/user-list.vala"
												_g_object_unref0 (_data_->widget);
#line 802 "../src/user-list.vala"
												_data_->widget = _data_->_tmp189_;
#line 803 "../src/user-list.vala"
												_data_->_tmp190_ = _data_->email_domains;
#line 803 "../src/user-list.vala"
												_data_->_tmp190__length1 = _data_->email_domains_length1;
#line 803 "../src/user-list.vala"
												if (_data_->_tmp190__length1 > 0) {
#line 804 "../src/user-list.vala"
													_data_->_tmp191_ = _data_->_vala3_entry;
#line 804 "../src/user-list.vala"
													_data_->_tmp192_ = _data_->email_domains;
#line 804 "../src/user-list.vala"
													_data_->_tmp192__length1 = _data_->email_domains_length1;
#line 804 "../src/user-list.vala"
													_data_->_tmp193_ = email_autocompleter_new ((GtkEntry*) _data_->_tmp191_, _data_->_tmp192_, _data_->_tmp192__length1);
#line 804 "../src/user-list.vala"
													_email_autocompleter_unref0 (_data_->self->priv->remote_server_email_field_autocompleter);
#line 804 "../src/user-list.vala"
													_data_->self->priv->remote_server_email_field_autocompleter = _data_->_tmp193_;
#line 5845 "user-list.c"
												}
#line 784 "../src/user-list.vala"
												_g_object_unref0 (_data_->_vala3_entry);
#line 784 "../src/user-list.vala"
												_data_->email_domains = (_vala_array_free (_data_->email_domains, _data_->email_domains_length1, (GDestroyNotify) g_free), NULL);
#line 5851 "user-list.c"
											} else {
#line 808 "../src/user-list.vala"
												_data_->_tmp194_ = _data_->_vala1_field;
#line 808 "../src/user-list.vala"
												_data_->_tmp195_ = (*_data_->_tmp194_).type;
#line 808 "../src/user-list.vala"
												g_debug ("user-list.vala:808: Found field of type %s, don't know what to do with" \
" it", _data_->_tmp195_);
#line 809 "../src/user-list.vala"
												_g_free0 (_data_->default_value);
#line 809 "../src/user-list.vala"
												_g_object_unref0 (_data_->widget);
#line 809 "../src/user-list.vala"
												_remote_server_field_free0 (_data_->_vala1_field);
#line 809 "../src/user-list.vala"
												continue;
#line 5867 "user-list.c"
											}
										}
									}
								}
#line 811 "../src/user-list.vala"
								_data_->_tmp196_ = _data_->self->priv->current_remote_fields;
#line 811 "../src/user-list.vala"
								_data_->_tmp197_ = _data_->_vala1_field;
#line 811 "../src/user-list.vala"
								_data_->_tmp198_ = (*_data_->_tmp197_).type;
#line 811 "../src/user-list.vala"
								_data_->_tmp199_ = g_strdup (_data_->_tmp198_);
#line 811 "../src/user-list.vala"
								_data_->_tmp200_ = _data_->widget;
#line 811 "../src/user-list.vala"
								_data_->_tmp201_ = _g_object_ref0 (_data_->_tmp200_);
#line 811 "../src/user-list.vala"
								g_hash_table_insert (_data_->_tmp196_, _data_->_tmp199_, _data_->_tmp201_);
#line 706 "../src/user-list.vala"
								_g_free0 (_data_->default_value);
#line 706 "../src/user-list.vala"
								_g_object_unref0 (_data_->widget);
#line 706 "../src/user-list.vala"
								_remote_server_field_free0 (_data_->_vala1_field);
#line 5892 "user-list.c"
							}
						}
					}
#line 813 "../src/user-list.vala"
					(_data_->fields == NULL) ? NULL : (_data_->fields = (_g_list_free__remote_server_field_free0_ (_data_->fields), NULL));
#line 813 "../src/user-list.vala"
					_g_free0 (_data_->remote_username);
#line 813 "../src/user-list.vala"
					_remote_server_free0 (_data_->remote_server);
#line 813 "../src/user-list.vala"
					break;
#line 5904 "user-list.c"
				}
#line 689 "../src/user-list.vala"
				_g_free0 (_data_->remote_username);
#line 689 "../src/user-list.vala"
				_remote_server_free0 (_data_->remote_server);
#line 5910 "user-list.c"
			}
		}
	}
#line 683 "../src/user-list.vala"
	_g_free0 (_data_->username);
#line 683 "../src/user-list.vala"
	_g_free0 (_data_->url);
#line 683 "../src/user-list.vala"
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
#line 683 "../src/user-list.vala"
	if (_data_->_state_ != 0) {
#line 683 "../src/user-list.vala"
		while (!g_task_get_completed (_data_->_async_result)) {
#line 683 "../src/user-list.vala"
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
#line 5926 "user-list.c"
		}
	}
#line 683 "../src/user-list.vala"
	g_object_unref (_data_->_async_result);
#line 683 "../src/user-list.vala"
	return FALSE;
#line 5933 "user-list.c"
}

static void
user_list_real_focus_prompt (GreeterList* base)
{
	UserList * self;
	PromptBox* _tmp0_;
	PromptBox* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
#line 818 "../src/user-list.vala"
	self = (UserList*) base;
#line 820 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 820 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 820 "../src/user-list.vala"
	_tmp2_ = prompt_box_get_id (_tmp1_);
#line 820 "../src/user-list.vala"
	_tmp3_ = _tmp2_;
#line 820 "../src/user-list.vala"
	if (g_str_has_prefix (_tmp3_, "*remote_login")) {
#line 5956 "user-list.c"
		gchar* url = NULL;
		PromptBox* _tmp4_;
		PromptBox* _tmp5_;
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		gchar* _tmp8_;
		GList* _tmp9_;
#line 822 "../src/user-list.vala"
		_tmp4_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 822 "../src/user-list.vala"
		_tmp5_ = _tmp4_;
#line 822 "../src/user-list.vala"
		_tmp6_ = prompt_box_get_id (_tmp5_);
#line 822 "../src/user-list.vala"
		_tmp7_ = _tmp6_;
#line 822 "../src/user-list.vala"
		_tmp8_ = user_list_url_from_remote_loding_server_list_name (self, _tmp7_);
#line 822 "../src/user-list.vala"
		url = _tmp8_;
#line 823 "../src/user-list.vala"
		_tmp9_ = self->priv->remote_login_server_list;
#line 5978 "user-list.c"
		{
			GList* remote_server_collection = NULL;
			GList* remote_server_it = NULL;
#line 823 "../src/user-list.vala"
			remote_server_collection = _tmp9_;
#line 823 "../src/user-list.vala"
			for (remote_server_it = remote_server_collection; remote_server_it != NULL; remote_server_it = remote_server_it->next) {
#line 5986 "user-list.c"
				RemoteServer* _tmp10_;
				RemoteServer* remote_server = NULL;
#line 823 "../src/user-list.vala"
				_tmp10_ = _remote_server_dup0 ((RemoteServer*) remote_server_it->data);
#line 823 "../src/user-list.vala"
				remote_server = _tmp10_;
#line 5993 "user-list.c"
				{
					RemoteServer* _tmp11_;
					const gchar* _tmp12_;
					const gchar* _tmp13_;
#line 825 "../src/user-list.vala"
					_tmp11_ = remote_server;
#line 825 "../src/user-list.vala"
					_tmp12_ = (*_tmp11_).url;
#line 825 "../src/user-list.vala"
					_tmp13_ = url;
#line 825 "../src/user-list.vala"
					if (g_strcmp0 (_tmp12_, _tmp13_) == 0) {
#line 6006 "user-list.c"
						RemoteServer* _tmp14_;
						const gchar* _tmp15_;
#line 827 "../src/user-list.vala"
						_tmp14_ = remote_server;
#line 827 "../src/user-list.vala"
						_tmp15_ = (*_tmp14_).type;
#line 827 "../src/user-list.vala"
						if (!user_list_is_supported_remote_session (self, _tmp15_)) {
#line 6015 "user-list.c"
							PromptBox* _tmp16_;
							PromptBox* _tmp17_;
#line 829 "../src/user-list.vala"
							_tmp16_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 829 "../src/user-list.vala"
							_tmp17_ = _tmp16_;
#line 829 "../src/user-list.vala"
							gtk_widget_set_sensitive ((GtkWidget*) _tmp17_, FALSE);
#line 830 "../src/user-list.vala"
							_remote_server_free0 (remote_server);
#line 830 "../src/user-list.vala"
							_g_free0 (url);
#line 830 "../src/user-list.vala"
							return;
#line 6030 "user-list.c"
						}
					}
#line 823 "../src/user-list.vala"
					_remote_server_free0 (remote_server);
#line 6035 "user-list.c"
				}
			}
		}
#line 820 "../src/user-list.vala"
		_g_free0 (url);
#line 6041 "user-list.c"
	}
#line 836 "../src/user-list.vala"
	GREETER_LIST_CLASS (user_list_parent_class)->focus_prompt (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_GREETER_LIST, GreeterList));
#line 6045 "user-list.c"
}

static void
user_list_real_show_authenticated (GreeterList* base,
                                   gboolean successful)
{
	UserList * self;
#line 839 "../src/user-list.vala"
	self = (UserList*) base;
#line 841 "../src/user-list.vala"
	if (successful) {
#line 6057 "user-list.c"
		PromptBox* _tmp0_;
		PromptBox* _tmp1_;
		PromptBox* _tmp2_;
		PromptBox* _tmp3_;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
#line 844 "../src/user-list.vala"
		_tmp0_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 844 "../src/user-list.vala"
		_tmp1_ = _tmp0_;
#line 844 "../src/user-list.vala"
		_tmp2_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 844 "../src/user-list.vala"
		_tmp3_ = _tmp2_;
#line 844 "../src/user-list.vala"
		_tmp4_ = prompt_box_get_label (_tmp3_);
#line 844 "../src/user-list.vala"
		_tmp5_ = _tmp4_;
#line 844 "../src/user-list.vala"
		_tmp6_ = g_strdup_printf (_ ("Login as %s"), _tmp5_);
#line 844 "../src/user-list.vala"
		_tmp7_ = _tmp6_;
#line 844 "../src/user-list.vala"
		prompt_box_add_button (_tmp1_, _ ("Log In"), _tmp7_);
#line 844 "../src/user-list.vala"
		_g_free0 (_tmp7_);
#line 6086 "user-list.c"
	} else {
		PromptBox* _tmp8_;
		PromptBox* _tmp9_;
		PromptBox* _tmp10_;
		PromptBox* _tmp11_;
		const gchar* _tmp12_;
		const gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
#line 849 "../src/user-list.vala"
		_tmp8_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 849 "../src/user-list.vala"
		_tmp9_ = _tmp8_;
#line 849 "../src/user-list.vala"
		_tmp10_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 849 "../src/user-list.vala"
		_tmp11_ = _tmp10_;
#line 849 "../src/user-list.vala"
		_tmp12_ = prompt_box_get_label (_tmp11_);
#line 849 "../src/user-list.vala"
		_tmp13_ = _tmp12_;
#line 849 "../src/user-list.vala"
		_tmp14_ = g_strdup_printf (_ ("Retry as %s"), _tmp13_);
#line 849 "../src/user-list.vala"
		_tmp15_ = _tmp14_;
#line 849 "../src/user-list.vala"
		prompt_box_add_button (_tmp9_, _ ("Retry"), _tmp15_);
#line 849 "../src/user-list.vala"
		_g_free0 (_tmp15_);
#line 6116 "user-list.c"
	}
#line 853 "../src/user-list.vala"
	if (((GreeterList*) self)->mode != GREETER_LIST_MODE_SCROLLING) {
#line 6120 "user-list.c"
		PromptBox* _tmp16_;
		PromptBox* _tmp17_;
#line 854 "../src/user-list.vala"
		_tmp16_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 854 "../src/user-list.vala"
		_tmp17_ = _tmp16_;
#line 854 "../src/user-list.vala"
		prompt_box_show_prompts (_tmp17_);
#line 6129 "user-list.c"
	}
#line 856 "../src/user-list.vala"
	greeter_list_focus_prompt ((GreeterList*) self);
#line 857 "../src/user-list.vala"
	greeter_list_redraw_greeter_box ((GreeterList*) self);
#line 6135 "user-list.c"
}

static void
_user_list_prompt_box_respond_cb_prompt_box_respond (PromptBox* _sender,
                                                     gchar** response,
                                                     gint response_length1,
                                                     gpointer self)
{
#line 866 "../src/user-list.vala"
	user_list_prompt_box_respond_cb ((UserList*) self, response, response_length1);
#line 6146 "user-list.c"
}

static void
_user_list_prompt_box_login_cb_prompt_box_login (PromptBox* _sender,
                                                 gpointer self)
{
#line 867 "../src/user-list.vala"
	user_list_prompt_box_login_cb ((UserList*) self);
#line 6155 "user-list.c"
}

static void
_user_list_prompt_box_show_options_cb_prompt_box_show_options (PromptBox* _sender,
                                                               gpointer self)
{
#line 868 "../src/user-list.vala"
	user_list_prompt_box_show_options_cb ((UserList*) self);
#line 6164 "user-list.c"
}

void
user_list_add_user (UserList* self,
                    const gchar* name,
                    const gchar* label,
                    const gchar* background,
                    gboolean is_active,
                    gboolean has_messages,
                    const gchar* session)
{
	UserPromptBox* e = NULL;
	PromptBox* _tmp0_;
	UserPromptBox* _tmp1_;
	UserPromptBox* _tmp2_;
	UserPromptBox* _tmp9_;
	gchar* _tmp10_;
	UserPromptBox* _tmp11_;
	UserPromptBox* _tmp14_;
	gchar* _tmp15_;
	UserPromptBox* _tmp16_;
	UserPromptBox* _tmp17_;
	UserPromptBox* _tmp18_;
	gboolean _tmp19_ = FALSE;
#line 860 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 860 "../src/user-list.vala"
	g_return_if_fail (name != NULL);
#line 860 "../src/user-list.vala"
	g_return_if_fail (label != NULL);
#line 862 "../src/user-list.vala"
	_tmp0_ = greeter_list_find_entry ((GreeterList*) self, name);
#line 862 "../src/user-list.vala"
	_tmp1_ = IS_USER_PROMPT_BOX (_tmp0_) ? ((UserPromptBox*) _tmp0_) : NULL;
#line 862 "../src/user-list.vala"
	if (_tmp1_ == NULL) {
#line 862 "../src/user-list.vala"
		_g_object_unref0 (_tmp0_);
#line 6203 "user-list.c"
	}
#line 862 "../src/user-list.vala"
	e = _tmp1_;
#line 863 "../src/user-list.vala"
	_tmp2_ = e;
#line 863 "../src/user-list.vala"
	if (_tmp2_ == NULL) {
#line 6211 "user-list.c"
		UserPromptBox* _tmp3_;
		UserPromptBox* _tmp4_;
		UserPromptBox* _tmp5_;
		UserPromptBox* _tmp6_;
		UserPromptBox* _tmp7_;
		UserPromptBox* _tmp8_;
#line 865 "../src/user-list.vala"
		_tmp3_ = user_prompt_box_new (name);
#line 865 "../src/user-list.vala"
		g_object_ref_sink (_tmp3_);
#line 865 "../src/user-list.vala"
		_g_object_unref0 (e);
#line 865 "../src/user-list.vala"
		e = _tmp3_;
#line 866 "../src/user-list.vala"
		_tmp4_ = e;
#line 866 "../src/user-list.vala"
		g_signal_connect_object ((PromptBox*) _tmp4_, "respond", (GCallback) _user_list_prompt_box_respond_cb_prompt_box_respond, self, 0);
#line 867 "../src/user-list.vala"
		_tmp5_ = e;
#line 867 "../src/user-list.vala"
		g_signal_connect_object ((PromptBox*) _tmp5_, "login", (GCallback) _user_list_prompt_box_login_cb_prompt_box_login, self, 0);
#line 868 "../src/user-list.vala"
		_tmp6_ = e;
#line 868 "../src/user-list.vala"
		g_signal_connect_object ((PromptBox*) _tmp6_, "show-options", (GCallback) _user_list_prompt_box_show_options_cb_prompt_box_show_options, self, 0);
#line 869 "../src/user-list.vala"
		_tmp7_ = e;
#line 869 "../src/user-list.vala"
		prompt_box_set_label ((PromptBox*) _tmp7_, label);
#line 870 "../src/user-list.vala"
		_tmp8_ = e;
#line 870 "../src/user-list.vala"
		greeter_list_add_entry ((GreeterList*) self, (PromptBox*) _tmp8_);
#line 6246 "user-list.c"
	}
#line 872 "../src/user-list.vala"
	_tmp9_ = e;
#line 872 "../src/user-list.vala"
	_tmp10_ = g_strdup (background);
#line 872 "../src/user-list.vala"
	_g_free0 (_tmp9_->background);
#line 872 "../src/user-list.vala"
	_tmp9_->background = _tmp10_;
#line 873 "../src/user-list.vala"
	_tmp11_ = e;
#line 873 "../src/user-list.vala"
	_tmp11_->is_active = is_active;
#line 874 "../src/user-list.vala"
	if (session == NULL) {
#line 6262 "user-list.c"
		const gchar* _tmp12_;
		const gchar* _tmp13_;
#line 876 "../src/user-list.vala"
		_tmp12_ = user_list_get_default_session (self);
#line 876 "../src/user-list.vala"
		_tmp13_ = _tmp12_;
#line 876 "../src/user-list.vala"
		session = _tmp13_;
#line 6271 "user-list.c"
	}
#line 878 "../src/user-list.vala"
	_tmp14_ = e;
#line 878 "../src/user-list.vala"
	_tmp15_ = slick_greeter_validate_session (session);
#line 878 "../src/user-list.vala"
	_g_free0 (_tmp14_->session);
#line 878 "../src/user-list.vala"
	_tmp14_->session = _tmp15_;
#line 879 "../src/user-list.vala"
	_tmp16_ = e;
#line 879 "../src/user-list.vala"
	prompt_box_set_label ((PromptBox*) _tmp16_, label);
#line 880 "../src/user-list.vala"
	_tmp17_ = e;
#line 880 "../src/user-list.vala"
	prompt_box_set_show_message_icon ((PromptBox*) _tmp17_, has_messages);
#line 881 "../src/user-list.vala"
	_tmp18_ = e;
#line 881 "../src/user-list.vala"
	prompt_box_set_is_active ((PromptBox*) _tmp18_, is_active);
#line 884 "../src/user-list.vala"
	if (greeter_list_have_entries ((GreeterList*) self)) {
#line 6295 "user-list.c"
		gboolean _tmp20_;
		gboolean _tmp21_;
#line 884 "../src/user-list.vala"
		_tmp20_ = greeter_list_get_always_show_manual ((GreeterList*) self);
#line 884 "../src/user-list.vala"
		_tmp21_ = _tmp20_;
#line 884 "../src/user-list.vala"
		_tmp19_ = !_tmp21_;
#line 6304 "user-list.c"
	} else {
#line 884 "../src/user-list.vala"
		_tmp19_ = FALSE;
#line 6308 "user-list.c"
	}
#line 884 "../src/user-list.vala"
	if (_tmp19_) {
#line 885 "../src/user-list.vala"
		greeter_list_remove_entry ((GreeterList*) self, "*other");
#line 6314 "user-list.c"
	}
#line 860 "../src/user-list.vala"
	_g_object_unref0 (e);
#line 6318 "user-list.c"
}

static void
user_list_real_add_manual_entry (GreeterList* base)
{
	UserList * self;
	gchar* text = NULL;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp5_;
#line 888 "../src/user-list.vala"
	self = (UserList*) base;
#line 890 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_manual_name ((GreeterList*) self);
#line 890 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 890 "../src/user-list.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 890 "../src/user-list.vala"
	text = _tmp2_;
#line 891 "../src/user-list.vala"
	_tmp3_ = text;
#line 891 "../src/user-list.vala"
	if (_tmp3_ == NULL) {
#line 6345 "user-list.c"
		gchar* _tmp4_;
#line 892 "../src/user-list.vala"
		_tmp4_ = g_strdup (_ ("Login"));
#line 892 "../src/user-list.vala"
		_g_free0 (text);
#line 892 "../src/user-list.vala"
		text = _tmp4_;
#line 6353 "user-list.c"
	}
#line 893 "../src/user-list.vala"
	_tmp5_ = text;
#line 893 "../src/user-list.vala"
	user_list_add_user (self, "*other", _tmp5_, NULL, FALSE, FALSE, NULL);
#line 888 "../src/user-list.vala"
	_g_free0 (text);
#line 6361 "user-list.c"
}

void
user_list_prompt_box_respond_cb (UserList* self,
                                 gchar** responses,
                                 gint responses_length1)
{
	PromptBox* _tmp0_;
	PromptBox* _tmp1_;
#line 896 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 898 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 898 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 898 "../src/user-list.vala"
	gtk_widget_set_sensitive ((GtkWidget*) _tmp1_, FALSE);
#line 899 "../src/user-list.vala"
	((GreeterList*) self)->will_clear = TRUE;
#line 900 "../src/user-list.vala"
	((GreeterList*) self)->unacknowledged_messages = FALSE;
#line 6383 "user-list.c"
	{
		gchar** response_collection = NULL;
		gint response_collection_length1 = 0;
		gint _response_collection_size_ = 0;
		gint response_it = 0;
#line 902 "../src/user-list.vala"
		response_collection = responses;
#line 902 "../src/user-list.vala"
		response_collection_length1 = responses_length1;
#line 902 "../src/user-list.vala"
		for (response_it = 0; response_it < response_collection_length1; response_it = response_it + 1) {
#line 6395 "user-list.c"
			gchar* _tmp2_;
			gchar* response = NULL;
#line 902 "../src/user-list.vala"
			_tmp2_ = g_strdup (response_collection[response_it]);
#line 902 "../src/user-list.vala"
			response = _tmp2_;
#line 6402 "user-list.c"
			{
				SlickGreeter* _tmp3_;
#line 904 "../src/user-list.vala"
				_tmp3_ = slick_greeter_singleton;
#line 904 "../src/user-list.vala"
				if (_tmp3_->test_mode) {
#line 6409 "user-list.c"
					const gchar* _tmp4_;
#line 905 "../src/user-list.vala"
					_tmp4_ = response;
#line 905 "../src/user-list.vala"
					user_list_test_respond (self, _tmp4_);
#line 6415 "user-list.c"
				} else {
					SlickGreeter* _tmp5_;
					const gchar* _tmp6_;
#line 907 "../src/user-list.vala"
					_tmp5_ = slick_greeter_singleton;
#line 907 "../src/user-list.vala"
					_tmp6_ = response;
#line 907 "../src/user-list.vala"
					slick_greeter_respond (_tmp5_, _tmp6_);
#line 6425 "user-list.c"
				}
#line 902 "../src/user-list.vala"
				_g_free0 (response);
#line 6429 "user-list.c"
			}
		}
	}
}

static void
user_list_prompt_box_login_cb (UserList* self)
{
	PromptBox* _tmp0_;
	PromptBox* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gboolean is_authenticated = FALSE;
	SlickGreeter* _tmp4_;
#line 911 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 913 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 913 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 913 "../src/user-list.vala"
	_tmp2_ = prompt_box_get_id (_tmp1_);
#line 913 "../src/user-list.vala"
	_tmp3_ = _tmp2_;
#line 913 "../src/user-list.vala"
	g_debug ("user-list.vala:913: Start session for %s", _tmp3_);
#line 915 "../src/user-list.vala"
	((GreeterList*) self)->unacknowledged_messages = FALSE;
#line 916 "../src/user-list.vala"
	is_authenticated = FALSE;
#line 917 "../src/user-list.vala"
	_tmp4_ = slick_greeter_singleton;
#line 917 "../src/user-list.vala"
	if (_tmp4_->test_mode) {
#line 918 "../src/user-list.vala"
		is_authenticated = ((GreeterList*) self)->test_is_authenticated;
#line 6466 "user-list.c"
	} else {
		SlickGreeter* _tmp5_;
#line 920 "../src/user-list.vala"
		_tmp5_ = slick_greeter_singleton;
#line 920 "../src/user-list.vala"
		is_authenticated = slick_greeter_is_authenticated (_tmp5_);
#line 6473 "user-list.c"
	}
#line 923 "../src/user-list.vala"
	if (is_authenticated) {
#line 924 "../src/user-list.vala"
		greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 6479 "user-list.c"
	} else {
		PromptBox* _tmp6_;
		PromptBox* _tmp7_;
#line 927 "../src/user-list.vala"
		_tmp6_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 927 "../src/user-list.vala"
		_tmp7_ = _tmp6_;
#line 927 "../src/user-list.vala"
		prompt_box_clear (_tmp7_);
#line 928 "../src/user-list.vala"
		greeter_list_start_authentication ((GreeterList*) self);
#line 6491 "user-list.c"
	}
}

static void
_user_list_session_clicked_cb_session_list_session_clicked (SessionList* _sender,
                                                            const gchar* session,
                                                            gpointer self)
{
#line 935 "../src/user-list.vala"
	user_list_session_clicked_cb ((UserList*) self, session);
#line 6502 "user-list.c"
}

static void
user_list_prompt_box_show_options_cb (UserList* self)
{
	SessionList* session_chooser = NULL;
	Background* _tmp0_;
	Background* _tmp1_;
	MenuBar* _tmp2_;
	MenuBar* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	SessionList* _tmp8_;
	SlickGreeter* _tmp9_;
#line 932 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 934 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_background ((GreeterList*) self);
#line 934 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 934 "../src/user-list.vala"
	_tmp2_ = greeter_list_get_menubar ((GreeterList*) self);
#line 934 "../src/user-list.vala"
	_tmp3_ = _tmp2_;
#line 934 "../src/user-list.vala"
	_tmp4_ = user_list_get_session (self);
#line 934 "../src/user-list.vala"
	_tmp5_ = _tmp4_;
#line 934 "../src/user-list.vala"
	_tmp6_ = user_list_get_default_session (self);
#line 934 "../src/user-list.vala"
	_tmp7_ = _tmp6_;
#line 934 "../src/user-list.vala"
	_tmp8_ = session_list_new (_tmp1_, _tmp3_, _tmp5_, _tmp7_);
#line 934 "../src/user-list.vala"
	g_object_ref_sink (_tmp8_);
#line 934 "../src/user-list.vala"
	session_chooser = _tmp8_;
#line 935 "../src/user-list.vala"
	g_signal_connect_object (session_chooser, "session-clicked", (GCallback) _user_list_session_clicked_cb_session_list_session_clicked, self, 0);
#line 936 "../src/user-list.vala"
	_tmp9_ = slick_greeter_singleton;
#line 936 "../src/user-list.vala"
	slick_greeter_push_list (_tmp9_, (GreeterList*) session_chooser);
#line 932 "../src/user-list.vala"
	_g_object_unref0 (session_chooser);
#line 6551 "user-list.c"
}

static void
user_list_session_clicked_cb (UserList* self,
                              const gchar* session)
{
	SlickGreeter* _tmp0_;
#line 939 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 939 "../src/user-list.vala"
	g_return_if_fail (session != NULL);
#line 941 "../src/user-list.vala"
	user_list_set_session (self, session);
#line 942 "../src/user-list.vala"
	_tmp0_ = slick_greeter_singleton;
#line 942 "../src/user-list.vala"
	slick_greeter_pop_list (_tmp0_);
#line 6569 "user-list.c"
}

static gboolean
user_list_should_show_session_badge (UserList* self)
{
	SlickGreeter* _tmp0_;
	gboolean result;
#line 945 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 947 "../src/user-list.vala"
	_tmp0_ = slick_greeter_singleton;
#line 947 "../src/user-list.vala"
	if (_tmp0_->test_mode) {
#line 6583 "user-list.c"
		gchar* _tmp1_;
		gchar* _tmp2_;
		gboolean _tmp3_;
#line 948 "../src/user-list.vala"
		_tmp1_ = greeter_list_get_selected_id ((GreeterList*) self);
#line 948 "../src/user-list.vala"
		_tmp2_ = _tmp1_;
#line 948 "../src/user-list.vala"
		_tmp3_ = g_strcmp0 (_tmp2_, "no-badge") != 0;
#line 948 "../src/user-list.vala"
		_g_free0 (_tmp2_);
#line 948 "../src/user-list.vala"
		result = _tmp3_;
#line 948 "../src/user-list.vala"
		return result;
#line 6599 "user-list.c"
	} else {
		GList* _tmp4_;
#line 950 "../src/user-list.vala"
		_tmp4_ = lightdm_get_sessions ();
#line 950 "../src/user-list.vala"
		result = g_list_length (_tmp4_) > ((guint) 1);
#line 950 "../src/user-list.vala"
		return result;
#line 6608 "user-list.c"
	}
}

static GdkPixbuf*
user_list_get_badge (UserList* self)
{
	PromptBox* _tmp0_;
	PromptBox* _tmp1_;
	GdkPixbuf* result;
#line 953 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 955 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 955 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 955 "../src/user-list.vala"
	if (IS_USER_PROMPT_BOX (_tmp1_)) {
#line 957 "../src/user-list.vala"
		if (!user_list_should_show_session_badge (self)) {
#line 958 "../src/user-list.vala"
			result = NULL;
#line 958 "../src/user-list.vala"
			return result;
#line 6632 "user-list.c"
		} else {
			const gchar* _tmp2_;
			const gchar* _tmp3_;
#line 959 "../src/user-list.vala"
			_tmp2_ = user_list_get_session (self);
#line 959 "../src/user-list.vala"
			_tmp3_ = _tmp2_;
#line 959 "../src/user-list.vala"
			if (_tmp3_ == NULL) {
#line 6642 "user-list.c"
				const gchar* _tmp4_;
				const gchar* _tmp5_;
				GdkPixbuf* _tmp6_;
#line 960 "../src/user-list.vala"
				_tmp4_ = user_list_get_default_session (self);
#line 960 "../src/user-list.vala"
				_tmp5_ = _tmp4_;
#line 960 "../src/user-list.vala"
				_tmp6_ = session_list_get_badge (_tmp5_);
#line 960 "../src/user-list.vala"
				result = _tmp6_;
#line 960 "../src/user-list.vala"
				return result;
#line 6656 "user-list.c"
			} else {
				const gchar* _tmp7_;
				const gchar* _tmp8_;
				GdkPixbuf* _tmp9_;
#line 962 "../src/user-list.vala"
				_tmp7_ = user_list_get_session (self);
#line 962 "../src/user-list.vala"
				_tmp8_ = _tmp7_;
#line 962 "../src/user-list.vala"
				_tmp9_ = session_list_get_badge (_tmp8_);
#line 962 "../src/user-list.vala"
				result = _tmp9_;
#line 962 "../src/user-list.vala"
				return result;
#line 6671 "user-list.c"
			}
		}
	} else {
		PromptBox* _tmp10_;
		PromptBox* _tmp11_;
		const gchar* _tmp12_;
		const gchar* _tmp13_;
#line 966 "../src/user-list.vala"
		_tmp10_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 966 "../src/user-list.vala"
		_tmp11_ = _tmp10_;
#line 966 "../src/user-list.vala"
		_tmp12_ = prompt_box_get_id (_tmp11_);
#line 966 "../src/user-list.vala"
		_tmp13_ = _tmp12_;
#line 966 "../src/user-list.vala"
		if (g_str_has_prefix (_tmp13_, "*remote_directory")) {
#line 6689 "user-list.c"
			GdkPixbuf* _tmp14_;
#line 967 "../src/user-list.vala"
			_tmp14_ = session_list_get_badge ("remote-login");
#line 967 "../src/user-list.vala"
			result = _tmp14_;
#line 967 "../src/user-list.vala"
			return result;
#line 6697 "user-list.c"
		} else {
#line 969 "../src/user-list.vala"
			result = NULL;
#line 969 "../src/user-list.vala"
			return result;
#line 6703 "user-list.c"
		}
	}
}

static gboolean
user_list_is_supported_remote_session (UserList* self,
                                       const gchar* session_internal_name)
{
	SlickGreeter* _tmp0_;
	gboolean found = FALSE;
	GList* _tmp1_;
	gboolean result;
#line 973 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 973 "../src/user-list.vala"
	g_return_val_if_fail (session_internal_name != NULL, FALSE);
#line 975 "../src/user-list.vala"
	_tmp0_ = slick_greeter_singleton;
#line 975 "../src/user-list.vala"
	if (_tmp0_->test_mode) {
#line 976 "../src/user-list.vala"
		result = g_strcmp0 (session_internal_name, "rdp") == 0;
#line 976 "../src/user-list.vala"
		return result;
#line 6728 "user-list.c"
	}
#line 978 "../src/user-list.vala"
	found = FALSE;
#line 979 "../src/user-list.vala"
	_tmp1_ = lightdm_get_remote_sessions ();
#line 6734 "user-list.c"
	{
		GList* session_collection = NULL;
		GList* session_it = NULL;
#line 979 "../src/user-list.vala"
		session_collection = _tmp1_;
#line 979 "../src/user-list.vala"
		for (session_it = session_collection; session_it != NULL; session_it = session_it->next) {
#line 6742 "user-list.c"
			LightDMSession* _tmp2_;
			LightDMSession* session = NULL;
#line 979 "../src/user-list.vala"
			_tmp2_ = _g_object_ref0 ((LightDMSession*) session_it->data);
#line 979 "../src/user-list.vala"
			session = _tmp2_;
#line 6749 "user-list.c"
			{
				LightDMSession* _tmp3_;
				const gchar* _tmp4_;
				const gchar* _tmp5_;
#line 981 "../src/user-list.vala"
				_tmp3_ = session;
#line 981 "../src/user-list.vala"
				_tmp4_ = lightdm_session_get_key (_tmp3_);
#line 981 "../src/user-list.vala"
				_tmp5_ = _tmp4_;
#line 981 "../src/user-list.vala"
				if (g_strcmp0 (_tmp5_, session_internal_name) == 0) {
#line 983 "../src/user-list.vala"
					found = TRUE;
#line 984 "../src/user-list.vala"
					_g_object_unref0 (session);
#line 984 "../src/user-list.vala"
					break;
#line 6768 "user-list.c"
				}
#line 979 "../src/user-list.vala"
				_g_object_unref0 (session);
#line 6772 "user-list.c"
			}
		}
	}
#line 987 "../src/user-list.vala"
	result = found;
#line 987 "../src/user-list.vala"
	return result;
#line 6780 "user-list.c"
}

static gchar*
user_list_real_get_lightdm_session (GreeterList* base)
{
	UserList * self;
	PromptBox* _tmp0_;
	PromptBox* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* result;
#line 990 "../src/user-list.vala"
	self = (UserList*) base;
#line 992 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 992 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 992 "../src/user-list.vala"
	_tmp2_ = prompt_box_get_id (_tmp1_);
#line 992 "../src/user-list.vala"
	_tmp3_ = _tmp2_;
#line 992 "../src/user-list.vala"
	if (g_str_has_prefix (_tmp3_, "*remote_login")) {
#line 6804 "user-list.c"
		gchar* url = NULL;
		PromptBox* _tmp4_;
		PromptBox* _tmp5_;
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		gchar* _tmp8_;
		GList* it = NULL;
		GList* _tmp9_;
		gchar* answer = NULL;
		gchar* _tmp10_;
		const gchar* _tmp26_;
#line 994 "../src/user-list.vala"
		_tmp4_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 994 "../src/user-list.vala"
		_tmp5_ = _tmp4_;
#line 994 "../src/user-list.vala"
		_tmp6_ = prompt_box_get_id (_tmp5_);
#line 994 "../src/user-list.vala"
		_tmp7_ = _tmp6_;
#line 994 "../src/user-list.vala"
		_tmp8_ = user_list_url_from_remote_loding_server_list_name (self, _tmp7_);
#line 994 "../src/user-list.vala"
		url = _tmp8_;
#line 995 "../src/user-list.vala"
		_tmp9_ = self->priv->remote_login_server_list;
#line 995 "../src/user-list.vala"
		it = _tmp9_;
#line 997 "../src/user-list.vala"
		_tmp10_ = g_strdup ("");
#line 997 "../src/user-list.vala"
		answer = _tmp10_;
#line 998 "../src/user-list.vala"
		while (TRUE) {
#line 6838 "user-list.c"
			gboolean _tmp11_ = FALSE;
			const gchar* _tmp12_;
			RemoteServer remote_server = {0};
			GList* _tmp14_;
			gconstpointer _tmp15_;
			RemoteServer _tmp16_;
			RemoteServer _tmp17_ = {0};
			RemoteServer _tmp18_;
			const gchar* _tmp19_;
			const gchar* _tmp20_;
			GList* _tmp24_;
			GList* _tmp25_;
#line 998 "../src/user-list.vala"
			_tmp12_ = answer;
#line 998 "../src/user-list.vala"
			if (g_strcmp0 (_tmp12_, "") == 0) {
#line 6855 "user-list.c"
				GList* _tmp13_;
#line 998 "../src/user-list.vala"
				_tmp13_ = it;
#line 998 "../src/user-list.vala"
				_tmp11_ = _tmp13_ != NULL;
#line 6861 "user-list.c"
			} else {
#line 998 "../src/user-list.vala"
				_tmp11_ = FALSE;
#line 6865 "user-list.c"
			}
#line 998 "../src/user-list.vala"
			if (!_tmp11_) {
#line 998 "../src/user-list.vala"
				break;
#line 6871 "user-list.c"
			}
#line 1000 "../src/user-list.vala"
			_tmp14_ = it;
#line 1000 "../src/user-list.vala"
			_tmp15_ = _tmp14_->data;
#line 1000 "../src/user-list.vala"
			_tmp16_ = *((RemoteServer*) _tmp15_);
#line 1000 "../src/user-list.vala"
			remote_server_copy (&_tmp16_, &_tmp17_);
#line 1000 "../src/user-list.vala"
			remote_server = _tmp17_;
#line 1001 "../src/user-list.vala"
			_tmp18_ = remote_server;
#line 1001 "../src/user-list.vala"
			_tmp19_ = _tmp18_.url;
#line 1001 "../src/user-list.vala"
			_tmp20_ = url;
#line 1001 "../src/user-list.vala"
			if (g_strcmp0 (_tmp19_, _tmp20_) == 0) {
#line 6891 "user-list.c"
				RemoteServer _tmp21_;
				const gchar* _tmp22_;
				gchar* _tmp23_;
#line 1002 "../src/user-list.vala"
				_tmp21_ = remote_server;
#line 1002 "../src/user-list.vala"
				_tmp22_ = _tmp21_.type;
#line 1002 "../src/user-list.vala"
				_tmp23_ = g_strdup (_tmp22_);
#line 1002 "../src/user-list.vala"
				_g_free0 (answer);
#line 1002 "../src/user-list.vala"
				answer = _tmp23_;
#line 6905 "user-list.c"
			}
#line 1003 "../src/user-list.vala"
			_tmp24_ = it;
#line 1003 "../src/user-list.vala"
			_tmp25_ = _tmp24_->next;
#line 1003 "../src/user-list.vala"
			it = _tmp25_;
#line 998 "../src/user-list.vala"
			remote_server_destroy (&remote_server);
#line 6915 "user-list.c"
		}
#line 1006 "../src/user-list.vala"
		_tmp26_ = answer;
#line 1006 "../src/user-list.vala"
		if (user_list_is_supported_remote_session (self, _tmp26_)) {
#line 1007 "../src/user-list.vala"
			result = answer;
#line 1007 "../src/user-list.vala"
			_g_free0 (url);
#line 1007 "../src/user-list.vala"
			return result;
#line 6927 "user-list.c"
		} else {
			gchar* _tmp27_;
#line 1009 "../src/user-list.vala"
			_tmp27_ = g_strdup ("");
#line 1009 "../src/user-list.vala"
			result = _tmp27_;
#line 1009 "../src/user-list.vala"
			_g_free0 (answer);
#line 1009 "../src/user-list.vala"
			_g_free0 (url);
#line 1009 "../src/user-list.vala"
			return result;
#line 6940 "user-list.c"
		}
#line 992 "../src/user-list.vala"
		_g_free0 (answer);
#line 992 "../src/user-list.vala"
		_g_free0 (url);
#line 6946 "user-list.c"
	} else {
		const gchar* _tmp28_;
		const gchar* _tmp29_;
		gchar* _tmp30_;
#line 1012 "../src/user-list.vala"
		_tmp28_ = user_list_get_session (self);
#line 1012 "../src/user-list.vala"
		_tmp29_ = _tmp28_;
#line 1012 "../src/user-list.vala"
		_tmp30_ = g_strdup (_tmp29_);
#line 1012 "../src/user-list.vala"
		result = _tmp30_;
#line 1012 "../src/user-list.vala"
		return result;
#line 6961 "user-list.c"
	}
}

static void
_user_list_user_added_cb_lightdm_user_list_user_added (LightDMUserList* _sender,
                                                       LightDMUser* user,
                                                       gpointer self)
{
#line 1026 "../src/user-list.vala"
	user_list_user_added_cb ((UserList*) self, user);
#line 6972 "user-list.c"
}

static void
_user_list_user_added_cb_lightdm_user_list_user_changed (LightDMUserList* _sender,
                                                         LightDMUser* user,
                                                         gpointer self)
{
#line 1027 "../src/user-list.vala"
	user_list_user_added_cb ((UserList*) self, user);
#line 6982 "user-list.c"
}

static void
_user_list_user_removed_cb_lightdm_user_list_user_removed (LightDMUserList* _sender,
                                                           LightDMUser* user,
                                                           gpointer self)
{
#line 1028 "../src/user-list.vala"
	user_list_user_removed_cb ((UserList*) self, user);
#line 6992 "user-list.c"
}

static void
user_list_fill_list (UserList* self)
{
	SlickGreeter* _tmp0_;
#line 1015 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 1017 "../src/user-list.vala"
	_tmp0_ = slick_greeter_singleton;
#line 1017 "../src/user-list.vala"
	if (_tmp0_->test_mode) {
#line 1018 "../src/user-list.vala"
		user_list_test_fill_list (self);
#line 7007 "user-list.c"
	} else {
		SlickGreeter* _tmp1_;
		gchar* _tmp2_;
		gchar* _tmp3_;
		SlickGreeter* _tmp4_;
		SlickGreeter* _tmp5_;
		SlickGreeter* _tmp16_;
		gchar* username = NULL;
		gchar* realname = NULL;
		SlickGreeter* _tmp17_;
		gchar* _tmp18_ = NULL;
		gchar* _tmp19_ = NULL;
		gboolean _tmp20_;
		gchar* last_user = NULL;
		SlickGreeter* _tmp25_;
		gchar* _tmp26_;
		SlickGreeter* _tmp27_;
		gchar* _tmp28_;
		gchar* _tmp29_;
		gboolean _tmp30_;
#line 1021 "../src/user-list.vala"
		_tmp1_ = slick_greeter_singleton;
#line 1021 "../src/user-list.vala"
		_tmp2_ = slick_greeter_default_session_hint (_tmp1_);
#line 1021 "../src/user-list.vala"
		_tmp3_ = _tmp2_;
#line 1021 "../src/user-list.vala"
		user_list_set_default_session (self, _tmp3_);
#line 1021 "../src/user-list.vala"
		_g_free0 (_tmp3_);
#line 1022 "../src/user-list.vala"
		_tmp4_ = slick_greeter_singleton;
#line 1022 "../src/user-list.vala"
		greeter_list_set_always_show_manual ((GreeterList*) self, slick_greeter_show_manual_login_hint (_tmp4_));
#line 1023 "../src/user-list.vala"
		_tmp5_ = slick_greeter_singleton;
#line 1023 "../src/user-list.vala"
		if (!slick_greeter_hide_users_hint (_tmp5_)) {
#line 7046 "user-list.c"
			LightDMUserList* users = NULL;
			LightDMUserList* _tmp6_;
			LightDMUserList* _tmp7_;
			LightDMUserList* _tmp8_;
			LightDMUserList* _tmp9_;
			LightDMUserList* _tmp10_;
			LightDMUserList* _tmp11_;
			GList* _tmp12_;
			GList* _tmp13_;
#line 1025 "../src/user-list.vala"
			_tmp6_ = lightdm_user_list_get_instance ();
#line 1025 "../src/user-list.vala"
			_tmp7_ = _g_object_ref0 (_tmp6_);
#line 1025 "../src/user-list.vala"
			users = _tmp7_;
#line 1026 "../src/user-list.vala"
			_tmp8_ = users;
#line 1026 "../src/user-list.vala"
			g_signal_connect_object (_tmp8_, "user-added", (GCallback) _user_list_user_added_cb_lightdm_user_list_user_added, self, 0);
#line 1027 "../src/user-list.vala"
			_tmp9_ = users;
#line 1027 "../src/user-list.vala"
			g_signal_connect_object (_tmp9_, "user-changed", (GCallback) _user_list_user_added_cb_lightdm_user_list_user_changed, self, 0);
#line 1028 "../src/user-list.vala"
			_tmp10_ = users;
#line 1028 "../src/user-list.vala"
			g_signal_connect_object (_tmp10_, "user-removed", (GCallback) _user_list_user_removed_cb_lightdm_user_list_user_removed, self, 0);
#line 1029 "../src/user-list.vala"
			_tmp11_ = users;
#line 1029 "../src/user-list.vala"
			_tmp12_ = lightdm_user_list_get_users (_tmp11_);
#line 1029 "../src/user-list.vala"
			_tmp13_ = _tmp12_;
#line 7080 "user-list.c"
			{
				GList* user_collection = NULL;
				GList* user_it = NULL;
#line 1029 "../src/user-list.vala"
				user_collection = _tmp13_;
#line 1029 "../src/user-list.vala"
				for (user_it = user_collection; user_it != NULL; user_it = user_it->next) {
#line 7088 "user-list.c"
					LightDMUser* _tmp14_;
					LightDMUser* user = NULL;
#line 1029 "../src/user-list.vala"
					_tmp14_ = _g_object_ref0 ((LightDMUser*) user_it->data);
#line 1029 "../src/user-list.vala"
					user = _tmp14_;
#line 7095 "user-list.c"
					{
						LightDMUser* _tmp15_;
#line 1030 "../src/user-list.vala"
						_tmp15_ = user;
#line 1030 "../src/user-list.vala"
						user_list_user_added_cb (self, _tmp15_);
#line 1029 "../src/user-list.vala"
						_g_object_unref0 (user);
#line 7104 "user-list.c"
					}
				}
			}
#line 1023 "../src/user-list.vala"
			_g_object_unref0 (users);
#line 7110 "user-list.c"
		}
#line 1033 "../src/user-list.vala"
		_tmp16_ = slick_greeter_singleton;
#line 1033 "../src/user-list.vala"
		if (slick_greeter_has_guest_account_hint (_tmp16_)) {
#line 1035 "../src/user-list.vala"
			g_debug ("user-list.vala:1035: Adding guest account entry");
#line 1036 "../src/user-list.vala"
			user_list_set_offer_guest (self, TRUE);
#line 7120 "user-list.c"
		}
#line 1039 "../src/user-list.vala"
		username = NULL;
#line 1039 "../src/user-list.vala"
		realname = NULL;
#line 1040 "../src/user-list.vala"
		_tmp17_ = slick_greeter_singleton;
#line 1040 "../src/user-list.vala"
		_tmp20_ = slick_greeter_is_live_session (_tmp17_, &_tmp18_, &_tmp19_);
#line 1040 "../src/user-list.vala"
		_g_free0 (username);
#line 1040 "../src/user-list.vala"
		username = _tmp18_;
#line 1040 "../src/user-list.vala"
		_g_free0 (realname);
#line 1040 "../src/user-list.vala"
		realname = _tmp19_;
#line 1040 "../src/user-list.vala"
		if (_tmp20_) {
#line 7140 "user-list.c"
			const gchar* _tmp21_;
			const gchar* _tmp22_;
			const gchar* _tmp23_;
			const gchar* _tmp24_;
#line 1042 "../src/user-list.vala"
			_tmp21_ = username;
#line 1042 "../src/user-list.vala"
			_tmp22_ = realname;
#line 1042 "../src/user-list.vala"
			g_debug ("user-list.vala:1042: Adding live user account: %s (%s)", _tmp21_, _tmp22_);
#line 1044 "../src/user-list.vala"
			_tmp23_ = username;
#line 1044 "../src/user-list.vala"
			_tmp24_ = realname;
#line 1044 "../src/user-list.vala"
			user_list_add_user (self, _tmp23_, _tmp24_, NULL, TRUE, FALSE, NULL);
#line 1047 "../src/user-list.vala"
			greeter_list_remove_entry ((GreeterList*) self, "lightdm");
#line 7159 "user-list.c"
		}
#line 1051 "../src/user-list.vala"
		if (!greeter_list_have_entries ((GreeterList*) self)) {
#line 1052 "../src/user-list.vala"
			greeter_list_add_manual_entry ((GreeterList*) self);
#line 7165 "user-list.c"
		}
#line 1054 "../src/user-list.vala"
		_tmp25_ = slick_greeter_singleton;
#line 1054 "../src/user-list.vala"
		_tmp26_ = slick_greeter_get_state (_tmp25_, "last-user");
#line 1054 "../src/user-list.vala"
		last_user = _tmp26_;
#line 1055 "../src/user-list.vala"
		_tmp27_ = slick_greeter_singleton;
#line 1055 "../src/user-list.vala"
		_tmp28_ = slick_greeter_select_user_hint (_tmp27_);
#line 1055 "../src/user-list.vala"
		_tmp29_ = _tmp28_;
#line 1055 "../src/user-list.vala"
		_tmp30_ = _tmp29_ != NULL;
#line 1055 "../src/user-list.vala"
		_g_free0 (_tmp29_);
#line 1055 "../src/user-list.vala"
		if (_tmp30_) {
#line 7185 "user-list.c"
			SlickGreeter* _tmp31_;
			gchar* _tmp32_;
			gchar* _tmp33_;
#line 1056 "../src/user-list.vala"
			_tmp31_ = slick_greeter_singleton;
#line 1056 "../src/user-list.vala"
			_tmp32_ = slick_greeter_select_user_hint (_tmp31_);
#line 1056 "../src/user-list.vala"
			_tmp33_ = _tmp32_;
#line 1056 "../src/user-list.vala"
			greeter_list_set_active_entry ((GreeterList*) self, _tmp33_);
#line 1056 "../src/user-list.vala"
			_g_free0 (_tmp33_);
#line 7199 "user-list.c"
		} else {
			const gchar* _tmp34_;
#line 1057 "../src/user-list.vala"
			_tmp34_ = last_user;
#line 1057 "../src/user-list.vala"
			if (_tmp34_ != NULL) {
#line 7206 "user-list.c"
				const gchar* _tmp35_;
#line 1058 "../src/user-list.vala"
				_tmp35_ = last_user;
#line 1058 "../src/user-list.vala"
				greeter_list_set_active_entry ((GreeterList*) self, _tmp35_);
#line 7212 "user-list.c"
			}
		}
#line 1017 "../src/user-list.vala"
		_g_free0 (last_user);
#line 1017 "../src/user-list.vala"
		_g_free0 (realname);
#line 1017 "../src/user-list.vala"
		_g_free0 (username);
#line 7221 "user-list.c"
	}
}

static void
user_list_user_added_cb (UserList* self,
                         LightDMUser* user)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	const gchar* _tmp13_;
	const gchar* _tmp14_;
	gchar* label = NULL;
	const gchar* _tmp15_;
	const gchar* _tmp16_;
	gchar* _tmp17_;
	const gchar* _tmp18_;
	const gchar* _tmp19_;
	const gchar* _tmp23_;
	const gchar* _tmp24_;
	const gchar* _tmp25_;
	const gchar* _tmp26_;
	const gchar* _tmp27_;
	gboolean _tmp28_;
	gboolean _tmp29_;
	gboolean _tmp30_;
	gboolean _tmp31_;
	const gchar* _tmp32_;
	const gchar* _tmp33_;
	UserPromptBox* e = NULL;
	const gchar* _tmp34_;
	const gchar* _tmp35_;
	PromptBox* _tmp36_;
	UserPromptBox* _tmp37_;
	UserPromptBox* _tmp38_;
#line 1062 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 1062 "../src/user-list.vala"
	g_return_if_fail (user != NULL);
#line 1064 "../src/user-list.vala"
	_tmp0_ = lightdm_user_get_name (user);
#line 1064 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 1064 "../src/user-list.vala"
	_tmp2_ = lightdm_user_get_real_name (user);
#line 1064 "../src/user-list.vala"
	_tmp3_ = _tmp2_;
#line 1064 "../src/user-list.vala"
	g_debug ("user-list.vala:1064: Adding/updating user %s (%s)", _tmp1_, _tmp3_);
#line 1066 "../src/user-list.vala"
	_tmp4_ = user_list_get_show_hidden_users (self);
#line 1066 "../src/user-list.vala"
	_tmp5_ = _tmp4_;
#line 1066 "../src/user-list.vala"
	if (!_tmp5_) {
#line 7280 "user-list.c"
		gchar** hidden_users = NULL;
		gint _tmp6_ = 0;
		gchar** _tmp7_;
		gint hidden_users_length1;
		gint _hidden_users_size_;
		gchar** _tmp8_;
		gint _tmp8__length1;
#line 1068 "../src/user-list.vala"
		_tmp7_ = ug_settings_get_strv (UG_SETTINGS_KEY_HIDDEN_USERS, &_tmp6_);
#line 1068 "../src/user-list.vala"
		hidden_users = _tmp7_;
#line 1068 "../src/user-list.vala"
		hidden_users_length1 = _tmp6_;
#line 1068 "../src/user-list.vala"
		_hidden_users_size_ = hidden_users_length1;
#line 1069 "../src/user-list.vala"
		_tmp8_ = hidden_users;
#line 1069 "../src/user-list.vala"
		_tmp8__length1 = hidden_users_length1;
#line 7300 "user-list.c"
		{
			gchar** username_collection = NULL;
			gint username_collection_length1 = 0;
			gint _username_collection_size_ = 0;
			gint username_it = 0;
#line 1069 "../src/user-list.vala"
			username_collection = _tmp8_;
#line 1069 "../src/user-list.vala"
			username_collection_length1 = _tmp8__length1;
#line 1069 "../src/user-list.vala"
			for (username_it = 0; username_it < username_collection_length1; username_it = username_it + 1) {
#line 7312 "user-list.c"
				gchar* _tmp9_;
				gchar* username = NULL;
#line 1069 "../src/user-list.vala"
				_tmp9_ = g_strdup (username_collection[username_it]);
#line 1069 "../src/user-list.vala"
				username = _tmp9_;
#line 7319 "user-list.c"
				{
					const gchar* _tmp10_;
					const gchar* _tmp11_;
					const gchar* _tmp12_;
#line 1070 "../src/user-list.vala"
					_tmp10_ = username;
#line 1070 "../src/user-list.vala"
					_tmp11_ = lightdm_user_get_name (user);
#line 1070 "../src/user-list.vala"
					_tmp12_ = _tmp11_;
#line 1070 "../src/user-list.vala"
					if (g_strcmp0 (_tmp10_, _tmp12_) == 0) {
#line 1071 "../src/user-list.vala"
						_g_free0 (username);
#line 1071 "../src/user-list.vala"
						hidden_users = (_vala_array_free (hidden_users, hidden_users_length1, (GDestroyNotify) g_free), NULL);
#line 1071 "../src/user-list.vala"
						return;
#line 7338 "user-list.c"
					}
#line 1069 "../src/user-list.vala"
					_g_free0 (username);
#line 7342 "user-list.c"
				}
			}
		}
#line 1066 "../src/user-list.vala"
		hidden_users = (_vala_array_free (hidden_users, hidden_users_length1, (GDestroyNotify) g_free), NULL);
#line 7348 "user-list.c"
	}
#line 1074 "../src/user-list.vala"
	_tmp13_ = lightdm_user_get_name (user);
#line 1074 "../src/user-list.vala"
	_tmp14_ = _tmp13_;
#line 1074 "../src/user-list.vala"
	if (!user_list_filter_group (self, _tmp14_)) {
#line 1075 "../src/user-list.vala"
		return;
#line 7358 "user-list.c"
	}
#line 1077 "../src/user-list.vala"
	_tmp15_ = lightdm_user_get_real_name (user);
#line 1077 "../src/user-list.vala"
	_tmp16_ = _tmp15_;
#line 1077 "../src/user-list.vala"
	_tmp17_ = g_strdup (_tmp16_);
#line 1077 "../src/user-list.vala"
	label = _tmp17_;
#line 1078 "../src/user-list.vala"
	_tmp18_ = lightdm_user_get_real_name (user);
#line 1078 "../src/user-list.vala"
	_tmp19_ = _tmp18_;
#line 1078 "../src/user-list.vala"
	if (g_strcmp0 (_tmp19_, "") == 0) {
#line 7374 "user-list.c"
		const gchar* _tmp20_;
		const gchar* _tmp21_;
		gchar* _tmp22_;
#line 1079 "../src/user-list.vala"
		_tmp20_ = lightdm_user_get_name (user);
#line 1079 "../src/user-list.vala"
		_tmp21_ = _tmp20_;
#line 1079 "../src/user-list.vala"
		_tmp22_ = g_strdup (_tmp21_);
#line 1079 "../src/user-list.vala"
		_g_free0 (label);
#line 1079 "../src/user-list.vala"
		label = _tmp22_;
#line 7388 "user-list.c"
	}
#line 1081 "../src/user-list.vala"
	_tmp23_ = lightdm_user_get_name (user);
#line 1081 "../src/user-list.vala"
	_tmp24_ = _tmp23_;
#line 1081 "../src/user-list.vala"
	_tmp25_ = label;
#line 1081 "../src/user-list.vala"
	_tmp26_ = lightdm_user_get_background (user);
#line 1081 "../src/user-list.vala"
	_tmp27_ = _tmp26_;
#line 1081 "../src/user-list.vala"
	_tmp28_ = lightdm_user_get_logged_in (user);
#line 1081 "../src/user-list.vala"
	_tmp29_ = _tmp28_;
#line 1081 "../src/user-list.vala"
	_tmp30_ = lightdm_user_get_has_messages (user);
#line 1081 "../src/user-list.vala"
	_tmp31_ = _tmp30_;
#line 1081 "../src/user-list.vala"
	_tmp32_ = lightdm_user_get_session (user);
#line 1081 "../src/user-list.vala"
	_tmp33_ = _tmp32_;
#line 1081 "../src/user-list.vala"
	user_list_add_user (self, _tmp24_, _tmp25_, _tmp27_, _tmp29_, _tmp31_, _tmp33_);
#line 1084 "../src/user-list.vala"
	_tmp34_ = lightdm_user_get_name (user);
#line 1084 "../src/user-list.vala"
	_tmp35_ = _tmp34_;
#line 1084 "../src/user-list.vala"
	_tmp36_ = greeter_list_find_entry ((GreeterList*) self, _tmp35_);
#line 1084 "../src/user-list.vala"
	_tmp37_ = IS_USER_PROMPT_BOX (_tmp36_) ? ((UserPromptBox*) _tmp36_) : NULL;
#line 1084 "../src/user-list.vala"
	if (_tmp37_ == NULL) {
#line 1084 "../src/user-list.vala"
		_g_object_unref0 (_tmp36_);
#line 7426 "user-list.c"
	}
#line 1084 "../src/user-list.vala"
	e = _tmp37_;
#line 1085 "../src/user-list.vala"
	_tmp38_ = e;
#line 1085 "../src/user-list.vala"
	if (_tmp38_ != NULL) {
#line 7434 "user-list.c"
		UserPromptBox* _tmp39_;
		const gchar* _tmp40_;
		const gchar* _tmp41_;
#line 1087 "../src/user-list.vala"
		_tmp39_ = e;
#line 1087 "../src/user-list.vala"
		_tmp40_ = lightdm_user_get_name (user);
#line 1087 "../src/user-list.vala"
		_tmp41_ = _tmp40_;
#line 1087 "../src/user-list.vala"
		user_prompt_box_set_username (_tmp39_, _tmp41_);
#line 7446 "user-list.c"
	}
#line 1062 "../src/user-list.vala"
	_g_object_unref0 (e);
#line 1062 "../src/user-list.vala"
	_g_free0 (label);
#line 7452 "user-list.c"
}

static gboolean
user_list_filter_group (UserList* self,
                        const gchar* user_name)
{
	gchar** group_filter = NULL;
	gint _tmp0_ = 0;
	gchar** _tmp1_;
	gint group_filter_length1;
	gint _group_filter_size_;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gchar** _tmp3_;
	gint _tmp3__length1;
	gboolean result;
#line 1091 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1091 "../src/user-list.vala"
	g_return_val_if_fail (user_name != NULL, FALSE);
#line 1093 "../src/user-list.vala"
	_tmp1_ = ug_settings_get_strv (UG_SETTINGS_KEY_GROUP_FILTER, &_tmp0_);
#line 1093 "../src/user-list.vala"
	group_filter = _tmp1_;
#line 1093 "../src/user-list.vala"
	group_filter_length1 = _tmp0_;
#line 1093 "../src/user-list.vala"
	_group_filter_size_ = group_filter_length1;
#line 1096 "../src/user-list.vala"
	_tmp2_ = group_filter;
#line 1096 "../src/user-list.vala"
	_tmp2__length1 = group_filter_length1;
#line 1096 "../src/user-list.vala"
	if (_tmp2__length1 == 0) {
#line 1097 "../src/user-list.vala"
		result = TRUE;
#line 1097 "../src/user-list.vala"
		group_filter = (_vala_array_free (group_filter, group_filter_length1, (GDestroyNotify) g_free), NULL);
#line 1097 "../src/user-list.vala"
		return result;
#line 7493 "user-list.c"
	}
#line 1099 "../src/user-list.vala"
	_tmp3_ = group_filter;
#line 1099 "../src/user-list.vala"
	_tmp3__length1 = group_filter_length1;
#line 7499 "user-list.c"
	{
		gchar** group_name_collection = NULL;
		gint group_name_collection_length1 = 0;
		gint _group_name_collection_size_ = 0;
		gint group_name_it = 0;
#line 1099 "../src/user-list.vala"
		group_name_collection = _tmp3_;
#line 1099 "../src/user-list.vala"
		group_name_collection_length1 = _tmp3__length1;
#line 1099 "../src/user-list.vala"
		for (group_name_it = 0; group_name_it < group_name_collection_length1; group_name_it = group_name_it + 1) {
#line 7511 "user-list.c"
			gchar* _tmp4_;
			gchar* group_name = NULL;
#line 1099 "../src/user-list.vala"
			_tmp4_ = g_strdup (group_name_collection[group_name_it]);
#line 1099 "../src/user-list.vala"
			group_name = _tmp4_;
#line 7518 "user-list.c"
			{
				const gchar* _tmp5_;
#line 1100 "../src/user-list.vala"
				_tmp5_ = group_name;
#line 1100 "../src/user-list.vala"
				if (user_list_in_group (self, _tmp5_, user_name)) {
#line 1101 "../src/user-list.vala"
					result = TRUE;
#line 1101 "../src/user-list.vala"
					_g_free0 (group_name);
#line 1101 "../src/user-list.vala"
					group_filter = (_vala_array_free (group_filter, group_filter_length1, (GDestroyNotify) g_free), NULL);
#line 1101 "../src/user-list.vala"
					return result;
#line 7533 "user-list.c"
				}
#line 1099 "../src/user-list.vala"
				_g_free0 (group_name);
#line 7537 "user-list.c"
			}
		}
	}
#line 1103 "../src/user-list.vala"
	result = FALSE;
#line 1103 "../src/user-list.vala"
	group_filter = (_vala_array_free (group_filter, group_filter_length1, (GDestroyNotify) g_free), NULL);
#line 1103 "../src/user-list.vala"
	return result;
#line 7547 "user-list.c"
}

static gboolean
user_list_in_group (UserList* self,
                    const gchar* group_name,
                    const gchar* user_name)
{
	struct group* group = NULL;
	struct group* _tmp0_;
	struct group* _tmp1_;
	struct group* _tmp2_;
	gchar** _tmp3_;
	gint _tmp3__length1;
	gboolean result;
#line 1106 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1106 "../src/user-list.vala"
	g_return_val_if_fail (group_name != NULL, FALSE);
#line 1106 "../src/user-list.vala"
	g_return_val_if_fail (user_name != NULL, FALSE);
#line 1108 "../src/user-list.vala"
	_tmp0_ = getgrnam (group_name);
#line 1108 "../src/user-list.vala"
	group = _tmp0_;
#line 1109 "../src/user-list.vala"
	_tmp1_ = group;
#line 1109 "../src/user-list.vala"
	if (_tmp1_ == NULL) {
#line 1110 "../src/user-list.vala"
		result = FALSE;
#line 1110 "../src/user-list.vala"
		return result;
#line 7580 "user-list.c"
	}
#line 1112 "../src/user-list.vala"
	_tmp2_ = group;
#line 1112 "../src/user-list.vala"
	_tmp3_ = _tmp2_->gr_mem;
#line 1112 "../src/user-list.vala"
	_tmp3__length1 = _vala_array_length (_tmp2_->gr_mem);
#line 7588 "user-list.c"
	{
		gchar** name_collection = NULL;
		gint name_collection_length1 = 0;
		gint _name_collection_size_ = 0;
		gint name_it = 0;
#line 1112 "../src/user-list.vala"
		name_collection = _tmp3_;
#line 1112 "../src/user-list.vala"
		name_collection_length1 = _tmp3__length1;
#line 1112 "../src/user-list.vala"
		for (name_it = 0; name_it < name_collection_length1; name_it = name_it + 1) {
#line 7600 "user-list.c"
			gchar* _tmp4_;
			gchar* name = NULL;
#line 1112 "../src/user-list.vala"
			_tmp4_ = g_strdup (name_collection[name_it]);
#line 1112 "../src/user-list.vala"
			name = _tmp4_;
#line 7607 "user-list.c"
			{
				const gchar* _tmp5_;
#line 1113 "../src/user-list.vala"
				_tmp5_ = name;
#line 1113 "../src/user-list.vala"
				if (g_strcmp0 (_tmp5_, user_name) == 0) {
#line 1114 "../src/user-list.vala"
					result = TRUE;
#line 1114 "../src/user-list.vala"
					_g_free0 (name);
#line 1114 "../src/user-list.vala"
					return result;
#line 7620 "user-list.c"
				}
#line 1112 "../src/user-list.vala"
				_g_free0 (name);
#line 7624 "user-list.c"
			}
		}
	}
#line 1116 "../src/user-list.vala"
	result = FALSE;
#line 1116 "../src/user-list.vala"
	return result;
#line 7632 "user-list.c"
}

static void
user_list_user_removed_cb (UserList* self,
                           LightDMUser* user)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
#line 1119 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 1119 "../src/user-list.vala"
	g_return_if_fail (user != NULL);
#line 1121 "../src/user-list.vala"
	_tmp0_ = lightdm_user_get_name (user);
#line 1121 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 1121 "../src/user-list.vala"
	g_debug ("user-list.vala:1121: Removing user %s", _tmp1_);
#line 1122 "../src/user-list.vala"
	_tmp2_ = lightdm_user_get_name (user);
#line 1122 "../src/user-list.vala"
	_tmp3_ = _tmp2_;
#line 1122 "../src/user-list.vala"
	greeter_list_remove_entry ((GreeterList*) self, _tmp3_);
#line 7659 "user-list.c"
}

static void
user_list_real_show_prompt_cb (GreeterList* base,
                               const gchar* text,
                               LightDMPromptType type)
{
	UserList * self;
	PromptBox* _tmp0_;
	PromptBox* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
#line 1125 "../src/user-list.vala"
	self = (UserList*) base;
#line 1125 "../src/user-list.vala"
	g_return_if_fail (text != NULL);
#line 1127 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 1127 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 1127 "../src/user-list.vala"
	_tmp2_ = prompt_box_get_id (_tmp1_);
#line 1127 "../src/user-list.vala"
	_tmp3_ = _tmp2_;
#line 1127 "../src/user-list.vala"
	if (g_str_has_prefix (_tmp3_, "*remote_login")) {
#line 1129 "../src/user-list.vala"
		if (g_strcmp0 (text, "remote login:") == 0) {
#line 7688 "user-list.c"
			GtkEntry* field = NULL;
			GHashTable* _tmp4_;
			gconstpointer _tmp5_;
			GtkWidget* _tmp6_;
			GtkEntry* _tmp7_;
			const gchar* _tmp8_ = NULL;
			GtkEntry* _tmp9_;
			gchar* answer = NULL;
			gchar* _tmp13_;
			SlickGreeter* _tmp14_;
			const gchar* _tmp15_;
#line 1131 "../src/user-list.vala"
			_tmp4_ = self->priv->current_remote_fields;
#line 1131 "../src/user-list.vala"
			_tmp5_ = g_hash_table_lookup (_tmp4_, "username");
#line 1131 "../src/user-list.vala"
			_tmp6_ = (GtkWidget*) _tmp5_;
#line 1131 "../src/user-list.vala"
			_tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp6_) : NULL);
#line 1131 "../src/user-list.vala"
			field = _tmp7_;
#line 1132 "../src/user-list.vala"
			_tmp9_ = field;
#line 1132 "../src/user-list.vala"
			if (_tmp9_ != NULL) {
#line 7714 "user-list.c"
				GtkEntry* _tmp10_;
				const gchar* _tmp11_;
				const gchar* _tmp12_;
#line 1132 "../src/user-list.vala"
				_tmp10_ = field;
#line 1132 "../src/user-list.vala"
				_tmp11_ = gtk_entry_get_text (_tmp10_);
#line 1132 "../src/user-list.vala"
				_tmp12_ = _tmp11_;
#line 1132 "../src/user-list.vala"
				_tmp8_ = _tmp12_;
#line 7726 "user-list.c"
			} else {
#line 1132 "../src/user-list.vala"
				_tmp8_ = "";
#line 7730 "user-list.c"
			}
#line 1132 "../src/user-list.vala"
			_tmp13_ = g_strdup (_tmp8_);
#line 1132 "../src/user-list.vala"
			answer = _tmp13_;
#line 1133 "../src/user-list.vala"
			_tmp14_ = slick_greeter_singleton;
#line 1133 "../src/user-list.vala"
			_tmp15_ = answer;
#line 1133 "../src/user-list.vala"
			slick_greeter_respond (_tmp14_, _tmp15_);
#line 1129 "../src/user-list.vala"
			_g_free0 (answer);
#line 1129 "../src/user-list.vala"
			_g_object_unref0 (field);
#line 7746 "user-list.c"
		} else {
#line 1135 "../src/user-list.vala"
			if (g_strcmp0 (text, "password:") == 0) {
#line 7750 "user-list.c"
				GtkEntry* field = NULL;
				GHashTable* _tmp16_;
				gconstpointer _tmp17_;
				GtkWidget* _tmp18_;
				GtkEntry* _tmp19_;
				const gchar* _tmp20_ = NULL;
				GtkEntry* _tmp21_;
				gchar* answer = NULL;
				gchar* _tmp25_;
				SlickGreeter* _tmp26_;
				const gchar* _tmp27_;
#line 1137 "../src/user-list.vala"
				_tmp16_ = self->priv->current_remote_fields;
#line 1137 "../src/user-list.vala"
				_tmp17_ = g_hash_table_lookup (_tmp16_, "password");
#line 1137 "../src/user-list.vala"
				_tmp18_ = (GtkWidget*) _tmp17_;
#line 1137 "../src/user-list.vala"
				_tmp19_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp18_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp18_) : NULL);
#line 1137 "../src/user-list.vala"
				field = _tmp19_;
#line 1138 "../src/user-list.vala"
				_tmp21_ = field;
#line 1138 "../src/user-list.vala"
				if (_tmp21_ != NULL) {
#line 7776 "user-list.c"
					GtkEntry* _tmp22_;
					const gchar* _tmp23_;
					const gchar* _tmp24_;
#line 1138 "../src/user-list.vala"
					_tmp22_ = field;
#line 1138 "../src/user-list.vala"
					_tmp23_ = gtk_entry_get_text (_tmp22_);
#line 1138 "../src/user-list.vala"
					_tmp24_ = _tmp23_;
#line 1138 "../src/user-list.vala"
					_tmp20_ = _tmp24_;
#line 7788 "user-list.c"
				} else {
#line 1138 "../src/user-list.vala"
					_tmp20_ = "";
#line 7792 "user-list.c"
				}
#line 1138 "../src/user-list.vala"
				_tmp25_ = g_strdup (_tmp20_);
#line 1138 "../src/user-list.vala"
				answer = _tmp25_;
#line 1139 "../src/user-list.vala"
				_tmp26_ = slick_greeter_singleton;
#line 1139 "../src/user-list.vala"
				_tmp27_ = answer;
#line 1139 "../src/user-list.vala"
				slick_greeter_respond (_tmp26_, _tmp27_);
#line 1135 "../src/user-list.vala"
				_g_free0 (answer);
#line 1135 "../src/user-list.vala"
				_g_object_unref0 (field);
#line 7808 "user-list.c"
			} else {
#line 1141 "../src/user-list.vala"
				if (g_strcmp0 (text, "remote host:") == 0) {
#line 7812 "user-list.c"
					gchar* answer = NULL;
					PromptBox* _tmp28_;
					PromptBox* _tmp29_;
					const gchar* _tmp30_;
					const gchar* _tmp31_;
					gchar* _tmp32_;
					SlickGreeter* _tmp33_;
					const gchar* _tmp34_;
#line 1143 "../src/user-list.vala"
					_tmp28_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 1143 "../src/user-list.vala"
					_tmp29_ = _tmp28_;
#line 1143 "../src/user-list.vala"
					_tmp30_ = prompt_box_get_id (_tmp29_);
#line 1143 "../src/user-list.vala"
					_tmp31_ = _tmp30_;
#line 1143 "../src/user-list.vala"
					_tmp32_ = user_list_url_from_remote_loding_server_list_name (self, _tmp31_);
#line 1143 "../src/user-list.vala"
					answer = _tmp32_;
#line 1144 "../src/user-list.vala"
					_tmp33_ = slick_greeter_singleton;
#line 1144 "../src/user-list.vala"
					_tmp34_ = answer;
#line 1144 "../src/user-list.vala"
					slick_greeter_respond (_tmp33_, _tmp34_);
#line 1141 "../src/user-list.vala"
					_g_free0 (answer);
#line 7841 "user-list.c"
				} else {
#line 1146 "../src/user-list.vala"
					if (g_strcmp0 (text, "domain:") == 0) {
#line 7845 "user-list.c"
						GtkEntry* field = NULL;
						GHashTable* _tmp35_;
						gconstpointer _tmp36_;
						GtkWidget* _tmp37_;
						GtkEntry* _tmp38_;
						const gchar* _tmp39_ = NULL;
						GtkEntry* _tmp40_;
						gchar* answer = NULL;
						gchar* _tmp44_;
						SlickGreeter* _tmp45_;
						const gchar* _tmp46_;
#line 1148 "../src/user-list.vala"
						_tmp35_ = self->priv->current_remote_fields;
#line 1148 "../src/user-list.vala"
						_tmp36_ = g_hash_table_lookup (_tmp35_, "domain");
#line 1148 "../src/user-list.vala"
						_tmp37_ = (GtkWidget*) _tmp36_;
#line 1148 "../src/user-list.vala"
						_tmp38_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp37_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp37_) : NULL);
#line 1148 "../src/user-list.vala"
						field = _tmp38_;
#line 1149 "../src/user-list.vala"
						_tmp40_ = field;
#line 1149 "../src/user-list.vala"
						if (_tmp40_ != NULL) {
#line 7871 "user-list.c"
							GtkEntry* _tmp41_;
							const gchar* _tmp42_;
							const gchar* _tmp43_;
#line 1149 "../src/user-list.vala"
							_tmp41_ = field;
#line 1149 "../src/user-list.vala"
							_tmp42_ = gtk_entry_get_text (_tmp41_);
#line 1149 "../src/user-list.vala"
							_tmp43_ = _tmp42_;
#line 1149 "../src/user-list.vala"
							_tmp39_ = _tmp43_;
#line 7883 "user-list.c"
						} else {
#line 1149 "../src/user-list.vala"
							_tmp39_ = "";
#line 7887 "user-list.c"
						}
#line 1149 "../src/user-list.vala"
						_tmp44_ = g_strdup (_tmp39_);
#line 1149 "../src/user-list.vala"
						answer = _tmp44_;
#line 1150 "../src/user-list.vala"
						_tmp45_ = slick_greeter_singleton;
#line 1150 "../src/user-list.vala"
						_tmp46_ = answer;
#line 1150 "../src/user-list.vala"
						slick_greeter_respond (_tmp45_, _tmp46_);
#line 1146 "../src/user-list.vala"
						_g_free0 (answer);
#line 1146 "../src/user-list.vala"
						_g_object_unref0 (field);
#line 7903 "user-list.c"
					}
				}
			}
		}
	} else {
#line 1154 "../src/user-list.vala"
		GREETER_LIST_CLASS (user_list_parent_class)->show_prompt_cb (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_GREETER_LIST, GreeterList), text, type);
#line 7911 "user-list.c"
	}
}

static gboolean
_user_list_test_key_press_cb_gtk_widget_key_press_event (GtkWidget* _sender,
                                                         GdkEventKey* event,
                                                         gpointer self)
{
	gboolean result;
	result = user_list_test_key_press_cb ((UserList*) self, event);
#line 1238 "../src/user-list.vala"
	return result;
#line 7924 "user-list.c"
}

static void
_vala_RemoteServerField_array_free (RemoteServerField * array,
                                    gssize array_length)
{
#line 1249 "../src/user-list.vala"
	if (array != NULL) {
#line 7933 "user-list.c"
		gssize i;
#line 1249 "../src/user-list.vala"
		for (i = 0; i < array_length; i = i + 1) {
#line 1249 "../src/user-list.vala"
			remote_server_field_destroy (&array[i]);
#line 7939 "user-list.c"
		}
	}
#line 1249 "../src/user-list.vala"
	g_free (array);
#line 7944 "user-list.c"
}

static void
_vala_array_add2 (RemoteServer* * array,
                  gint* length,
                  gint* size,
                  const RemoteServer* value)
{
#line 1256 "../src/user-list.vala"
	if ((*length) == (*size)) {
#line 1256 "../src/user-list.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 1256 "../src/user-list.vala"
		*array = g_renew (RemoteServer, *array, *size);
#line 7959 "user-list.c"
	}
#line 1256 "../src/user-list.vala"
	(*array)[(*length)++] = *value;
#line 7963 "user-list.c"
}

static gboolean
___lambda49_ (UserList* self)
{
	RemoteServer* test_server_list = NULL;
	RemoteServer* _tmp0_;
	gint test_server_list_length1;
	gint _test_server_list_size_;
	RemoteServer remote_server = {0};
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	RemoteServerField* _tmp4_;
	RemoteServerField field1 = {0};
	gchar* _tmp5_;
	RemoteServerField field2 = {0};
	gchar* _tmp6_;
	RemoteServerField _tmp7_;
	RemoteServerField _tmp8_;
	RemoteServerField _tmp9_ = {0};
	RemoteServerField _tmp10_;
	RemoteServerField _tmp11_;
	RemoteServerField _tmp12_ = {0};
	RemoteServerField* _tmp13_;
	RemoteServer _tmp14_;
	RemoteServer _tmp15_;
	RemoteServer _tmp16_ = {0};
	RemoteServer* _tmp17_;
	gint _tmp17__length1;
	gboolean result;
#line 1243 "../src/user-list.vala"
	_tmp0_ = g_new0 (RemoteServer, 0);
#line 1243 "../src/user-list.vala"
	test_server_list = _tmp0_;
#line 1243 "../src/user-list.vala"
	test_server_list_length1 = 0;
#line 1243 "../src/user-list.vala"
	_test_server_list_size_ = test_server_list_length1;
#line 1244 "../src/user-list.vala"
	memset (&remote_server, 0, sizeof (RemoteServer));
#line 1245 "../src/user-list.vala"
	_tmp1_ = g_strdup ("uccs");
#line 1245 "../src/user-list.vala"
	_g_free0 (remote_server.type);
#line 1245 "../src/user-list.vala"
	remote_server.type = _tmp1_;
#line 1246 "../src/user-list.vala"
	_tmp2_ = g_strdup ("Remote Login");
#line 1246 "../src/user-list.vala"
	_g_free0 (remote_server.name);
#line 1246 "../src/user-list.vala"
	remote_server.name = _tmp2_;
#line 1247 "../src/user-list.vala"
	_tmp3_ = g_strdup ("http://crazyurl.com");
#line 1247 "../src/user-list.vala"
	_g_free0 (remote_server.url);
#line 1247 "../src/user-list.vala"
	remote_server.url = _tmp3_;
#line 1248 "../src/user-list.vala"
	remote_server.last_used_server = FALSE;
#line 1249 "../src/user-list.vala"
	_tmp4_ = g_new0 (RemoteServerField, 0);
#line 1249 "../src/user-list.vala"
	remote_server.fields = (_vala_RemoteServerField_array_free (remote_server.fields, remote_server.fields_length1), NULL);
#line 1249 "../src/user-list.vala"
	remote_server.fields = _tmp4_;
#line 1249 "../src/user-list.vala"
	remote_server.fields_length1 = 0;
#line 1250 "../src/user-list.vala"
	memset (&field1, 0, sizeof (RemoteServerField));
#line 1251 "../src/user-list.vala"
	_tmp5_ = g_strdup ("email");
#line 1251 "../src/user-list.vala"
	_g_free0 (field1.type);
#line 1251 "../src/user-list.vala"
	field1.type = _tmp5_;
#line 1252 "../src/user-list.vala"
	memset (&field2, 0, sizeof (RemoteServerField));
#line 1253 "../src/user-list.vala"
	_tmp6_ = g_strdup ("password");
#line 1253 "../src/user-list.vala"
	_g_free0 (field2.type);
#line 1253 "../src/user-list.vala"
	field2.type = _tmp6_;
#line 1254 "../src/user-list.vala"
	_tmp7_ = field1;
#line 1254 "../src/user-list.vala"
	_tmp8_ = _tmp7_;
#line 1254 "../src/user-list.vala"
	remote_server_field_copy (&_tmp8_, &_tmp9_);
#line 1254 "../src/user-list.vala"
	_tmp10_ = field2;
#line 1254 "../src/user-list.vala"
	_tmp11_ = _tmp10_;
#line 1254 "../src/user-list.vala"
	remote_server_field_copy (&_tmp11_, &_tmp12_);
#line 1254 "../src/user-list.vala"
	_tmp13_ = g_new0 (RemoteServerField, 2);
#line 1254 "../src/user-list.vala"
	_tmp13_[0] = _tmp9_;
#line 1254 "../src/user-list.vala"
	_tmp13_[1] = _tmp12_;
#line 1254 "../src/user-list.vala"
	remote_server.fields = (_vala_RemoteServerField_array_free (remote_server.fields, remote_server.fields_length1), NULL);
#line 1254 "../src/user-list.vala"
	remote_server.fields = _tmp13_;
#line 1254 "../src/user-list.vala"
	remote_server.fields_length1 = 2;
#line 1256 "../src/user-list.vala"
	_tmp14_ = remote_server;
#line 1256 "../src/user-list.vala"
	_tmp15_ = _tmp14_;
#line 1256 "../src/user-list.vala"
	remote_server_copy (&_tmp15_, &_tmp16_);
#line 1256 "../src/user-list.vala"
	_vala_array_add2 (&test_server_list, &test_server_list_length1, &_test_server_list_size_, &_tmp16_);
#line 1257 "../src/user-list.vala"
	_tmp17_ = test_server_list;
#line 1257 "../src/user-list.vala"
	_tmp17__length1 = test_server_list_length1;
#line 1257 "../src/user-list.vala"
	user_list_set_remote_directory_servers (self, _tmp17_, (gint) _tmp17__length1);
#line 1259 "../src/user-list.vala"
	result = FALSE;
#line 1259 "../src/user-list.vala"
	remote_server_field_destroy (&field2);
#line 1259 "../src/user-list.vala"
	remote_server_field_destroy (&field1);
#line 1259 "../src/user-list.vala"
	remote_server_destroy (&remote_server);
#line 1259 "../src/user-list.vala"
	test_server_list = (_vala_RemoteServer_array_free (test_server_list, test_server_list_length1), NULL);
#line 1259 "../src/user-list.vala"
	return result;
#line 8099 "user-list.c"
}

static gboolean
____lambda49__gsource_func (gpointer self)
{
	gboolean result;
	result = ___lambda49_ ((UserList*) self);
#line 1241 "../src/user-list.vala"
	return result;
#line 8109 "user-list.c"
}

static void
user_list_test_fill_list (UserList* self)
{
	SlickGreeter* _tmp7_;
	SlickGreeter* _tmp9_;
	SlickGreeter* _tmp10_;
	SlickGreeter* _tmp11_;
	gchar* last_user = NULL;
	SlickGreeter* _tmp12_;
	gchar* _tmp13_;
	const gchar* _tmp14_;
	GError* _inner_error0_ = NULL;
#line 1206 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 1208 "../src/user-list.vala"
	(self->priv->test_backgrounds == NULL) ? NULL : (self->priv->test_backgrounds = (_g_list_free__g_free0_ (self->priv->test_backgrounds), NULL));
#line 1208 "../src/user-list.vala"
	self->priv->test_backgrounds = NULL;
#line 8130 "user-list.c"
	{
		GDir* dir = NULL;
		GDir* _tmp0_;
#line 1211 "../src/user-list.vala"
		_tmp0_ = g_dir_open ("/usr/share/backgrounds/", (guint) 0, &_inner_error0_);
#line 1211 "../src/user-list.vala"
		dir = _tmp0_;
#line 1211 "../src/user-list.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1211 "../src/user-list.vala"
			if (_inner_error0_->domain == G_FILE_ERROR) {
#line 8142 "user-list.c"
				goto __catch0_g_file_error;
			}
#line 1211 "../src/user-list.vala"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 1211 "../src/user-list.vala"
			g_clear_error (&_inner_error0_);
#line 1211 "../src/user-list.vala"
			return;
#line 8151 "user-list.c"
		}
#line 1212 "../src/user-list.vala"
		while (TRUE) {
#line 8155 "user-list.c"
			gchar* bg = NULL;
			GDir* _tmp1_;
			const gchar* _tmp2_;
			gchar* _tmp3_;
			const gchar* _tmp4_;
			const gchar* _tmp5_;
			gchar* _tmp6_;
#line 1214 "../src/user-list.vala"
			_tmp1_ = dir;
#line 1214 "../src/user-list.vala"
			_tmp2_ = g_dir_read_name (_tmp1_);
#line 1214 "../src/user-list.vala"
			_tmp3_ = g_strdup (_tmp2_);
#line 1214 "../src/user-list.vala"
			bg = _tmp3_;
#line 1215 "../src/user-list.vala"
			_tmp4_ = bg;
#line 1215 "../src/user-list.vala"
			if (_tmp4_ == NULL) {
#line 1216 "../src/user-list.vala"
				_g_free0 (bg);
#line 1216 "../src/user-list.vala"
				break;
#line 8179 "user-list.c"
			}
#line 1217 "../src/user-list.vala"
			_tmp5_ = bg;
#line 1217 "../src/user-list.vala"
			_tmp6_ = g_strconcat ("/usr/share/backgrounds/", _tmp5_, NULL);
#line 1217 "../src/user-list.vala"
			self->priv->test_backgrounds = g_list_append (self->priv->test_backgrounds, _tmp6_);
#line 1212 "../src/user-list.vala"
			_g_free0 (bg);
#line 8189 "user-list.c"
		}
#line 1209 "../src/user-list.vala"
		_g_dir_close0 (dir);
#line 8193 "user-list.c"
	}
	goto __finally0;
	__catch0_g_file_error:
	{
#line 1209 "../src/user-list.vala"
		g_clear_error (&_inner_error0_);
#line 8200 "user-list.c"
	}
	__finally0:
#line 1209 "../src/user-list.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 1209 "../src/user-list.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 1209 "../src/user-list.vala"
		g_clear_error (&_inner_error0_);
#line 1209 "../src/user-list.vala"
		return;
#line 8211 "user-list.c"
	}
#line 1224 "../src/user-list.vala"
	_tmp7_ = slick_greeter_singleton;
#line 1224 "../src/user-list.vala"
	if (!slick_greeter_hide_users_hint (_tmp7_)) {
#line 1225 "../src/user-list.vala"
		while (TRUE) {
#line 1225 "../src/user-list.vala"
			if (!user_list_add_test_entry (self)) {
#line 1225 "../src/user-list.vala"
				break;
#line 8223 "user-list.c"
			}
		}
	}
#line 1228 "../src/user-list.vala"
	if (self->priv->n_test_entries <= 0) {
#line 8229 "user-list.c"
		gint _tmp8_;
#line 1230 "../src/user-list.vala"
		greeter_list_add_manual_entry ((GreeterList*) self);
#line 1231 "../src/user-list.vala"
		greeter_list_set_active_entry ((GreeterList*) self, "*other");
#line 1232 "../src/user-list.vala"
		_tmp8_ = self->priv->n_test_entries;
#line 1232 "../src/user-list.vala"
		self->priv->n_test_entries = _tmp8_ + 1;
#line 8239 "user-list.c"
	}
#line 1235 "../src/user-list.vala"
	_tmp9_ = slick_greeter_singleton;
#line 1235 "../src/user-list.vala"
	user_list_set_offer_guest (self, slick_greeter_has_guest_account_hint (_tmp9_));
#line 1236 "../src/user-list.vala"
	_tmp10_ = slick_greeter_singleton;
#line 1236 "../src/user-list.vala"
	greeter_list_set_always_show_manual ((GreeterList*) self, slick_greeter_show_manual_login_hint (_tmp10_));
#line 1238 "../src/user-list.vala"
	g_signal_connect_object ((GtkWidget*) self, "key-press-event", (GCallback) _user_list_test_key_press_cb_gtk_widget_key_press_event, self, 0);
#line 1240 "../src/user-list.vala"
	_tmp11_ = slick_greeter_singleton;
#line 1240 "../src/user-list.vala"
	if (slick_greeter_show_remote_login_hint (_tmp11_)) {
#line 1241 "../src/user-list.vala"
		g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 1000, ____lambda49__gsource_func, g_object_ref (self), g_object_unref);
#line 8257 "user-list.c"
	}
#line 1262 "../src/user-list.vala"
	_tmp12_ = slick_greeter_singleton;
#line 1262 "../src/user-list.vala"
	_tmp13_ = slick_greeter_get_state (_tmp12_, "last-user");
#line 1262 "../src/user-list.vala"
	last_user = _tmp13_;
#line 1263 "../src/user-list.vala"
	_tmp14_ = last_user;
#line 1263 "../src/user-list.vala"
	if (_tmp14_ != NULL) {
#line 8269 "user-list.c"
		const gchar* _tmp15_;
#line 1264 "../src/user-list.vala"
		_tmp15_ = last_user;
#line 1264 "../src/user-list.vala"
		greeter_list_set_active_entry ((GreeterList*) self, _tmp15_);
#line 8275 "user-list.c"
	}
#line 1206 "../src/user-list.vala"
	_g_free0 (last_user);
#line 8279 "user-list.c"
}

static void
_vala_array_add3 (RemoteServer* * array,
                  gint* length,
                  gint* size,
                  const RemoteServer* value)
{
#line 1283 "../src/user-list.vala"
	if ((*length) == (*size)) {
#line 1283 "../src/user-list.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 1283 "../src/user-list.vala"
		*array = g_renew (RemoteServer, *array, *size);
#line 8294 "user-list.c"
	}
#line 1283 "../src/user-list.vala"
	(*array)[(*length)++] = *value;
#line 8298 "user-list.c"
}

static void
user_list_test_call_set_remote_directory_servers (UserList* self)
{
	RemoteServer* test_server_list = NULL;
	RemoteServer* _tmp0_;
	gint test_server_list_length1;
	gint _test_server_list_size_;
	RemoteServer remote_server = {0};
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	RemoteServerField* _tmp4_;
	RemoteServerField field1 = {0};
	gchar* _tmp5_;
	RemoteServerField field2 = {0};
	gchar* _tmp6_;
	RemoteServerField _tmp7_;
	RemoteServerField _tmp8_;
	RemoteServerField _tmp9_ = {0};
	RemoteServerField _tmp10_;
	RemoteServerField _tmp11_;
	RemoteServerField _tmp12_ = {0};
	RemoteServerField* _tmp13_;
	RemoteServer _tmp14_;
	RemoteServer _tmp15_;
	RemoteServer _tmp16_ = {0};
	RemoteServer* _tmp17_;
	gint _tmp17__length1;
#line 1268 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 1270 "../src/user-list.vala"
	_tmp0_ = g_new0 (RemoteServer, 0);
#line 1270 "../src/user-list.vala"
	test_server_list = _tmp0_;
#line 1270 "../src/user-list.vala"
	test_server_list_length1 = 0;
#line 1270 "../src/user-list.vala"
	_test_server_list_size_ = test_server_list_length1;
#line 1271 "../src/user-list.vala"
	memset (&remote_server, 0, sizeof (RemoteServer));
#line 1272 "../src/user-list.vala"
	_tmp1_ = g_strdup ("uccs");
#line 1272 "../src/user-list.vala"
	_g_free0 (remote_server.type);
#line 1272 "../src/user-list.vala"
	remote_server.type = _tmp1_;
#line 1273 "../src/user-list.vala"
	_tmp2_ = g_strdup ("Corporate Remote Login");
#line 1273 "../src/user-list.vala"
	_g_free0 (remote_server.name);
#line 1273 "../src/user-list.vala"
	remote_server.name = _tmp2_;
#line 1274 "../src/user-list.vala"
	_tmp3_ = g_strdup ("http://internalcompayserver.com");
#line 1274 "../src/user-list.vala"
	_g_free0 (remote_server.url);
#line 1274 "../src/user-list.vala"
	remote_server.url = _tmp3_;
#line 1275 "../src/user-list.vala"
	remote_server.last_used_server = FALSE;
#line 1276 "../src/user-list.vala"
	_tmp4_ = g_new0 (RemoteServerField, 0);
#line 1276 "../src/user-list.vala"
	remote_server.fields = (_vala_RemoteServerField_array_free (remote_server.fields, remote_server.fields_length1), NULL);
#line 1276 "../src/user-list.vala"
	remote_server.fields = _tmp4_;
#line 1276 "../src/user-list.vala"
	remote_server.fields_length1 = 0;
#line 1277 "../src/user-list.vala"
	memset (&field1, 0, sizeof (RemoteServerField));
#line 1278 "../src/user-list.vala"
	_tmp5_ = g_strdup ("email");
#line 1278 "../src/user-list.vala"
	_g_free0 (field1.type);
#line 1278 "../src/user-list.vala"
	field1.type = _tmp5_;
#line 1279 "../src/user-list.vala"
	memset (&field2, 0, sizeof (RemoteServerField));
#line 1280 "../src/user-list.vala"
	_tmp6_ = g_strdup ("password");
#line 1280 "../src/user-list.vala"
	_g_free0 (field2.type);
#line 1280 "../src/user-list.vala"
	field2.type = _tmp6_;
#line 1281 "../src/user-list.vala"
	_tmp7_ = field1;
#line 1281 "../src/user-list.vala"
	_tmp8_ = _tmp7_;
#line 1281 "../src/user-list.vala"
	remote_server_field_copy (&_tmp8_, &_tmp9_);
#line 1281 "../src/user-list.vala"
	_tmp10_ = field2;
#line 1281 "../src/user-list.vala"
	_tmp11_ = _tmp10_;
#line 1281 "../src/user-list.vala"
	remote_server_field_copy (&_tmp11_, &_tmp12_);
#line 1281 "../src/user-list.vala"
	_tmp13_ = g_new0 (RemoteServerField, 2);
#line 1281 "../src/user-list.vala"
	_tmp13_[0] = _tmp9_;
#line 1281 "../src/user-list.vala"
	_tmp13_[1] = _tmp12_;
#line 1281 "../src/user-list.vala"
	remote_server.fields = (_vala_RemoteServerField_array_free (remote_server.fields, remote_server.fields_length1), NULL);
#line 1281 "../src/user-list.vala"
	remote_server.fields = _tmp13_;
#line 1281 "../src/user-list.vala"
	remote_server.fields_length1 = 2;
#line 1283 "../src/user-list.vala"
	_tmp14_ = remote_server;
#line 1283 "../src/user-list.vala"
	_tmp15_ = _tmp14_;
#line 1283 "../src/user-list.vala"
	remote_server_copy (&_tmp15_, &_tmp16_);
#line 1283 "../src/user-list.vala"
	_vala_array_add3 (&test_server_list, &test_server_list_length1, &_test_server_list_size_, &_tmp16_);
#line 1284 "../src/user-list.vala"
	_tmp17_ = test_server_list;
#line 1284 "../src/user-list.vala"
	_tmp17__length1 = test_server_list_length1;
#line 1284 "../src/user-list.vala"
	user_list_set_remote_directory_servers (self, _tmp17_, (gint) _tmp17__length1);
#line 1268 "../src/user-list.vala"
	remote_server_field_destroy (&field2);
#line 1268 "../src/user-list.vala"
	remote_server_field_destroy (&field1);
#line 1268 "../src/user-list.vala"
	remote_server_destroy (&remote_server);
#line 1268 "../src/user-list.vala"
	test_server_list = (_vala_RemoteServer_array_free (test_server_list, test_server_list_length1), NULL);
#line 8431 "user-list.c"
}

static void
user_list_test_call_remote_login_servers_updated (UserList* self)
{
	RemoteServer* server_list = NULL;
	RemoteServer* _tmp0_;
	gint server_list_length1;
	gint _server_list_size_;
	RemoteServer remote_server1 = {0};
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	RemoteServerField* _tmp4_;
	RemoteServerField field1 = {0};
	gchar* _tmp5_;
	RemoteServerField field2 = {0};
	gchar* _tmp6_;
	RemoteServerField field3 = {0};
	gchar* _tmp7_;
	RemoteServerField _tmp8_;
	RemoteServerField _tmp9_;
	RemoteServerField _tmp10_ = {0};
	RemoteServerField _tmp11_;
	RemoteServerField _tmp12_;
	RemoteServerField _tmp13_ = {0};
	RemoteServerField _tmp14_;
	RemoteServerField _tmp15_;
	RemoteServerField _tmp16_ = {0};
	RemoteServerField* _tmp17_;
	RemoteServer remote_server2 = {0};
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	RemoteServerField* _tmp21_;
	RemoteServerField field21 = {0};
	gchar* _tmp22_;
	RemoteServerField field22 = {0};
	gchar* _tmp23_;
	RemoteServerField _tmp24_;
	RemoteServerField _tmp25_;
	RemoteServerField _tmp26_ = {0};
	RemoteServerField _tmp27_;
	RemoteServerField _tmp28_;
	RemoteServerField _tmp29_ = {0};
	RemoteServerField* _tmp30_;
	gint _tmp31_;
	RemoteServer _tmp32_;
	RemoteServer _tmp33_;
	RemoteServer _tmp34_ = {0};
	RemoteServer _tmp35_;
	RemoteServer _tmp36_;
	RemoteServer _tmp37_ = {0};
	const gchar* _tmp38_;
	const gchar* _tmp39_;
#line 1287 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 1289 "../src/user-list.vala"
	_tmp0_ = g_new0 (RemoteServer, 0);
#line 1289 "../src/user-list.vala"
	server_list = _tmp0_;
#line 1289 "../src/user-list.vala"
	server_list_length1 = 0;
#line 1289 "../src/user-list.vala"
	_server_list_size_ = server_list_length1;
#line 1290 "../src/user-list.vala"
	memset (&remote_server1, 0, sizeof (RemoteServer));
#line 1291 "../src/user-list.vala"
	_tmp1_ = g_strdup ("rdp");
#line 1291 "../src/user-list.vala"
	_g_free0 (remote_server1.type);
#line 1291 "../src/user-list.vala"
	remote_server1.type = _tmp1_;
#line 1292 "../src/user-list.vala"
	_tmp2_ = g_strdup ("Cool RDP server");
#line 1292 "../src/user-list.vala"
	_g_free0 (remote_server1.name);
#line 1292 "../src/user-list.vala"
	remote_server1.name = _tmp2_;
#line 1293 "../src/user-list.vala"
	_tmp3_ = g_strdup ("http://coolrdpserver.com");
#line 1293 "../src/user-list.vala"
	_g_free0 (remote_server1.url);
#line 1293 "../src/user-list.vala"
	remote_server1.url = _tmp3_;
#line 1294 "../src/user-list.vala"
	remote_server1.last_used_server = FALSE;
#line 1295 "../src/user-list.vala"
	_tmp4_ = g_new0 (RemoteServerField, 0);
#line 1295 "../src/user-list.vala"
	remote_server1.fields = (_vala_RemoteServerField_array_free (remote_server1.fields, remote_server1.fields_length1), NULL);
#line 1295 "../src/user-list.vala"
	remote_server1.fields = _tmp4_;
#line 1295 "../src/user-list.vala"
	remote_server1.fields_length1 = 0;
#line 1296 "../src/user-list.vala"
	memset (&field1, 0, sizeof (RemoteServerField));
#line 1297 "../src/user-list.vala"
	_tmp5_ = g_strdup ("username");
#line 1297 "../src/user-list.vala"
	_g_free0 (field1.type);
#line 1297 "../src/user-list.vala"
	field1.type = _tmp5_;
#line 1298 "../src/user-list.vala"
	memset (&field2, 0, sizeof (RemoteServerField));
#line 1299 "../src/user-list.vala"
	_tmp6_ = g_strdup ("password");
#line 1299 "../src/user-list.vala"
	_g_free0 (field2.type);
#line 1299 "../src/user-list.vala"
	field2.type = _tmp6_;
#line 1300 "../src/user-list.vala"
	memset (&field3, 0, sizeof (RemoteServerField));
#line 1301 "../src/user-list.vala"
	_tmp7_ = g_strdup ("domain");
#line 1301 "../src/user-list.vala"
	_g_free0 (field3.type);
#line 1301 "../src/user-list.vala"
	field3.type = _tmp7_;
#line 1302 "../src/user-list.vala"
	_tmp8_ = field1;
#line 1302 "../src/user-list.vala"
	_tmp9_ = _tmp8_;
#line 1302 "../src/user-list.vala"
	remote_server_field_copy (&_tmp9_, &_tmp10_);
#line 1302 "../src/user-list.vala"
	_tmp11_ = field2;
#line 1302 "../src/user-list.vala"
	_tmp12_ = _tmp11_;
#line 1302 "../src/user-list.vala"
	remote_server_field_copy (&_tmp12_, &_tmp13_);
#line 1302 "../src/user-list.vala"
	_tmp14_ = field3;
#line 1302 "../src/user-list.vala"
	_tmp15_ = _tmp14_;
#line 1302 "../src/user-list.vala"
	remote_server_field_copy (&_tmp15_, &_tmp16_);
#line 1302 "../src/user-list.vala"
	_tmp17_ = g_new0 (RemoteServerField, 3);
#line 1302 "../src/user-list.vala"
	_tmp17_[0] = _tmp10_;
#line 1302 "../src/user-list.vala"
	_tmp17_[1] = _tmp13_;
#line 1302 "../src/user-list.vala"
	_tmp17_[2] = _tmp16_;
#line 1302 "../src/user-list.vala"
	remote_server1.fields = (_vala_RemoteServerField_array_free (remote_server1.fields, remote_server1.fields_length1), NULL);
#line 1302 "../src/user-list.vala"
	remote_server1.fields = _tmp17_;
#line 1302 "../src/user-list.vala"
	remote_server1.fields_length1 = 3;
#line 1304 "../src/user-list.vala"
	memset (&remote_server2, 0, sizeof (RemoteServer));
#line 1305 "../src/user-list.vala"
	_tmp18_ = g_strdup ("rdp");
#line 1305 "../src/user-list.vala"
	_g_free0 (remote_server2.type);
#line 1305 "../src/user-list.vala"
	remote_server2.type = _tmp18_;
#line 1306 "../src/user-list.vala"
	_tmp19_ = g_strdup ("MegaCool RDP server");
#line 1306 "../src/user-list.vala"
	_g_free0 (remote_server2.name);
#line 1306 "../src/user-list.vala"
	remote_server2.name = _tmp19_;
#line 1307 "../src/user-list.vala"
	_tmp20_ = g_strdup ("http://megacoolrdpserver.com");
#line 1307 "../src/user-list.vala"
	_g_free0 (remote_server2.url);
#line 1307 "../src/user-list.vala"
	remote_server2.url = _tmp20_;
#line 1308 "../src/user-list.vala"
	remote_server2.last_used_server = FALSE;
#line 1309 "../src/user-list.vala"
	_tmp21_ = g_new0 (RemoteServerField, 0);
#line 1309 "../src/user-list.vala"
	remote_server2.fields = (_vala_RemoteServerField_array_free (remote_server2.fields, remote_server2.fields_length1), NULL);
#line 1309 "../src/user-list.vala"
	remote_server2.fields = _tmp21_;
#line 1309 "../src/user-list.vala"
	remote_server2.fields_length1 = 0;
#line 1310 "../src/user-list.vala"
	memset (&field21, 0, sizeof (RemoteServerField));
#line 1311 "../src/user-list.vala"
	_tmp22_ = g_strdup ("username");
#line 1311 "../src/user-list.vala"
	_g_free0 (field21.type);
#line 1311 "../src/user-list.vala"
	field21.type = _tmp22_;
#line 1312 "../src/user-list.vala"
	memset (&field22, 0, sizeof (RemoteServerField));
#line 1313 "../src/user-list.vala"
	_tmp23_ = g_strdup ("password");
#line 1313 "../src/user-list.vala"
	_g_free0 (field22.type);
#line 1313 "../src/user-list.vala"
	field22.type = _tmp23_;
#line 1314 "../src/user-list.vala"
	_tmp24_ = field21;
#line 1314 "../src/user-list.vala"
	_tmp25_ = _tmp24_;
#line 1314 "../src/user-list.vala"
	remote_server_field_copy (&_tmp25_, &_tmp26_);
#line 1314 "../src/user-list.vala"
	_tmp27_ = field22;
#line 1314 "../src/user-list.vala"
	_tmp28_ = _tmp27_;
#line 1314 "../src/user-list.vala"
	remote_server_field_copy (&_tmp28_, &_tmp29_);
#line 1314 "../src/user-list.vala"
	_tmp30_ = g_new0 (RemoteServerField, 2);
#line 1314 "../src/user-list.vala"
	_tmp30_[0] = _tmp26_;
#line 1314 "../src/user-list.vala"
	_tmp30_[1] = _tmp29_;
#line 1314 "../src/user-list.vala"
	remote_server2.fields = (_vala_RemoteServerField_array_free (remote_server2.fields, remote_server2.fields_length1), NULL);
#line 1314 "../src/user-list.vala"
	remote_server2.fields = _tmp30_;
#line 1314 "../src/user-list.vala"
	remote_server2.fields_length1 = 2;
#line 1316 "../src/user-list.vala"
	_tmp31_ = 2;
#line 1316 "../src/user-list.vala"
	server_list = g_renew (RemoteServer, server_list, 2);
#line 1316 "../src/user-list.vala"
	(_tmp31_ > server_list_length1) ? memset (server_list + server_list_length1, 0, sizeof (RemoteServer) * (_tmp31_ - server_list_length1)) : NULL;
#line 1316 "../src/user-list.vala"
	server_list_length1 = _tmp31_;
#line 1316 "../src/user-list.vala"
	_server_list_size_ = _tmp31_;
#line 1317 "../src/user-list.vala"
	_tmp32_ = remote_server1;
#line 1317 "../src/user-list.vala"
	_tmp33_ = _tmp32_;
#line 1317 "../src/user-list.vala"
	remote_server_copy (&_tmp33_, &_tmp34_);
#line 1317 "../src/user-list.vala"
	remote_server_destroy (&server_list[0]);
#line 1317 "../src/user-list.vala"
	server_list[0] = _tmp34_;
#line 1318 "../src/user-list.vala"
	_tmp35_ = remote_server2;
#line 1318 "../src/user-list.vala"
	_tmp36_ = _tmp35_;
#line 1318 "../src/user-list.vala"
	remote_server_copy (&_tmp36_, &_tmp37_);
#line 1318 "../src/user-list.vala"
	remote_server_destroy (&server_list[1]);
#line 1318 "../src/user-list.vala"
	server_list[1] = _tmp37_;
#line 1320 "../src/user-list.vala"
	_tmp38_ = self->priv->currently_browsing_server_url;
#line 1320 "../src/user-list.vala"
	_tmp39_ = self->priv->currently_browsing_server_email;
#line 1320 "../src/user-list.vala"
	user_list_remote_login_servers_updated (self, _tmp38_, _tmp39_, "", server_list, (gint) server_list_length1);
#line 1287 "../src/user-list.vala"
	remote_server_field_destroy (&field22);
#line 1287 "../src/user-list.vala"
	remote_server_field_destroy (&field21);
#line 1287 "../src/user-list.vala"
	remote_server_destroy (&remote_server2);
#line 1287 "../src/user-list.vala"
	remote_server_field_destroy (&field3);
#line 1287 "../src/user-list.vala"
	remote_server_field_destroy (&field2);
#line 1287 "../src/user-list.vala"
	remote_server_field_destroy (&field1);
#line 1287 "../src/user-list.vala"
	remote_server_destroy (&remote_server1);
#line 1287 "../src/user-list.vala"
	server_list = (_vala_RemoteServer_array_free (server_list, server_list_length1), NULL);
#line 8705 "user-list.c"
}

static void
_g_variant_unref0_ (gpointer var)
{
#line 1356 "../src/user-list.vala"
	(var == NULL) ? NULL : (var = (g_variant_unref (var), NULL));
#line 8713 "user-list.c"
}

static GVariant*
_variant_new1 (gchar** value,
               gint value_length1)
{
	gchar** _tmp37_;
	GVariantBuilder _tmp38_;
	gint _tmp39_;
#line 1357 "../src/user-list.vala"
	_tmp37_ = value;
#line 1357 "../src/user-list.vala"
	g_variant_builder_init (&_tmp38_, G_VARIANT_TYPE ("as"));
#line 1357 "../src/user-list.vala"
	for (_tmp39_ = 0; _tmp39_ < value_length1; _tmp39_++) {
#line 1357 "../src/user-list.vala"
		g_variant_builder_add_value (&_tmp38_, g_variant_new_string (*_tmp37_));
#line 1357 "../src/user-list.vala"
		_tmp37_++;
#line 8733 "user-list.c"
	}
#line 1357 "../src/user-list.vala"
	return g_variant_ref_sink (g_variant_builder_end (&_tmp38_));
#line 8737 "user-list.c"
}

static GVariant*
_variant_new2 (gchar** value,
               gint value_length1)
{
	gchar** _tmp66_;
	GVariantBuilder _tmp67_;
	gint _tmp68_;
#line 1375 "../src/user-list.vala"
	_tmp66_ = value;
#line 1375 "../src/user-list.vala"
	g_variant_builder_init (&_tmp67_, G_VARIANT_TYPE ("as"));
#line 1375 "../src/user-list.vala"
	for (_tmp68_ = 0; _tmp68_ < value_length1; _tmp68_++) {
#line 1375 "../src/user-list.vala"
		g_variant_builder_add_value (&_tmp67_, g_variant_new_string (*_tmp66_));
#line 1375 "../src/user-list.vala"
		_tmp66_++;
#line 8757 "user-list.c"
	}
#line 1375 "../src/user-list.vala"
	return g_variant_ref_sink (g_variant_builder_end (&_tmp67_));
#line 8761 "user-list.c"
}

static GVariant*
_variant_new3 (gboolean value)
{
#line 1376 "../src/user-list.vala"
	return g_variant_ref_sink (g_variant_new_boolean (value));
#line 8769 "user-list.c"
}

static void
user_list_test_fill_remote_login_servers (UserList* self,
                                          RemoteServer** server_list,
                                          gint* server_list_length1)
{
	RemoteServer* _vala_server_list = NULL;
	gint _vala_server_list_length1 = 0;
	gchar** domains = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar** _tmp3_;
	gint domains_length1;
	gint _domains_size_;
	RemoteServer* _tmp4_;
	RemoteServer remote_server1 = {0};
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	RemoteServerField* _tmp8_;
	RemoteServerField field1 = {0};
	gchar* _tmp9_;
	RemoteServerField field2 = {0};
	gchar* _tmp10_;
	RemoteServerField field3 = {0};
	gchar* _tmp11_;
	RemoteServerField _tmp12_;
	RemoteServerField _tmp13_;
	RemoteServerField _tmp14_ = {0};
	RemoteServerField _tmp15_;
	RemoteServerField _tmp16_;
	RemoteServerField _tmp17_ = {0};
	RemoteServerField _tmp18_;
	RemoteServerField _tmp19_;
	RemoteServerField _tmp20_ = {0};
	RemoteServerField* _tmp21_;
	RemoteServer remote_server2 = {0};
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	RemoteServerField* _tmp25_;
	RemoteServerField field21 = {0};
	gchar* _tmp26_;
	GVariant* _tmp27_;
	RemoteServerField field22 = {0};
	gchar* _tmp28_;
	RemoteServerField field23 = {0};
	gchar* _tmp29_;
	GVariant* _tmp30_;
	GHashFunc _tmp31_;
	GEqualFunc _tmp32_;
	GHashTable* _tmp33_;
	RemoteServerField _tmp34_;
	GHashTable* _tmp35_;
	gchar* _tmp36_;
	GVariant* _tmp40_;
	RemoteServerField _tmp41_;
	RemoteServerField _tmp42_;
	RemoteServerField _tmp43_ = {0};
	RemoteServerField _tmp44_;
	RemoteServerField _tmp45_;
	RemoteServerField _tmp46_ = {0};
	RemoteServerField _tmp47_;
	RemoteServerField _tmp48_;
	RemoteServerField _tmp49_ = {0};
	RemoteServerField* _tmp50_;
	RemoteServer remote_server3 = {0};
	gchar* _tmp51_;
	gchar* _tmp52_;
	gchar* _tmp53_;
	RemoteServerField* _tmp54_;
	RemoteServerField field31 = {0};
	gchar* _tmp55_;
	GVariant* _tmp56_;
	RemoteServerField field32 = {0};
	gchar* _tmp57_;
	RemoteServerField field33 = {0};
	gchar* _tmp58_;
	GVariant* _tmp59_;
	GHashFunc _tmp60_;
	GEqualFunc _tmp61_;
	GHashTable* _tmp62_;
	RemoteServerField _tmp63_;
	GHashTable* _tmp64_;
	gchar* _tmp65_;
	GVariant* _tmp69_;
	RemoteServerField _tmp70_;
	GHashTable* _tmp71_;
	gchar* _tmp72_;
	GVariant* _tmp73_;
	RemoteServerField _tmp74_;
	RemoteServerField _tmp75_;
	RemoteServerField _tmp76_ = {0};
	RemoteServerField _tmp77_;
	RemoteServerField _tmp78_;
	RemoteServerField _tmp79_ = {0};
	RemoteServerField _tmp80_;
	RemoteServerField _tmp81_;
	RemoteServerField _tmp82_ = {0};
	RemoteServerField* _tmp83_;
	RemoteServer remote_server4 = {0};
	gchar* _tmp84_;
	gchar* _tmp85_;
	gchar* _tmp86_;
	RemoteServerField* _tmp87_;
	RemoteServerField field41 = {0};
	gchar* _tmp88_;
	RemoteServerField field42 = {0};
	gchar* _tmp89_;
	RemoteServerField field43 = {0};
	gchar* _tmp90_;
	RemoteServerField _tmp91_;
	RemoteServerField _tmp92_;
	RemoteServerField _tmp93_ = {0};
	RemoteServerField _tmp94_;
	RemoteServerField _tmp95_;
	RemoteServerField _tmp96_ = {0};
	RemoteServerField _tmp97_;
	RemoteServerField _tmp98_;
	RemoteServerField _tmp99_ = {0};
	RemoteServerField* _tmp100_;
	gint _tmp101_;
	RemoteServer _tmp102_;
	RemoteServer _tmp103_;
	RemoteServer _tmp104_ = {0};
	RemoteServer _tmp105_;
	RemoteServer _tmp106_;
	RemoteServer _tmp107_ = {0};
	RemoteServer _tmp108_;
	RemoteServer _tmp109_;
	RemoteServer _tmp110_ = {0};
	RemoteServer _tmp111_;
	RemoteServer _tmp112_;
	RemoteServer _tmp113_ = {0};
#line 1323 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 1325 "../src/user-list.vala"
	_tmp0_ = g_strdup ("SCANNERS");
#line 1325 "../src/user-list.vala"
	_tmp1_ = g_strdup ("PRINTERS");
#line 1325 "../src/user-list.vala"
	_tmp2_ = g_strdup ("ROUTERS");
#line 1325 "../src/user-list.vala"
	_tmp3_ = g_new0 (gchar*, 3 + 1);
#line 1325 "../src/user-list.vala"
	_tmp3_[0] = _tmp0_;
#line 1325 "../src/user-list.vala"
	_tmp3_[1] = _tmp1_;
#line 1325 "../src/user-list.vala"
	_tmp3_[2] = _tmp2_;
#line 1325 "../src/user-list.vala"
	domains = _tmp3_;
#line 1325 "../src/user-list.vala"
	domains_length1 = 3;
#line 1325 "../src/user-list.vala"
	_domains_size_ = domains_length1;
#line 1327 "../src/user-list.vala"
	_tmp4_ = g_new0 (RemoteServer, 0);
#line 1327 "../src/user-list.vala"
	_vala_server_list = (_vala_RemoteServer_array_free (_vala_server_list, _vala_server_list_length1), NULL);
#line 1327 "../src/user-list.vala"
	_vala_server_list = _tmp4_;
#line 1327 "../src/user-list.vala"
	_vala_server_list_length1 = 0;
#line 1328 "../src/user-list.vala"
	memset (&remote_server1, 0, sizeof (RemoteServer));
#line 1329 "../src/user-list.vala"
	_tmp5_ = g_strdup ("rdp");
#line 1329 "../src/user-list.vala"
	_g_free0 (remote_server1.type);
#line 1329 "../src/user-list.vala"
	remote_server1.type = _tmp5_;
#line 1330 "../src/user-list.vala"
	_tmp6_ = g_strdup ("Cool RDP server");
#line 1330 "../src/user-list.vala"
	_g_free0 (remote_server1.name);
#line 1330 "../src/user-list.vala"
	remote_server1.name = _tmp6_;
#line 1331 "../src/user-list.vala"
	_tmp7_ = g_strdup ("http://coolrdpserver.com");
#line 1331 "../src/user-list.vala"
	_g_free0 (remote_server1.url);
#line 1331 "../src/user-list.vala"
	remote_server1.url = _tmp7_;
#line 1332 "../src/user-list.vala"
	remote_server1.last_used_server = FALSE;
#line 1333 "../src/user-list.vala"
	_tmp8_ = g_new0 (RemoteServerField, 0);
#line 1333 "../src/user-list.vala"
	remote_server1.fields = (_vala_RemoteServerField_array_free (remote_server1.fields, remote_server1.fields_length1), NULL);
#line 1333 "../src/user-list.vala"
	remote_server1.fields = _tmp8_;
#line 1333 "../src/user-list.vala"
	remote_server1.fields_length1 = 0;
#line 1334 "../src/user-list.vala"
	memset (&field1, 0, sizeof (RemoteServerField));
#line 1335 "../src/user-list.vala"
	_tmp9_ = g_strdup ("username");
#line 1335 "../src/user-list.vala"
	_g_free0 (field1.type);
#line 1335 "../src/user-list.vala"
	field1.type = _tmp9_;
#line 1336 "../src/user-list.vala"
	memset (&field2, 0, sizeof (RemoteServerField));
#line 1337 "../src/user-list.vala"
	_tmp10_ = g_strdup ("password");
#line 1337 "../src/user-list.vala"
	_g_free0 (field2.type);
#line 1337 "../src/user-list.vala"
	field2.type = _tmp10_;
#line 1338 "../src/user-list.vala"
	memset (&field3, 0, sizeof (RemoteServerField));
#line 1339 "../src/user-list.vala"
	_tmp11_ = g_strdup ("domain");
#line 1339 "../src/user-list.vala"
	_g_free0 (field3.type);
#line 1339 "../src/user-list.vala"
	field3.type = _tmp11_;
#line 1340 "../src/user-list.vala"
	_tmp12_ = field1;
#line 1340 "../src/user-list.vala"
	_tmp13_ = _tmp12_;
#line 1340 "../src/user-list.vala"
	remote_server_field_copy (&_tmp13_, &_tmp14_);
#line 1340 "../src/user-list.vala"
	_tmp15_ = field2;
#line 1340 "../src/user-list.vala"
	_tmp16_ = _tmp15_;
#line 1340 "../src/user-list.vala"
	remote_server_field_copy (&_tmp16_, &_tmp17_);
#line 1340 "../src/user-list.vala"
	_tmp18_ = field3;
#line 1340 "../src/user-list.vala"
	_tmp19_ = _tmp18_;
#line 1340 "../src/user-list.vala"
	remote_server_field_copy (&_tmp19_, &_tmp20_);
#line 1340 "../src/user-list.vala"
	_tmp21_ = g_new0 (RemoteServerField, 3);
#line 1340 "../src/user-list.vala"
	_tmp21_[0] = _tmp14_;
#line 1340 "../src/user-list.vala"
	_tmp21_[1] = _tmp17_;
#line 1340 "../src/user-list.vala"
	_tmp21_[2] = _tmp20_;
#line 1340 "../src/user-list.vala"
	remote_server1.fields = (_vala_RemoteServerField_array_free (remote_server1.fields, remote_server1.fields_length1), NULL);
#line 1340 "../src/user-list.vala"
	remote_server1.fields = _tmp21_;
#line 1340 "../src/user-list.vala"
	remote_server1.fields_length1 = 3;
#line 1342 "../src/user-list.vala"
	memset (&remote_server2, 0, sizeof (RemoteServer));
#line 1343 "../src/user-list.vala"
	_tmp22_ = g_strdup ("rdp");
#line 1343 "../src/user-list.vala"
	_g_free0 (remote_server2.type);
#line 1343 "../src/user-list.vala"
	remote_server2.type = _tmp22_;
#line 1344 "../src/user-list.vala"
	_tmp23_ = g_strdup ("RDP server with default username, and editable domain");
#line 1344 "../src/user-list.vala"
	_g_free0 (remote_server2.name);
#line 1344 "../src/user-list.vala"
	remote_server2.name = _tmp23_;
#line 1345 "../src/user-list.vala"
	_tmp24_ = g_strdup ("http://rdpdefaultusername.com");
#line 1345 "../src/user-list.vala"
	_g_free0 (remote_server2.url);
#line 1345 "../src/user-list.vala"
	remote_server2.url = _tmp24_;
#line 1346 "../src/user-list.vala"
	remote_server2.last_used_server = FALSE;
#line 1347 "../src/user-list.vala"
	_tmp25_ = g_new0 (RemoteServerField, 0);
#line 1347 "../src/user-list.vala"
	remote_server2.fields = (_vala_RemoteServerField_array_free (remote_server2.fields, remote_server2.fields_length1), NULL);
#line 1347 "../src/user-list.vala"
	remote_server2.fields = _tmp25_;
#line 1347 "../src/user-list.vala"
	remote_server2.fields_length1 = 0;
#line 1348 "../src/user-list.vala"
	memset (&field21, 0, sizeof (RemoteServerField));
#line 1349 "../src/user-list.vala"
	_tmp26_ = g_strdup ("username");
#line 1349 "../src/user-list.vala"
	_g_free0 (field21.type);
#line 1349 "../src/user-list.vala"
	field21.type = _tmp26_;
#line 1350 "../src/user-list.vala"
	_tmp27_ = g_variant_new_string ("alowl");
#line 1350 "../src/user-list.vala"
	g_variant_ref_sink (_tmp27_);
#line 1350 "../src/user-list.vala"
	_g_variant_unref0 (field21.default_value);
#line 1350 "../src/user-list.vala"
	field21.default_value = _tmp27_;
#line 1351 "../src/user-list.vala"
	memset (&field22, 0, sizeof (RemoteServerField));
#line 1352 "../src/user-list.vala"
	_tmp28_ = g_strdup ("password");
#line 1352 "../src/user-list.vala"
	_g_free0 (field22.type);
#line 1352 "../src/user-list.vala"
	field22.type = _tmp28_;
#line 1353 "../src/user-list.vala"
	memset (&field23, 0, sizeof (RemoteServerField));
#line 1354 "../src/user-list.vala"
	_tmp29_ = g_strdup ("domain");
#line 1354 "../src/user-list.vala"
	_g_free0 (field23.type);
#line 1354 "../src/user-list.vala"
	field23.type = _tmp29_;
#line 1355 "../src/user-list.vala"
	_tmp30_ = g_variant_new_string ("PRINTERS");
#line 1355 "../src/user-list.vala"
	g_variant_ref_sink (_tmp30_);
#line 1355 "../src/user-list.vala"
	_g_variant_unref0 (field23.default_value);
#line 1355 "../src/user-list.vala"
	field23.default_value = _tmp30_;
#line 1356 "../src/user-list.vala"
	_tmp31_ = g_str_hash;
#line 1356 "../src/user-list.vala"
	_tmp32_ = g_str_equal;
#line 1356 "../src/user-list.vala"
	_tmp33_ = g_hash_table_new_full (_tmp31_, _tmp32_, _g_free0_, _g_variant_unref0_);
#line 1356 "../src/user-list.vala"
	_g_hash_table_unref0 (field23.properties);
#line 1356 "../src/user-list.vala"
	field23.properties = _tmp33_;
#line 1357 "../src/user-list.vala"
	_tmp34_ = field23;
#line 1357 "../src/user-list.vala"
	_tmp35_ = _tmp34_.properties;
#line 1357 "../src/user-list.vala"
	_tmp36_ = g_strdup ("domains");
#line 1357 "../src/user-list.vala"
	_tmp40_ = _variant_new1 (domains, domains_length1);
#line 1357 "../src/user-list.vala"
	g_hash_table_insert (_tmp35_, _tmp36_, _tmp40_);
#line 1358 "../src/user-list.vala"
	_tmp41_ = field21;
#line 1358 "../src/user-list.vala"
	_tmp42_ = _tmp41_;
#line 1358 "../src/user-list.vala"
	remote_server_field_copy (&_tmp42_, &_tmp43_);
#line 1358 "../src/user-list.vala"
	_tmp44_ = field22;
#line 1358 "../src/user-list.vala"
	_tmp45_ = _tmp44_;
#line 1358 "../src/user-list.vala"
	remote_server_field_copy (&_tmp45_, &_tmp46_);
#line 1358 "../src/user-list.vala"
	_tmp47_ = field23;
#line 1358 "../src/user-list.vala"
	_tmp48_ = _tmp47_;
#line 1358 "../src/user-list.vala"
	remote_server_field_copy (&_tmp48_, &_tmp49_);
#line 1358 "../src/user-list.vala"
	_tmp50_ = g_new0 (RemoteServerField, 3);
#line 1358 "../src/user-list.vala"
	_tmp50_[0] = _tmp43_;
#line 1358 "../src/user-list.vala"
	_tmp50_[1] = _tmp46_;
#line 1358 "../src/user-list.vala"
	_tmp50_[2] = _tmp49_;
#line 1358 "../src/user-list.vala"
	remote_server2.fields = (_vala_RemoteServerField_array_free (remote_server2.fields, remote_server2.fields_length1), NULL);
#line 1358 "../src/user-list.vala"
	remote_server2.fields = _tmp50_;
#line 1358 "../src/user-list.vala"
	remote_server2.fields_length1 = 3;
#line 1360 "../src/user-list.vala"
	memset (&remote_server3, 0, sizeof (RemoteServer));
#line 1361 "../src/user-list.vala"
	_tmp51_ = g_strdup ("rdp");
#line 1361 "../src/user-list.vala"
	_g_free0 (remote_server3.type);
#line 1361 "../src/user-list.vala"
	remote_server3.type = _tmp51_;
#line 1362 "../src/user-list.vala"
	_tmp52_ = g_strdup ("RDP server with default username, and non editable domain");
#line 1362 "../src/user-list.vala"
	_g_free0 (remote_server3.name);
#line 1362 "../src/user-list.vala"
	remote_server3.name = _tmp52_;
#line 1363 "../src/user-list.vala"
	_tmp53_ = g_strdup ("http://rdpdefaultusername2.com");
#line 1363 "../src/user-list.vala"
	_g_free0 (remote_server3.url);
#line 1363 "../src/user-list.vala"
	remote_server3.url = _tmp53_;
#line 1364 "../src/user-list.vala"
	remote_server3.last_used_server = TRUE;
#line 1365 "../src/user-list.vala"
	_tmp54_ = g_new0 (RemoteServerField, 0);
#line 1365 "../src/user-list.vala"
	remote_server3.fields = (_vala_RemoteServerField_array_free (remote_server3.fields, remote_server3.fields_length1), NULL);
#line 1365 "../src/user-list.vala"
	remote_server3.fields = _tmp54_;
#line 1365 "../src/user-list.vala"
	remote_server3.fields_length1 = 0;
#line 1366 "../src/user-list.vala"
	memset (&field31, 0, sizeof (RemoteServerField));
#line 1367 "../src/user-list.vala"
	_tmp55_ = g_strdup ("username");
#line 1367 "../src/user-list.vala"
	_g_free0 (field31.type);
#line 1367 "../src/user-list.vala"
	field31.type = _tmp55_;
#line 1368 "../src/user-list.vala"
	_tmp56_ = g_variant_new_string ("lwola");
#line 1368 "../src/user-list.vala"
	g_variant_ref_sink (_tmp56_);
#line 1368 "../src/user-list.vala"
	_g_variant_unref0 (field31.default_value);
#line 1368 "../src/user-list.vala"
	field31.default_value = _tmp56_;
#line 1369 "../src/user-list.vala"
	memset (&field32, 0, sizeof (RemoteServerField));
#line 1370 "../src/user-list.vala"
	_tmp57_ = g_strdup ("password");
#line 1370 "../src/user-list.vala"
	_g_free0 (field32.type);
#line 1370 "../src/user-list.vala"
	field32.type = _tmp57_;
#line 1371 "../src/user-list.vala"
	memset (&field33, 0, sizeof (RemoteServerField));
#line 1372 "../src/user-list.vala"
	_tmp58_ = g_strdup ("domain");
#line 1372 "../src/user-list.vala"
	_g_free0 (field33.type);
#line 1372 "../src/user-list.vala"
	field33.type = _tmp58_;
#line 1373 "../src/user-list.vala"
	_tmp59_ = g_variant_new_string ("PRINTERS");
#line 1373 "../src/user-list.vala"
	g_variant_ref_sink (_tmp59_);
#line 1373 "../src/user-list.vala"
	_g_variant_unref0 (field33.default_value);
#line 1373 "../src/user-list.vala"
	field33.default_value = _tmp59_;
#line 1374 "../src/user-list.vala"
	_tmp60_ = g_str_hash;
#line 1374 "../src/user-list.vala"
	_tmp61_ = g_str_equal;
#line 1374 "../src/user-list.vala"
	_tmp62_ = g_hash_table_new_full (_tmp60_, _tmp61_, _g_free0_, _g_variant_unref0_);
#line 1374 "../src/user-list.vala"
	_g_hash_table_unref0 (field33.properties);
#line 1374 "../src/user-list.vala"
	field33.properties = _tmp62_;
#line 1375 "../src/user-list.vala"
	_tmp63_ = field33;
#line 1375 "../src/user-list.vala"
	_tmp64_ = _tmp63_.properties;
#line 1375 "../src/user-list.vala"
	_tmp65_ = g_strdup ("domains");
#line 1375 "../src/user-list.vala"
	_tmp69_ = _variant_new2 (domains, domains_length1);
#line 1375 "../src/user-list.vala"
	g_hash_table_insert (_tmp64_, _tmp65_, _tmp69_);
#line 1376 "../src/user-list.vala"
	_tmp70_ = field33;
#line 1376 "../src/user-list.vala"
	_tmp71_ = _tmp70_.properties;
#line 1376 "../src/user-list.vala"
	_tmp72_ = g_strdup ("read-only");
#line 1376 "../src/user-list.vala"
	_tmp73_ = _variant_new3 (TRUE);
#line 1376 "../src/user-list.vala"
	g_hash_table_insert (_tmp71_, _tmp72_, _tmp73_);
#line 1378 "../src/user-list.vala"
	_tmp74_ = field31;
#line 1378 "../src/user-list.vala"
	_tmp75_ = _tmp74_;
#line 1378 "../src/user-list.vala"
	remote_server_field_copy (&_tmp75_, &_tmp76_);
#line 1378 "../src/user-list.vala"
	_tmp77_ = field32;
#line 1378 "../src/user-list.vala"
	_tmp78_ = _tmp77_;
#line 1378 "../src/user-list.vala"
	remote_server_field_copy (&_tmp78_, &_tmp79_);
#line 1378 "../src/user-list.vala"
	_tmp80_ = field33;
#line 1378 "../src/user-list.vala"
	_tmp81_ = _tmp80_;
#line 1378 "../src/user-list.vala"
	remote_server_field_copy (&_tmp81_, &_tmp82_);
#line 1378 "../src/user-list.vala"
	_tmp83_ = g_new0 (RemoteServerField, 3);
#line 1378 "../src/user-list.vala"
	_tmp83_[0] = _tmp76_;
#line 1378 "../src/user-list.vala"
	_tmp83_[1] = _tmp79_;
#line 1378 "../src/user-list.vala"
	_tmp83_[2] = _tmp82_;
#line 1378 "../src/user-list.vala"
	remote_server3.fields = (_vala_RemoteServerField_array_free (remote_server3.fields, remote_server3.fields_length1), NULL);
#line 1378 "../src/user-list.vala"
	remote_server3.fields = _tmp83_;
#line 1378 "../src/user-list.vala"
	remote_server3.fields_length1 = 3;
#line 1380 "../src/user-list.vala"
	memset (&remote_server4, 0, sizeof (RemoteServer));
#line 1381 "../src/user-list.vala"
	_tmp84_ = g_strdup ("notsupported");
#line 1381 "../src/user-list.vala"
	_g_free0 (remote_server4.type);
#line 1381 "../src/user-list.vala"
	remote_server4.type = _tmp84_;
#line 1382 "../src/user-list.vala"
	_tmp85_ = g_strdup ("Not supported server");
#line 1382 "../src/user-list.vala"
	_g_free0 (remote_server4.name);
#line 1382 "../src/user-list.vala"
	remote_server4.name = _tmp85_;
#line 1383 "../src/user-list.vala"
	_tmp86_ = g_strdup ("http://notsupportedserver.com");
#line 1383 "../src/user-list.vala"
	_g_free0 (remote_server4.url);
#line 1383 "../src/user-list.vala"
	remote_server4.url = _tmp86_;
#line 1384 "../src/user-list.vala"
	_tmp87_ = g_new0 (RemoteServerField, 0);
#line 1384 "../src/user-list.vala"
	remote_server4.fields = (_vala_RemoteServerField_array_free (remote_server4.fields, remote_server4.fields_length1), NULL);
#line 1384 "../src/user-list.vala"
	remote_server4.fields = _tmp87_;
#line 1384 "../src/user-list.vala"
	remote_server4.fields_length1 = 0;
#line 1385 "../src/user-list.vala"
	memset (&field41, 0, sizeof (RemoteServerField));
#line 1386 "../src/user-list.vala"
	_tmp88_ = g_strdup ("username");
#line 1386 "../src/user-list.vala"
	_g_free0 (field41.type);
#line 1386 "../src/user-list.vala"
	field41.type = _tmp88_;
#line 1387 "../src/user-list.vala"
	memset (&field42, 0, sizeof (RemoteServerField));
#line 1388 "../src/user-list.vala"
	_tmp89_ = g_strdup ("password");
#line 1388 "../src/user-list.vala"
	_g_free0 (field42.type);
#line 1388 "../src/user-list.vala"
	field42.type = _tmp89_;
#line 1389 "../src/user-list.vala"
	memset (&field43, 0, sizeof (RemoteServerField));
#line 1390 "../src/user-list.vala"
	_tmp90_ = g_strdup ("domain");
#line 1390 "../src/user-list.vala"
	_g_free0 (field43.type);
#line 1390 "../src/user-list.vala"
	field43.type = _tmp90_;
#line 1392 "../src/user-list.vala"
	_tmp91_ = field41;
#line 1392 "../src/user-list.vala"
	_tmp92_ = _tmp91_;
#line 1392 "../src/user-list.vala"
	remote_server_field_copy (&_tmp92_, &_tmp93_);
#line 1392 "../src/user-list.vala"
	_tmp94_ = field42;
#line 1392 "../src/user-list.vala"
	_tmp95_ = _tmp94_;
#line 1392 "../src/user-list.vala"
	remote_server_field_copy (&_tmp95_, &_tmp96_);
#line 1392 "../src/user-list.vala"
	_tmp97_ = field43;
#line 1392 "../src/user-list.vala"
	_tmp98_ = _tmp97_;
#line 1392 "../src/user-list.vala"
	remote_server_field_copy (&_tmp98_, &_tmp99_);
#line 1392 "../src/user-list.vala"
	_tmp100_ = g_new0 (RemoteServerField, 3);
#line 1392 "../src/user-list.vala"
	_tmp100_[0] = _tmp93_;
#line 1392 "../src/user-list.vala"
	_tmp100_[1] = _tmp96_;
#line 1392 "../src/user-list.vala"
	_tmp100_[2] = _tmp99_;
#line 1392 "../src/user-list.vala"
	remote_server4.fields = (_vala_RemoteServerField_array_free (remote_server4.fields, remote_server4.fields_length1), NULL);
#line 1392 "../src/user-list.vala"
	remote_server4.fields = _tmp100_;
#line 1392 "../src/user-list.vala"
	remote_server4.fields_length1 = 3;
#line 1394 "../src/user-list.vala"
	_tmp101_ = 4;
#line 1394 "../src/user-list.vala"
	_vala_server_list = g_renew (RemoteServer, _vala_server_list, 4);
#line 1394 "../src/user-list.vala"
	(_tmp101_ > _vala_server_list_length1) ? memset (_vala_server_list + _vala_server_list_length1, 0, sizeof (RemoteServer) * (_tmp101_ - _vala_server_list_length1)) : NULL;
#line 1394 "../src/user-list.vala"
	_vala_server_list_length1 = _tmp101_;
#line 1395 "../src/user-list.vala"
	_tmp102_ = remote_server1;
#line 1395 "../src/user-list.vala"
	_tmp103_ = _tmp102_;
#line 1395 "../src/user-list.vala"
	remote_server_copy (&_tmp103_, &_tmp104_);
#line 1395 "../src/user-list.vala"
	remote_server_destroy (&_vala_server_list[0]);
#line 1395 "../src/user-list.vala"
	_vala_server_list[0] = _tmp104_;
#line 1396 "../src/user-list.vala"
	_tmp105_ = remote_server2;
#line 1396 "../src/user-list.vala"
	_tmp106_ = _tmp105_;
#line 1396 "../src/user-list.vala"
	remote_server_copy (&_tmp106_, &_tmp107_);
#line 1396 "../src/user-list.vala"
	remote_server_destroy (&_vala_server_list[1]);
#line 1396 "../src/user-list.vala"
	_vala_server_list[1] = _tmp107_;
#line 1397 "../src/user-list.vala"
	_tmp108_ = remote_server3;
#line 1397 "../src/user-list.vala"
	_tmp109_ = _tmp108_;
#line 1397 "../src/user-list.vala"
	remote_server_copy (&_tmp109_, &_tmp110_);
#line 1397 "../src/user-list.vala"
	remote_server_destroy (&_vala_server_list[2]);
#line 1397 "../src/user-list.vala"
	_vala_server_list[2] = _tmp110_;
#line 1398 "../src/user-list.vala"
	_tmp111_ = remote_server4;
#line 1398 "../src/user-list.vala"
	_tmp112_ = _tmp111_;
#line 1398 "../src/user-list.vala"
	remote_server_copy (&_tmp112_, &_tmp113_);
#line 1398 "../src/user-list.vala"
	remote_server_destroy (&_vala_server_list[3]);
#line 1398 "../src/user-list.vala"
	_vala_server_list[3] = _tmp113_;
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field43);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field42);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field41);
#line 1323 "../src/user-list.vala"
	remote_server_destroy (&remote_server4);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field33);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field32);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field31);
#line 1323 "../src/user-list.vala"
	remote_server_destroy (&remote_server3);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field23);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field22);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field21);
#line 1323 "../src/user-list.vala"
	remote_server_destroy (&remote_server2);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field3);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field2);
#line 1323 "../src/user-list.vala"
	remote_server_field_destroy (&field1);
#line 1323 "../src/user-list.vala"
	remote_server_destroy (&remote_server1);
#line 1323 "../src/user-list.vala"
	domains = (_vala_array_free (domains, domains_length1, (GDestroyNotify) g_free), NULL);
#line 1323 "../src/user-list.vala"
	if (server_list) {
#line 1323 "../src/user-list.vala"
		*server_list = _vala_server_list;
#line 9446 "user-list.c"
	} else {
#line 1323 "../src/user-list.vala"
		_vala_server_list = (_vala_RemoteServer_array_free (_vala_server_list, _vala_server_list_length1), NULL);
#line 9450 "user-list.c"
	}
#line 1323 "../src/user-list.vala"
	if (server_list_length1) {
#line 1323 "../src/user-list.vala"
		*server_list_length1 = _vala_server_list_length1;
#line 9456 "user-list.c"
	}
}

static void
user_list_test_fill_remote_login_servers_duplicate_entries (UserList* self,
                                                            RemoteServer** server_list,
                                                            gint* server_list_length1)
{
	RemoteServer* _vala_server_list = NULL;
	gint _vala_server_list_length1 = 0;
	RemoteServer* _tmp0_;
	RemoteServer remote_server2 = {0};
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	RemoteServerField* _tmp4_;
	RemoteServerField field21 = {0};
	gchar* _tmp5_;
	GVariant* _tmp6_;
	RemoteServerField field22 = {0};
	gchar* _tmp7_;
	GVariant* _tmp8_;
	RemoteServerField field23 = {0};
	gchar* _tmp9_;
	GVariant* _tmp10_;
	RemoteServerField _tmp11_;
	RemoteServerField _tmp12_;
	RemoteServerField _tmp13_ = {0};
	RemoteServerField _tmp14_;
	RemoteServerField _tmp15_;
	RemoteServerField _tmp16_ = {0};
	RemoteServerField _tmp17_;
	RemoteServerField _tmp18_;
	RemoteServerField _tmp19_ = {0};
	RemoteServerField* _tmp20_;
	RemoteServer remote_server5 = {0};
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	RemoteServerField* _tmp24_;
	RemoteServerField field51 = {0};
	gchar* _tmp25_;
	GVariant* _tmp26_;
	RemoteServerField field52 = {0};
	gchar* _tmp27_;
	GVariant* _tmp28_;
	RemoteServerField field53 = {0};
	gchar* _tmp29_;
	GVariant* _tmp30_;
	RemoteServerField _tmp31_;
	RemoteServerField _tmp32_;
	RemoteServerField _tmp33_ = {0};
	RemoteServerField _tmp34_;
	RemoteServerField _tmp35_;
	RemoteServerField _tmp36_ = {0};
	RemoteServerField _tmp37_;
	RemoteServerField _tmp38_;
	RemoteServerField _tmp39_ = {0};
	RemoteServerField* _tmp40_;
	gint _tmp41_;
	RemoteServer _tmp42_;
	RemoteServer _tmp43_;
	RemoteServer _tmp44_ = {0};
	RemoteServer _tmp45_;
	RemoteServer _tmp46_;
	RemoteServer _tmp47_ = {0};
#line 1401 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 1404 "../src/user-list.vala"
	_tmp0_ = g_new0 (RemoteServer, 0);
#line 1404 "../src/user-list.vala"
	_vala_server_list = (_vala_RemoteServer_array_free (_vala_server_list, _vala_server_list_length1), NULL);
#line 1404 "../src/user-list.vala"
	_vala_server_list = _tmp0_;
#line 1404 "../src/user-list.vala"
	_vala_server_list_length1 = 0;
#line 1406 "../src/user-list.vala"
	memset (&remote_server2, 0, sizeof (RemoteServer));
#line 1407 "../src/user-list.vala"
	_tmp1_ = g_strdup ("rdp");
#line 1407 "../src/user-list.vala"
	_g_free0 (remote_server2.type);
#line 1407 "../src/user-list.vala"
	remote_server2.type = _tmp1_;
#line 1408 "../src/user-list.vala"
	_tmp2_ = g_strdup ("RDP server with default username, and editable domain");
#line 1408 "../src/user-list.vala"
	_g_free0 (remote_server2.name);
#line 1408 "../src/user-list.vala"
	remote_server2.name = _tmp2_;
#line 1409 "../src/user-list.vala"
	_tmp3_ = g_strdup ("http://rdpdefaultusername.com");
#line 1409 "../src/user-list.vala"
	_g_free0 (remote_server2.url);
#line 1409 "../src/user-list.vala"
	remote_server2.url = _tmp3_;
#line 1410 "../src/user-list.vala"
	remote_server2.last_used_server = FALSE;
#line 1411 "../src/user-list.vala"
	_tmp4_ = g_new0 (RemoteServerField, 0);
#line 1411 "../src/user-list.vala"
	remote_server2.fields = (_vala_RemoteServerField_array_free (remote_server2.fields, remote_server2.fields_length1), NULL);
#line 1411 "../src/user-list.vala"
	remote_server2.fields = _tmp4_;
#line 1411 "../src/user-list.vala"
	remote_server2.fields_length1 = 0;
#line 1412 "../src/user-list.vala"
	memset (&field21, 0, sizeof (RemoteServerField));
#line 1413 "../src/user-list.vala"
	_tmp5_ = g_strdup ("username");
#line 1413 "../src/user-list.vala"
	_g_free0 (field21.type);
#line 1413 "../src/user-list.vala"
	field21.type = _tmp5_;
#line 1414 "../src/user-list.vala"
	_tmp6_ = g_variant_new_string ("alowl1");
#line 1414 "../src/user-list.vala"
	g_variant_ref_sink (_tmp6_);
#line 1414 "../src/user-list.vala"
	_g_variant_unref0 (field21.default_value);
#line 1414 "../src/user-list.vala"
	field21.default_value = _tmp6_;
#line 1415 "../src/user-list.vala"
	memset (&field22, 0, sizeof (RemoteServerField));
#line 1416 "../src/user-list.vala"
	_tmp7_ = g_strdup ("password");
#line 1416 "../src/user-list.vala"
	_g_free0 (field22.type);
#line 1416 "../src/user-list.vala"
	field22.type = _tmp7_;
#line 1417 "../src/user-list.vala"
	_tmp8_ = g_variant_new_string ("duplicate1");
#line 1417 "../src/user-list.vala"
	g_variant_ref_sink (_tmp8_);
#line 1417 "../src/user-list.vala"
	_g_variant_unref0 (field22.default_value);
#line 1417 "../src/user-list.vala"
	field22.default_value = _tmp8_;
#line 1418 "../src/user-list.vala"
	memset (&field23, 0, sizeof (RemoteServerField));
#line 1419 "../src/user-list.vala"
	_tmp9_ = g_strdup ("domain");
#line 1419 "../src/user-list.vala"
	_g_free0 (field23.type);
#line 1419 "../src/user-list.vala"
	field23.type = _tmp9_;
#line 1420 "../src/user-list.vala"
	_tmp10_ = g_variant_new_string ("SCANNERS");
#line 1420 "../src/user-list.vala"
	g_variant_ref_sink (_tmp10_);
#line 1420 "../src/user-list.vala"
	_g_variant_unref0 (field23.default_value);
#line 1420 "../src/user-list.vala"
	field23.default_value = _tmp10_;
#line 1421 "../src/user-list.vala"
	_tmp11_ = field21;
#line 1421 "../src/user-list.vala"
	_tmp12_ = _tmp11_;
#line 1421 "../src/user-list.vala"
	remote_server_field_copy (&_tmp12_, &_tmp13_);
#line 1421 "../src/user-list.vala"
	_tmp14_ = field22;
#line 1421 "../src/user-list.vala"
	_tmp15_ = _tmp14_;
#line 1421 "../src/user-list.vala"
	remote_server_field_copy (&_tmp15_, &_tmp16_);
#line 1421 "../src/user-list.vala"
	_tmp17_ = field23;
#line 1421 "../src/user-list.vala"
	_tmp18_ = _tmp17_;
#line 1421 "../src/user-list.vala"
	remote_server_field_copy (&_tmp18_, &_tmp19_);
#line 1421 "../src/user-list.vala"
	_tmp20_ = g_new0 (RemoteServerField, 3);
#line 1421 "../src/user-list.vala"
	_tmp20_[0] = _tmp13_;
#line 1421 "../src/user-list.vala"
	_tmp20_[1] = _tmp16_;
#line 1421 "../src/user-list.vala"
	_tmp20_[2] = _tmp19_;
#line 1421 "../src/user-list.vala"
	remote_server2.fields = (_vala_RemoteServerField_array_free (remote_server2.fields, remote_server2.fields_length1), NULL);
#line 1421 "../src/user-list.vala"
	remote_server2.fields = _tmp20_;
#line 1421 "../src/user-list.vala"
	remote_server2.fields_length1 = 3;
#line 1423 "../src/user-list.vala"
	memset (&remote_server5, 0, sizeof (RemoteServer));
#line 1424 "../src/user-list.vala"
	_tmp21_ = g_strdup ("rdp");
#line 1424 "../src/user-list.vala"
	_g_free0 (remote_server5.type);
#line 1424 "../src/user-list.vala"
	remote_server5.type = _tmp21_;
#line 1425 "../src/user-list.vala"
	_tmp22_ = g_strdup ("RDP server with default username, and editable domain");
#line 1425 "../src/user-list.vala"
	_g_free0 (remote_server5.name);
#line 1425 "../src/user-list.vala"
	remote_server5.name = _tmp22_;
#line 1426 "../src/user-list.vala"
	_tmp23_ = g_strdup ("http://rdpdefaultusername.com");
#line 1426 "../src/user-list.vala"
	_g_free0 (remote_server5.url);
#line 1426 "../src/user-list.vala"
	remote_server5.url = _tmp23_;
#line 1427 "../src/user-list.vala"
	remote_server5.last_used_server = FALSE;
#line 1428 "../src/user-list.vala"
	_tmp24_ = g_new0 (RemoteServerField, 0);
#line 1428 "../src/user-list.vala"
	remote_server5.fields = (_vala_RemoteServerField_array_free (remote_server5.fields, remote_server5.fields_length1), NULL);
#line 1428 "../src/user-list.vala"
	remote_server5.fields = _tmp24_;
#line 1428 "../src/user-list.vala"
	remote_server5.fields_length1 = 0;
#line 1429 "../src/user-list.vala"
	memset (&field51, 0, sizeof (RemoteServerField));
#line 1430 "../src/user-list.vala"
	_tmp25_ = g_strdup ("username");
#line 1430 "../src/user-list.vala"
	_g_free0 (field51.type);
#line 1430 "../src/user-list.vala"
	field51.type = _tmp25_;
#line 1431 "../src/user-list.vala"
	_tmp26_ = g_variant_new_string ("alowl2");
#line 1431 "../src/user-list.vala"
	g_variant_ref_sink (_tmp26_);
#line 1431 "../src/user-list.vala"
	_g_variant_unref0 (field51.default_value);
#line 1431 "../src/user-list.vala"
	field51.default_value = _tmp26_;
#line 1432 "../src/user-list.vala"
	memset (&field52, 0, sizeof (RemoteServerField));
#line 1433 "../src/user-list.vala"
	_tmp27_ = g_strdup ("password");
#line 1433 "../src/user-list.vala"
	_g_free0 (field52.type);
#line 1433 "../src/user-list.vala"
	field52.type = _tmp27_;
#line 1434 "../src/user-list.vala"
	_tmp28_ = g_variant_new_string ("duplicate2");
#line 1434 "../src/user-list.vala"
	g_variant_ref_sink (_tmp28_);
#line 1434 "../src/user-list.vala"
	_g_variant_unref0 (field52.default_value);
#line 1434 "../src/user-list.vala"
	field52.default_value = _tmp28_;
#line 1435 "../src/user-list.vala"
	memset (&field53, 0, sizeof (RemoteServerField));
#line 1436 "../src/user-list.vala"
	_tmp29_ = g_strdup ("domain");
#line 1436 "../src/user-list.vala"
	_g_free0 (field53.type);
#line 1436 "../src/user-list.vala"
	field53.type = _tmp29_;
#line 1437 "../src/user-list.vala"
	_tmp30_ = g_variant_new_string ("PRINTERS");
#line 1437 "../src/user-list.vala"
	g_variant_ref_sink (_tmp30_);
#line 1437 "../src/user-list.vala"
	_g_variant_unref0 (field53.default_value);
#line 1437 "../src/user-list.vala"
	field53.default_value = _tmp30_;
#line 1438 "../src/user-list.vala"
	_tmp31_ = field51;
#line 1438 "../src/user-list.vala"
	_tmp32_ = _tmp31_;
#line 1438 "../src/user-list.vala"
	remote_server_field_copy (&_tmp32_, &_tmp33_);
#line 1438 "../src/user-list.vala"
	_tmp34_ = field52;
#line 1438 "../src/user-list.vala"
	_tmp35_ = _tmp34_;
#line 1438 "../src/user-list.vala"
	remote_server_field_copy (&_tmp35_, &_tmp36_);
#line 1438 "../src/user-list.vala"
	_tmp37_ = field53;
#line 1438 "../src/user-list.vala"
	_tmp38_ = _tmp37_;
#line 1438 "../src/user-list.vala"
	remote_server_field_copy (&_tmp38_, &_tmp39_);
#line 1438 "../src/user-list.vala"
	_tmp40_ = g_new0 (RemoteServerField, 3);
#line 1438 "../src/user-list.vala"
	_tmp40_[0] = _tmp33_;
#line 1438 "../src/user-list.vala"
	_tmp40_[1] = _tmp36_;
#line 1438 "../src/user-list.vala"
	_tmp40_[2] = _tmp39_;
#line 1438 "../src/user-list.vala"
	remote_server5.fields = (_vala_RemoteServerField_array_free (remote_server5.fields, remote_server5.fields_length1), NULL);
#line 1438 "../src/user-list.vala"
	remote_server5.fields = _tmp40_;
#line 1438 "../src/user-list.vala"
	remote_server5.fields_length1 = 3;
#line 1440 "../src/user-list.vala"
	_tmp41_ = 2;
#line 1440 "../src/user-list.vala"
	_vala_server_list = g_renew (RemoteServer, _vala_server_list, 2);
#line 1440 "../src/user-list.vala"
	(_tmp41_ > _vala_server_list_length1) ? memset (_vala_server_list + _vala_server_list_length1, 0, sizeof (RemoteServer) * (_tmp41_ - _vala_server_list_length1)) : NULL;
#line 1440 "../src/user-list.vala"
	_vala_server_list_length1 = _tmp41_;
#line 1441 "../src/user-list.vala"
	_tmp42_ = remote_server2;
#line 1441 "../src/user-list.vala"
	_tmp43_ = _tmp42_;
#line 1441 "../src/user-list.vala"
	remote_server_copy (&_tmp43_, &_tmp44_);
#line 1441 "../src/user-list.vala"
	remote_server_destroy (&_vala_server_list[0]);
#line 1441 "../src/user-list.vala"
	_vala_server_list[0] = _tmp44_;
#line 1442 "../src/user-list.vala"
	_tmp45_ = remote_server5;
#line 1442 "../src/user-list.vala"
	_tmp46_ = _tmp45_;
#line 1442 "../src/user-list.vala"
	remote_server_copy (&_tmp46_, &_tmp47_);
#line 1442 "../src/user-list.vala"
	remote_server_destroy (&_vala_server_list[1]);
#line 1442 "../src/user-list.vala"
	_vala_server_list[1] = _tmp47_;
#line 1401 "../src/user-list.vala"
	remote_server_field_destroy (&field53);
#line 1401 "../src/user-list.vala"
	remote_server_field_destroy (&field52);
#line 1401 "../src/user-list.vala"
	remote_server_field_destroy (&field51);
#line 1401 "../src/user-list.vala"
	remote_server_destroy (&remote_server5);
#line 1401 "../src/user-list.vala"
	remote_server_field_destroy (&field23);
#line 1401 "../src/user-list.vala"
	remote_server_field_destroy (&field22);
#line 1401 "../src/user-list.vala"
	remote_server_field_destroy (&field21);
#line 1401 "../src/user-list.vala"
	remote_server_destroy (&remote_server2);
#line 1401 "../src/user-list.vala"
	if (server_list) {
#line 1401 "../src/user-list.vala"
		*server_list = _vala_server_list;
#line 9801 "user-list.c"
	} else {
#line 1401 "../src/user-list.vala"
		_vala_server_list = (_vala_RemoteServer_array_free (_vala_server_list, _vala_server_list_length1), NULL);
#line 9805 "user-list.c"
	}
#line 1401 "../src/user-list.vala"
	if (server_list_length1) {
#line 1401 "../src/user-list.vala"
		*server_list_length1 = _vala_server_list_length1;
#line 9811 "user-list.c"
	}
}

static gboolean
user_list_test_key_press_cb (UserList* self,
                             GdkEventKey* event)
{
	gboolean result;
#line 1445 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1445 "../src/user-list.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1447 "../src/user-list.vala"
	if ((event->state & GDK_CONTROL_MASK) == 0) {
#line 1448 "../src/user-list.vala"
		result = FALSE;
#line 1448 "../src/user-list.vala"
		return result;
#line 9830 "user-list.c"
	}
#line 1450 "../src/user-list.vala"
	switch (event->keyval) {
#line 1450 "../src/user-list.vala"
		case GDK_KEY_plus:
#line 9836 "user-list.c"
		{
#line 1453 "../src/user-list.vala"
			user_list_add_test_entry (self);
#line 1454 "../src/user-list.vala"
			break;
#line 9842 "user-list.c"
		}
#line 1450 "../src/user-list.vala"
		case GDK_KEY_minus:
#line 9846 "user-list.c"
		{
#line 1456 "../src/user-list.vala"
			user_list_remove_test_entry (self);
#line 1457 "../src/user-list.vala"
			break;
#line 9852 "user-list.c"
		}
#line 1450 "../src/user-list.vala"
		case GDK_KEY_0:
#line 9856 "user-list.c"
		{
#line 1459 "../src/user-list.vala"
			while (TRUE) {
#line 1459 "../src/user-list.vala"
				if (!user_list_remove_test_entry (self)) {
#line 1459 "../src/user-list.vala"
					break;
#line 9864 "user-list.c"
				}
			}
#line 1460 "../src/user-list.vala"
			user_list_set_offer_guest (self, FALSE);
#line 1461 "../src/user-list.vala"
			break;
#line 9871 "user-list.c"
		}
#line 1450 "../src/user-list.vala"
		case GDK_KEY_equal:
#line 9875 "user-list.c"
		{
#line 1463 "../src/user-list.vala"
			while (TRUE) {
#line 1463 "../src/user-list.vala"
				if (!user_list_add_test_entry (self)) {
#line 1463 "../src/user-list.vala"
					break;
#line 9883 "user-list.c"
				}
			}
#line 1464 "../src/user-list.vala"
			user_list_set_offer_guest (self, TRUE);
#line 1465 "../src/user-list.vala"
			break;
#line 9890 "user-list.c"
		}
#line 1450 "../src/user-list.vala"
		case GDK_KEY_g:
#line 9894 "user-list.c"
		{
#line 1467 "../src/user-list.vala"
			user_list_set_offer_guest (self, FALSE);
#line 1468 "../src/user-list.vala"
			break;
#line 9900 "user-list.c"
		}
#line 1450 "../src/user-list.vala"
		case GDK_KEY_G:
#line 9904 "user-list.c"
		{
#line 1470 "../src/user-list.vala"
			user_list_set_offer_guest (self, TRUE);
#line 1471 "../src/user-list.vala"
			break;
#line 9910 "user-list.c"
		}
#line 1450 "../src/user-list.vala"
		case GDK_KEY_m:
#line 9914 "user-list.c"
		{
#line 1473 "../src/user-list.vala"
			greeter_list_set_always_show_manual ((GreeterList*) self, FALSE);
#line 1474 "../src/user-list.vala"
			break;
#line 9920 "user-list.c"
		}
#line 1450 "../src/user-list.vala"
		case GDK_KEY_M:
#line 9924 "user-list.c"
		{
#line 1476 "../src/user-list.vala"
			greeter_list_set_always_show_manual ((GreeterList*) self, TRUE);
#line 1477 "../src/user-list.vala"
			break;
#line 9930 "user-list.c"
		}
		default:
#line 1450 "../src/user-list.vala"
		break;
#line 9935 "user-list.c"
	}
#line 1480 "../src/user-list.vala"
	result = FALSE;
#line 1480 "../src/user-list.vala"
	return result;
#line 9941 "user-list.c"
}

static gboolean
user_list_add_test_entry (UserList* self)
{
	UserListTestEntry e = {0};
	UserListTestEntry _tmp0_;
	UserListTestEntry _tmp1_;
	UserListTestEntry _tmp2_ = {0};
	UserListTestEntry _tmp3_;
	const gchar* _tmp4_;
	gchar* background = NULL;
	UserListTestEntry _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	const gchar* _tmp8_;
	UserListTestEntry _tmp19_;
	const gchar* _tmp20_;
	UserListTestEntry _tmp21_;
	const gchar* _tmp22_;
	const gchar* _tmp23_;
	UserListTestEntry _tmp24_;
	UserListTestEntry _tmp25_;
	UserListTestEntry _tmp26_;
	const gchar* _tmp27_;
	gint _tmp28_;
	gboolean result;
#line 1483 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1485 "../src/user-list.vala"
	_tmp0_ = USER_LIST_test_entries[self->priv->n_test_entries];
#line 1485 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 1485 "../src/user-list.vala"
	user_list_test_entry_copy (&_tmp1_, &_tmp2_);
#line 1485 "../src/user-list.vala"
	e = _tmp2_;
#line 1486 "../src/user-list.vala"
	_tmp3_ = e;
#line 1486 "../src/user-list.vala"
	_tmp4_ = _tmp3_.username;
#line 1486 "../src/user-list.vala"
	if (g_strcmp0 (_tmp4_, "") == 0) {
#line 1487 "../src/user-list.vala"
		result = FALSE;
#line 1487 "../src/user-list.vala"
		user_list_test_entry_destroy (&e);
#line 1487 "../src/user-list.vala"
		return result;
#line 9991 "user-list.c"
	}
#line 1489 "../src/user-list.vala"
	_tmp5_ = e;
#line 1489 "../src/user-list.vala"
	_tmp6_ = _tmp5_.background;
#line 1489 "../src/user-list.vala"
	_tmp7_ = g_strdup (_tmp6_);
#line 1489 "../src/user-list.vala"
	background = _tmp7_;
#line 1490 "../src/user-list.vala"
	_tmp8_ = background;
#line 1490 "../src/user-list.vala"
	if (g_strcmp0 (_tmp8_, "*") == 0) {
#line 10005 "user-list.c"
		gint background_index = 0;
		GList* _tmp14_;
#line 1492 "../src/user-list.vala"
		background_index = 0;
#line 10010 "user-list.c"
		{
			gint i = 0;
#line 1493 "../src/user-list.vala"
			i = 0;
#line 10015 "user-list.c"
			{
				gboolean _tmp9_ = FALSE;
#line 1493 "../src/user-list.vala"
				_tmp9_ = TRUE;
#line 1493 "../src/user-list.vala"
				while (TRUE) {
#line 10022 "user-list.c"
					UserListTestEntry _tmp11_;
					const gchar* _tmp12_;
#line 1493 "../src/user-list.vala"
					if (!_tmp9_) {
#line 10027 "user-list.c"
						gint _tmp10_;
#line 1493 "../src/user-list.vala"
						_tmp10_ = i;
#line 1493 "../src/user-list.vala"
						i = _tmp10_ + 1;
#line 10033 "user-list.c"
					}
#line 1493 "../src/user-list.vala"
					_tmp9_ = FALSE;
#line 1493 "../src/user-list.vala"
					if (!(i < self->priv->n_test_entries)) {
#line 1493 "../src/user-list.vala"
						break;
#line 10041 "user-list.c"
					}
#line 1495 "../src/user-list.vala"
					_tmp11_ = USER_LIST_test_entries[i];
#line 1495 "../src/user-list.vala"
					_tmp12_ = _tmp11_.background;
#line 1495 "../src/user-list.vala"
					if (g_strcmp0 (_tmp12_, "*") == 0) {
#line 10049 "user-list.c"
						gint _tmp13_;
#line 1496 "../src/user-list.vala"
						_tmp13_ = background_index;
#line 1496 "../src/user-list.vala"
						background_index = _tmp13_ + 1;
#line 10055 "user-list.c"
					}
				}
			}
		}
#line 1498 "../src/user-list.vala"
		_tmp14_ = self->priv->test_backgrounds;
#line 1498 "../src/user-list.vala"
		if (g_list_length (_tmp14_) > ((guint) 0)) {
#line 10064 "user-list.c"
			GList* _tmp15_;
			GList* _tmp16_;
			gconstpointer _tmp17_;
			gchar* _tmp18_;
#line 1499 "../src/user-list.vala"
			_tmp15_ = self->priv->test_backgrounds;
#line 1499 "../src/user-list.vala"
			_tmp16_ = self->priv->test_backgrounds;
#line 1499 "../src/user-list.vala"
			_tmp17_ = g_list_nth_data (_tmp15_, background_index % g_list_length (_tmp16_));
#line 1499 "../src/user-list.vala"
			_tmp18_ = g_strdup ((const gchar*) _tmp17_);
#line 1499 "../src/user-list.vala"
			_g_free0 (background);
#line 1499 "../src/user-list.vala"
			background = _tmp18_;
#line 10081 "user-list.c"
		}
	}
#line 1501 "../src/user-list.vala"
	_tmp19_ = e;
#line 1501 "../src/user-list.vala"
	_tmp20_ = _tmp19_.username;
#line 1501 "../src/user-list.vala"
	_tmp21_ = e;
#line 1501 "../src/user-list.vala"
	_tmp22_ = _tmp21_.real_name;
#line 1501 "../src/user-list.vala"
	_tmp23_ = background;
#line 1501 "../src/user-list.vala"
	_tmp24_ = e;
#line 1501 "../src/user-list.vala"
	_tmp25_ = e;
#line 1501 "../src/user-list.vala"
	_tmp26_ = e;
#line 1501 "../src/user-list.vala"
	_tmp27_ = _tmp26_.session;
#line 1501 "../src/user-list.vala"
	user_list_add_user (self, _tmp20_, _tmp22_, _tmp23_, _tmp24_.is_active, _tmp25_.has_messages, _tmp27_);
#line 1502 "../src/user-list.vala"
	_tmp28_ = self->priv->n_test_entries;
#line 1502 "../src/user-list.vala"
	self->priv->n_test_entries = _tmp28_ + 1;
#line 1504 "../src/user-list.vala"
	result = TRUE;
#line 1504 "../src/user-list.vala"
	_g_free0 (background);
#line 1504 "../src/user-list.vala"
	user_list_test_entry_destroy (&e);
#line 1504 "../src/user-list.vala"
	return result;
#line 10116 "user-list.c"
}

static gboolean
user_list_remove_test_entry (UserList* self)
{
	UserListTestEntry _tmp0_;
	const gchar* _tmp1_;
	gint _tmp2_;
	gboolean result;
#line 1507 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1509 "../src/user-list.vala"
	if (self->priv->n_test_entries == 0) {
#line 1510 "../src/user-list.vala"
		result = FALSE;
#line 1510 "../src/user-list.vala"
		return result;
#line 10134 "user-list.c"
	}
#line 1512 "../src/user-list.vala"
	_tmp0_ = USER_LIST_test_entries[self->priv->n_test_entries - 1];
#line 1512 "../src/user-list.vala"
	_tmp1_ = _tmp0_.username;
#line 1512 "../src/user-list.vala"
	greeter_list_remove_entry ((GreeterList*) self, _tmp1_);
#line 1513 "../src/user-list.vala"
	_tmp2_ = self->priv->n_test_entries;
#line 1513 "../src/user-list.vala"
	self->priv->n_test_entries = _tmp2_ - 1;
#line 1515 "../src/user-list.vala"
	result = TRUE;
#line 1515 "../src/user-list.vala"
	return result;
#line 10150 "user-list.c"
}

static void
user_list_test_respond (UserList* self,
                        const gchar* text)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	GQuark _tmp3_ = 0U;
#line 1521 "../src/user-list.vala"
	static GQuark _tmp2_label0 = 0;
#line 1521 "../src/user-list.vala"
	static GQuark _tmp2_label1 = 0;
#line 1521 "../src/user-list.vala"
	static GQuark _tmp2_label2 = 0;
#line 1521 "../src/user-list.vala"
	static GQuark _tmp2_label3 = 0;
#line 1521 "../src/user-list.vala"
	static GQuark _tmp2_label4 = 0;
#line 1521 "../src/user-list.vala"
	static GQuark _tmp2_label5 = 0;
#line 1521 "../src/user-list.vala"
	static GQuark _tmp2_label6 = 0;
#line 1518 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 1518 "../src/user-list.vala"
	g_return_if_fail (text != NULL);
#line 1520 "../src/user-list.vala"
	g_debug ("user-list.vala:1520: response %s", text);
#line 1521 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_id ((GreeterList*) self);
#line 1521 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 1521 "../src/user-list.vala"
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
#line 1521 "../src/user-list.vala"
	g_free (_tmp1_);
#line 1521 "../src/user-list.vala"
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("*other")))) {
#line 1521 "../src/user-list.vala"
		switch (0) {
#line 10192 "user-list.c"
			default:
			{
				const gchar* _tmp4_;
#line 1524 "../src/user-list.vala"
				_tmp4_ = ((GreeterList*) self)->test_username;
#line 1524 "../src/user-list.vala"
				if (_tmp4_ == NULL) {
#line 10200 "user-list.c"
					gchar* _tmp5_;
#line 1526 "../src/user-list.vala"
					g_debug ("user-list.vala:1526: username=%s", text);
#line 1527 "../src/user-list.vala"
					_tmp5_ = g_strdup (text);
#line 1527 "../src/user-list.vala"
					_g_free0 (((GreeterList*) self)->test_username);
#line 1527 "../src/user-list.vala"
					((GreeterList*) self)->test_username = _tmp5_;
#line 1528 "../src/user-list.vala"
					greeter_list_show_prompt_cb ((GreeterList*) self, "Password:", LIGHTDM_PROMPT_TYPE_SECRET);
#line 10212 "user-list.c"
				} else {
#line 1532 "../src/user-list.vala"
					((GreeterList*) self)->test_is_authenticated = g_strcmp0 (text, "password") == 0;
#line 1533 "../src/user-list.vala"
					greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 10218 "user-list.c"
				}
#line 1535 "../src/user-list.vala"
				break;
#line 10222 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("two-factor")))) {
#line 1521 "../src/user-list.vala"
		switch (0) {
#line 10228 "user-list.c"
			default:
			{
#line 1537 "../src/user-list.vala"
				if (!self->priv->test_prompted_sso) {
#line 1539 "../src/user-list.vala"
					if (g_strcmp0 (text, "password") == 0) {
#line 1541 "../src/user-list.vala"
						g_debug ("user-list.vala:1541: prompt otp");
#line 1542 "../src/user-list.vala"
						self->priv->test_prompted_sso = TRUE;
#line 1543 "../src/user-list.vala"
						greeter_list_show_prompt_cb ((GreeterList*) self, "OTP:", LIGHTDM_PROMPT_TYPE_QUESTION);
#line 10241 "user-list.c"
					} else {
#line 1547 "../src/user-list.vala"
						((GreeterList*) self)->test_is_authenticated = FALSE;
#line 1548 "../src/user-list.vala"
						greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 10247 "user-list.c"
					}
				} else {
#line 1553 "../src/user-list.vala"
					((GreeterList*) self)->test_is_authenticated = g_strcmp0 (text, "otp") == 0;
#line 1554 "../src/user-list.vala"
					greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 10254 "user-list.c"
				}
#line 1556 "../src/user-list.vala"
				break;
#line 10258 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("two-prompts")))) {
#line 1521 "../src/user-list.vala"
		switch (0) {
#line 10264 "user-list.c"
			default:
			{
				const gchar* _tmp6_;
#line 1558 "../src/user-list.vala"
				_tmp6_ = self->priv->test_two_prompts_first;
#line 1558 "../src/user-list.vala"
				if (_tmp6_ == NULL) {
#line 10272 "user-list.c"
					gchar* _tmp7_;
#line 1559 "../src/user-list.vala"
					_tmp7_ = g_strdup (text);
#line 1559 "../src/user-list.vala"
					_g_free0 (self->priv->test_two_prompts_first);
#line 1559 "../src/user-list.vala"
					self->priv->test_two_prompts_first = _tmp7_;
#line 10280 "user-list.c"
				} else {
					gboolean _tmp8_ = FALSE;
					const gchar* _tmp9_;
#line 1562 "../src/user-list.vala"
					_tmp9_ = self->priv->test_two_prompts_first;
#line 1562 "../src/user-list.vala"
					if (g_strcmp0 (_tmp9_, "blue") == 0) {
#line 1562 "../src/user-list.vala"
						_tmp8_ = g_strcmp0 (text, "password") == 0;
#line 10290 "user-list.c"
					} else {
#line 1562 "../src/user-list.vala"
						_tmp8_ = FALSE;
#line 10294 "user-list.c"
					}
#line 1562 "../src/user-list.vala"
					((GreeterList*) self)->test_is_authenticated = _tmp8_;
#line 1563 "../src/user-list.vala"
					greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 10300 "user-list.c"
				}
#line 1565 "../src/user-list.vala"
				break;
#line 10304 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("change-password")))) {
#line 1521 "../src/user-list.vala"
		switch (0) {
#line 10310 "user-list.c"
			default:
			{
				const gchar* _tmp10_;
#line 1567 "../src/user-list.vala"
				_tmp10_ = self->priv->test_new_password;
#line 1567 "../src/user-list.vala"
				if (_tmp10_ != NULL) {
#line 10318 "user-list.c"
					const gchar* _tmp11_;
#line 1569 "../src/user-list.vala"
					_tmp11_ = self->priv->test_new_password;
#line 1569 "../src/user-list.vala"
					((GreeterList*) self)->test_is_authenticated = g_strcmp0 (text, _tmp11_) == 0;
#line 1570 "../src/user-list.vala"
					greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 10326 "user-list.c"
				} else {
#line 1572 "../src/user-list.vala"
					if (self->priv->test_request_new_password) {
#line 10330 "user-list.c"
						gchar* _tmp12_;
#line 1574 "../src/user-list.vala"
						_tmp12_ = g_strdup (text);
#line 1574 "../src/user-list.vala"
						_g_free0 (self->priv->test_new_password);
#line 1574 "../src/user-list.vala"
						self->priv->test_new_password = _tmp12_;
#line 1575 "../src/user-list.vala"
						greeter_list_show_prompt_cb ((GreeterList*) self, "Retype new UNIX password: ", LIGHTDM_PROMPT_TYPE_SECRET);
#line 10340 "user-list.c"
					} else {
#line 1579 "../src/user-list.vala"
						if (g_strcmp0 (text, "password") != 0) {
#line 1581 "../src/user-list.vala"
							((GreeterList*) self)->test_is_authenticated = FALSE;
#line 1582 "../src/user-list.vala"
							greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 10348 "user-list.c"
						} else {
#line 1586 "../src/user-list.vala"
							self->priv->test_request_new_password = TRUE;
#line 1587 "../src/user-list.vala"
							greeter_list_show_message_cb ((GreeterList*) self, "You are required to change your password immediately (root enforced)", LIGHTDM_MESSAGE_TYPE_ERROR);
#line 1588 "../src/user-list.vala"
							greeter_list_show_prompt_cb ((GreeterList*) self, "Enter new UNIX password: ", LIGHTDM_PROMPT_TYPE_SECRET);
#line 10356 "user-list.c"
						}
					}
				}
#line 1591 "../src/user-list.vala"
				break;
#line 10362 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("no-response")))) {
#line 1521 "../src/user-list.vala"
		switch (0) {
#line 10368 "user-list.c"
			default:
			{
#line 1593 "../src/user-list.vala"
				break;
#line 10373 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label5) ? _tmp2_label5 : (_tmp2_label5 = g_quark_from_static_string ("locked")))) {
#line 1521 "../src/user-list.vala"
		switch (0) {
#line 10379 "user-list.c"
			default:
			{
#line 1595 "../src/user-list.vala"
				((GreeterList*) self)->test_is_authenticated = FALSE;
#line 1596 "../src/user-list.vala"
				greeter_list_show_message_cb ((GreeterList*) self, "Account is locked", LIGHTDM_MESSAGE_TYPE_ERROR);
#line 1597 "../src/user-list.vala"
				greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 1598 "../src/user-list.vala"
				break;
#line 10390 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label6) ? _tmp2_label6 : (_tmp2_label6 = g_quark_from_static_string ("messages-after-login")))) {
#line 1521 "../src/user-list.vala"
		switch (0) {
#line 10396 "user-list.c"
			default:
			{
#line 1600 "../src/user-list.vala"
				((GreeterList*) self)->test_is_authenticated = g_strcmp0 (text, "password") == 0;
#line 1601 "../src/user-list.vala"
				if (((GreeterList*) self)->test_is_authenticated) {
#line 1602 "../src/user-list.vala"
					greeter_list_show_message_cb ((GreeterList*) self, "Congratulations on logging in!", LIGHTDM_MESSAGE_TYPE_INFO);
#line 10405 "user-list.c"
				}
#line 1603 "../src/user-list.vala"
				greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 1604 "../src/user-list.vala"
				break;
#line 10411 "user-list.c"
			}
		}
	} else {
#line 1521 "../src/user-list.vala"
		switch (0) {
#line 10417 "user-list.c"
			default:
			{
#line 1606 "../src/user-list.vala"
				((GreeterList*) self)->test_is_authenticated = g_strcmp0 (text, "password") == 0;
#line 1607 "../src/user-list.vala"
				greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 1608 "../src/user-list.vala"
				break;
#line 10426 "user-list.c"
			}
		}
	}
}

static void
user_list_real_test_start_authentication (GreeterList* base)
{
	UserList * self;
	gchar* _tmp0_;
	gchar* _tmp1_;
	GQuark _tmp3_ = 0U;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label0 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label1 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label2 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label3 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label4 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label5 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label6 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label7 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label8 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label9 = 0;
#line 1621 "../src/user-list.vala"
	static GQuark _tmp2_label10 = 0;
#line 1612 "../src/user-list.vala"
	self = (UserList*) base;
#line 1614 "../src/user-list.vala"
	_g_free0 (((GreeterList*) self)->test_username);
#line 1614 "../src/user-list.vala"
	((GreeterList*) self)->test_username = NULL;
#line 1615 "../src/user-list.vala"
	((GreeterList*) self)->test_is_authenticated = FALSE;
#line 1616 "../src/user-list.vala"
	self->priv->test_prompted_sso = FALSE;
#line 1617 "../src/user-list.vala"
	_g_free0 (self->priv->test_two_prompts_first);
#line 1617 "../src/user-list.vala"
	self->priv->test_two_prompts_first = NULL;
#line 1618 "../src/user-list.vala"
	self->priv->test_request_new_password = FALSE;
#line 1619 "../src/user-list.vala"
	_g_free0 (self->priv->test_new_password);
#line 1619 "../src/user-list.vala"
	self->priv->test_new_password = NULL;
#line 1621 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_selected_id ((GreeterList*) self);
#line 1621 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 1621 "../src/user-list.vala"
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
#line 1621 "../src/user-list.vala"
	g_free (_tmp1_);
#line 1621 "../src/user-list.vala"
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("*other")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10493 "user-list.c"
			default:
			{
				const gchar* _tmp4_;
#line 1624 "../src/user-list.vala"
				_tmp4_ = self->priv->authenticate_user;
#line 1624 "../src/user-list.vala"
				if (_tmp4_ != NULL) {
#line 10501 "user-list.c"
					const gchar* _tmp5_;
					gchar* _tmp6_;
#line 1626 "../src/user-list.vala"
					_tmp5_ = self->priv->authenticate_user;
#line 1626 "../src/user-list.vala"
					_tmp6_ = g_strdup (_tmp5_);
#line 1626 "../src/user-list.vala"
					_g_free0 (((GreeterList*) self)->test_username);
#line 1626 "../src/user-list.vala"
					((GreeterList*) self)->test_username = _tmp6_;
#line 1627 "../src/user-list.vala"
					_g_free0 (self->priv->authenticate_user);
#line 1627 "../src/user-list.vala"
					self->priv->authenticate_user = NULL;
#line 1628 "../src/user-list.vala"
					greeter_list_show_prompt_cb ((GreeterList*) self, "Password:", LIGHTDM_PROMPT_TYPE_SECRET);
#line 10518 "user-list.c"
				} else {
#line 1631 "../src/user-list.vala"
					greeter_list_show_prompt_cb ((GreeterList*) self, "Username:", LIGHTDM_PROMPT_TYPE_QUESTION);
#line 10522 "user-list.c"
				}
#line 1632 "../src/user-list.vala"
				break;
#line 10526 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("*guest")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10532 "user-list.c"
			default:
			{
#line 1634 "../src/user-list.vala"
				((GreeterList*) self)->test_is_authenticated = TRUE;
#line 1635 "../src/user-list.vala"
				greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 1636 "../src/user-list.vala"
				break;
#line 10541 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("different-prompt")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10547 "user-list.c"
			default:
			{
#line 1638 "../src/user-list.vala"
				greeter_list_show_prompt_cb ((GreeterList*) self, "Secret word", LIGHTDM_PROMPT_TYPE_SECRET);
#line 1639 "../src/user-list.vala"
				break;
#line 10554 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("no-password")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10560 "user-list.c"
			default:
			{
#line 1641 "../src/user-list.vala"
				((GreeterList*) self)->test_is_authenticated = TRUE;
#line 1642 "../src/user-list.vala"
				greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 1643 "../src/user-list.vala"
				break;
#line 10569 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("message-auth")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10575 "user-list.c"
			default:
			{
#line 1645 "../src/user-list.vala"
				greeter_list_show_message_cb ((GreeterList*) self, "Place your finger on the fingerprint reader", LIGHTDM_MESSAGE_TYPE_INFO);
#line 1646 "../src/user-list.vala"
				((GreeterList*) self)->test_is_authenticated = TRUE;
#line 1647 "../src/user-list.vala"
				greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 1648 "../src/user-list.vala"
				break;
#line 10586 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label5) ? _tmp2_label5 : (_tmp2_label5 = g_quark_from_static_string ("auth-error")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10592 "user-list.c"
			default:
			{
#line 1650 "../src/user-list.vala"
				greeter_list_show_message_cb ((GreeterList*) self, "Authentication Error", LIGHTDM_MESSAGE_TYPE_ERROR);
#line 1651 "../src/user-list.vala"
				((GreeterList*) self)->test_is_authenticated = FALSE;
#line 1652 "../src/user-list.vala"
				greeter_list_authentication_complete_cb ((GreeterList*) self);
#line 1653 "../src/user-list.vala"
				break;
#line 10603 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label6) ? _tmp2_label6 : (_tmp2_label6 = g_quark_from_static_string ("info-prompt")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10609 "user-list.c"
			default:
			{
#line 1655 "../src/user-list.vala"
				greeter_list_show_message_cb ((GreeterList*) self, "Welcome to Slick Greeter", LIGHTDM_MESSAGE_TYPE_INFO);
#line 1656 "../src/user-list.vala"
				greeter_list_show_prompt_cb ((GreeterList*) self, "Password:", LIGHTDM_PROMPT_TYPE_SECRET);
#line 1657 "../src/user-list.vala"
				break;
#line 10618 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label7) ? _tmp2_label7 : (_tmp2_label7 = g_quark_from_static_string ("long-info-prompt")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10624 "user-list.c"
			default:
			{
#line 1659 "../src/user-list.vala"
				greeter_list_show_message_cb ((GreeterList*) self, "Welcome to Slick Greeter\n" \
"\n" \
"We like to annoy you with long messages.\n" \
"Like this one\n" \
"\n" \
"This is the last line of a multiple line message.", LIGHTDM_MESSAGE_TYPE_INFO);
#line 1660 "../src/user-list.vala"
				greeter_list_show_prompt_cb ((GreeterList*) self, "Password:", LIGHTDM_PROMPT_TYPE_SECRET);
#line 1661 "../src/user-list.vala"
				break;
#line 10633 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label8) ? _tmp2_label8 : (_tmp2_label8 = g_quark_from_static_string ("wide-info-prompt")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10639 "user-list.c"
			default:
			{
#line 1663 "../src/user-list.vala"
				greeter_list_show_message_cb ((GreeterList*) self, "Welcome to Slick Greeter, the greeteriest greeter that ever did appear" \
" in these fine lands", LIGHTDM_MESSAGE_TYPE_INFO);
#line 1664 "../src/user-list.vala"
				greeter_list_show_prompt_cb ((GreeterList*) self, "Password:", LIGHTDM_PROMPT_TYPE_SECRET);
#line 1665 "../src/user-list.vala"
				break;
#line 10648 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label9) ? _tmp2_label9 : (_tmp2_label9 = g_quark_from_static_string ("multi-info-prompt")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10654 "user-list.c"
			default:
			{
#line 1667 "../src/user-list.vala"
				greeter_list_show_message_cb ((GreeterList*) self, "Welcome to Slick Greeter", LIGHTDM_MESSAGE_TYPE_INFO);
#line 1668 "../src/user-list.vala"
				greeter_list_show_message_cb ((GreeterList*) self, "This is an error", LIGHTDM_MESSAGE_TYPE_ERROR);
#line 1669 "../src/user-list.vala"
				greeter_list_show_message_cb ((GreeterList*) self, "You should have seen three messages", LIGHTDM_MESSAGE_TYPE_INFO);
#line 1670 "../src/user-list.vala"
				greeter_list_show_prompt_cb ((GreeterList*) self, "Password:", LIGHTDM_PROMPT_TYPE_SECRET);
#line 1671 "../src/user-list.vala"
				break;
#line 10667 "user-list.c"
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label10) ? _tmp2_label10 : (_tmp2_label10 = g_quark_from_static_string ("two-prompts")))) {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10673 "user-list.c"
			default:
			{
#line 1673 "../src/user-list.vala"
				greeter_list_show_prompt_cb ((GreeterList*) self, "Favorite Color (blue):", LIGHTDM_PROMPT_TYPE_QUESTION);
#line 1674 "../src/user-list.vala"
				greeter_list_show_prompt_cb ((GreeterList*) self, "Password:", LIGHTDM_PROMPT_TYPE_SECRET);
#line 1675 "../src/user-list.vala"
				break;
#line 10682 "user-list.c"
			}
		}
	} else {
#line 1621 "../src/user-list.vala"
		switch (0) {
#line 10688 "user-list.c"
			default:
			{
#line 1677 "../src/user-list.vala"
				greeter_list_show_prompt_cb ((GreeterList*) self, "Password:", LIGHTDM_PROMPT_TYPE_SECRET);
#line 1678 "../src/user-list.vala"
				break;
#line 10695 "user-list.c"
			}
		}
	}
}

gboolean
user_list_get_offer_guest (UserList* self)
{
	gboolean result;
#line 40 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 40 "../src/user-list.vala"
	result = self->priv->_offer_guest;
#line 40 "../src/user-list.vala"
	return result;
#line 10711 "user-list.c"
}

void
user_list_set_offer_guest (UserList* self,
                           gboolean value)
{
#line 41 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 43 "../src/user-list.vala"
	self->priv->_offer_guest = value;
#line 44 "../src/user-list.vala"
	if (value) {
#line 45 "../src/user-list.vala"
		user_list_add_user (self, "*guest", _ ("Guest Session"), NULL, FALSE, FALSE, NULL);
#line 10726 "user-list.c"
	} else {
#line 47 "../src/user-list.vala"
		greeter_list_remove_entry ((GreeterList*) self, "*guest");
#line 10730 "user-list.c"
	}
#line 41 "../src/user-list.vala"
	g_object_notify_by_pspec ((GObject *) self, user_list_properties[USER_LIST_OFFER_GUEST_PROPERTY]);
#line 10734 "user-list.c"
}

gboolean
user_list_get_show_hidden_users (UserList* self)
{
	gboolean result;
#line 105 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 107 "../src/user-list.vala"
	result = self->priv->show_hidden_users_;
#line 107 "../src/user-list.vala"
	return result;
#line 10747 "user-list.c"
}

void
user_list_set_show_hidden_users (UserList* self,
                                 gboolean value)
{
	SlickGreeter* _tmp0_;
	gchar** hidden_users = NULL;
	gint _tmp1_ = 0;
	gchar** _tmp2_;
	gint hidden_users_length1;
	gint _hidden_users_size_;
	LightDMUserList* users = NULL;
	LightDMUserList* _tmp6_;
	LightDMUserList* _tmp7_;
	LightDMUserList* _tmp8_;
	GList* _tmp9_;
	GList* _tmp10_;
#line 70 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 72 "../src/user-list.vala"
	self->priv->show_hidden_users_ = value;
#line 74 "../src/user-list.vala"
	_tmp0_ = slick_greeter_singleton;
#line 74 "../src/user-list.vala"
	if (_tmp0_->test_mode) {
#line 76 "../src/user-list.vala"
		if (value) {
#line 77 "../src/user-list.vala"
			user_list_add_user (self, "hidden", "Hidden User", NULL, FALSE, FALSE, NULL);
#line 10778 "user-list.c"
		} else {
#line 79 "../src/user-list.vala"
			greeter_list_remove_entry ((GreeterList*) self, "hidden");
#line 10782 "user-list.c"
		}
#line 80 "../src/user-list.vala"
		return;
#line 10786 "user-list.c"
	}
#line 83 "../src/user-list.vala"
	_tmp2_ = ug_settings_get_strv (UG_SETTINGS_KEY_HIDDEN_USERS, &_tmp1_);
#line 83 "../src/user-list.vala"
	hidden_users = _tmp2_;
#line 83 "../src/user-list.vala"
	hidden_users_length1 = _tmp1_;
#line 83 "../src/user-list.vala"
	_hidden_users_size_ = hidden_users_length1;
#line 84 "../src/user-list.vala"
	if (!value) {
#line 10798 "user-list.c"
		gchar** _tmp3_;
		gint _tmp3__length1;
#line 86 "../src/user-list.vala"
		_tmp3_ = hidden_users;
#line 86 "../src/user-list.vala"
		_tmp3__length1 = hidden_users_length1;
#line 10805 "user-list.c"
		{
			gchar** username_collection = NULL;
			gint username_collection_length1 = 0;
			gint _username_collection_size_ = 0;
			gint username_it = 0;
#line 86 "../src/user-list.vala"
			username_collection = _tmp3_;
#line 86 "../src/user-list.vala"
			username_collection_length1 = _tmp3__length1;
#line 86 "../src/user-list.vala"
			for (username_it = 0; username_it < username_collection_length1; username_it = username_it + 1) {
#line 10817 "user-list.c"
				gchar* _tmp4_;
				gchar* username = NULL;
#line 86 "../src/user-list.vala"
				_tmp4_ = g_strdup (username_collection[username_it]);
#line 86 "../src/user-list.vala"
				username = _tmp4_;
#line 10824 "user-list.c"
				{
					const gchar* _tmp5_;
#line 87 "../src/user-list.vala"
					_tmp5_ = username;
#line 87 "../src/user-list.vala"
					greeter_list_remove_entry ((GreeterList*) self, _tmp5_);
#line 86 "../src/user-list.vala"
					_g_free0 (username);
#line 10833 "user-list.c"
				}
			}
		}
#line 88 "../src/user-list.vala"
		hidden_users = (_vala_array_free (hidden_users, hidden_users_length1, (GDestroyNotify) g_free), NULL);
#line 88 "../src/user-list.vala"
		return;
#line 10841 "user-list.c"
	}
#line 91 "../src/user-list.vala"
	_tmp6_ = lightdm_user_list_get_instance ();
#line 91 "../src/user-list.vala"
	_tmp7_ = _g_object_ref0 (_tmp6_);
#line 91 "../src/user-list.vala"
	users = _tmp7_;
#line 92 "../src/user-list.vala"
	_tmp8_ = users;
#line 92 "../src/user-list.vala"
	_tmp9_ = lightdm_user_list_get_users (_tmp8_);
#line 92 "../src/user-list.vala"
	_tmp10_ = _tmp9_;
#line 10855 "user-list.c"
	{
		GList* user_collection = NULL;
		GList* user_it = NULL;
#line 92 "../src/user-list.vala"
		user_collection = _tmp10_;
#line 92 "../src/user-list.vala"
		for (user_it = user_collection; user_it != NULL; user_it = user_it->next) {
#line 10863 "user-list.c"
			LightDMUser* _tmp11_;
			LightDMUser* user = NULL;
#line 92 "../src/user-list.vala"
			_tmp11_ = _g_object_ref0 ((LightDMUser*) user_it->data);
#line 92 "../src/user-list.vala"
			user = _tmp11_;
#line 10870 "user-list.c"
			{
				gchar** _tmp12_;
				gint _tmp12__length1;
#line 94 "../src/user-list.vala"
				_tmp12_ = hidden_users;
#line 94 "../src/user-list.vala"
				_tmp12__length1 = hidden_users_length1;
#line 10878 "user-list.c"
				{
					gchar** username_collection = NULL;
					gint username_collection_length1 = 0;
					gint _username_collection_size_ = 0;
					gint username_it = 0;
#line 94 "../src/user-list.vala"
					username_collection = _tmp12_;
#line 94 "../src/user-list.vala"
					username_collection_length1 = _tmp12__length1;
#line 94 "../src/user-list.vala"
					for (username_it = 0; username_it < username_collection_length1; username_it = username_it + 1) {
#line 10890 "user-list.c"
						gchar* _tmp13_;
						gchar* username = NULL;
#line 94 "../src/user-list.vala"
						_tmp13_ = g_strdup (username_collection[username_it]);
#line 94 "../src/user-list.vala"
						username = _tmp13_;
#line 10897 "user-list.c"
						{
							LightDMUser* _tmp14_;
							const gchar* _tmp15_;
							const gchar* _tmp16_;
							const gchar* _tmp17_;
#line 96 "../src/user-list.vala"
							_tmp14_ = user;
#line 96 "../src/user-list.vala"
							_tmp15_ = lightdm_user_get_name (_tmp14_);
#line 96 "../src/user-list.vala"
							_tmp16_ = _tmp15_;
#line 96 "../src/user-list.vala"
							_tmp17_ = username;
#line 96 "../src/user-list.vala"
							if (g_strcmp0 (_tmp16_, _tmp17_) == 0) {
#line 10913 "user-list.c"
								const gchar* _tmp18_;
								LightDMUser* _tmp19_;
#line 98 "../src/user-list.vala"
								_tmp18_ = username;
#line 98 "../src/user-list.vala"
								g_debug ("user-list.vala:98: Showing hidden user %s", _tmp18_);
#line 99 "../src/user-list.vala"
								_tmp19_ = user;
#line 99 "../src/user-list.vala"
								user_list_user_added_cb (self, _tmp19_);
#line 10924 "user-list.c"
							}
#line 94 "../src/user-list.vala"
							_g_free0 (username);
#line 10928 "user-list.c"
						}
					}
				}
#line 92 "../src/user-list.vala"
				_g_object_unref0 (user);
#line 10934 "user-list.c"
			}
		}
	}
#line 70 "../src/user-list.vala"
	_g_object_unref0 (users);
#line 70 "../src/user-list.vala"
	hidden_users = (_vala_array_free (hidden_users, hidden_users_length1, (GDestroyNotify) g_free), NULL);
#line 70 "../src/user-list.vala"
	g_object_notify_by_pspec ((GObject *) self, user_list_properties[USER_LIST_SHOW_HIDDEN_USERS_PROPERTY]);
#line 10944 "user-list.c"
}

const gchar*
user_list_get_default_session (UserList* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 114 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 116 "../src/user-list.vala"
	_tmp0_ = self->priv->_default_session;
#line 116 "../src/user-list.vala"
	result = _tmp0_;
#line 116 "../src/user-list.vala"
	return result;
#line 10960 "user-list.c"
}

void
user_list_set_default_session (UserList* self,
                               const gchar* value)
{
	gchar* _tmp0_;
	PromptBox* _tmp1_;
	PromptBox* _tmp2_;
#line 118 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 120 "../src/user-list.vala"
	_tmp0_ = g_strdup (value);
#line 120 "../src/user-list.vala"
	_g_free0 (self->priv->_default_session);
#line 120 "../src/user-list.vala"
	self->priv->_default_session = _tmp0_;
#line 121 "../src/user-list.vala"
	_tmp1_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 121 "../src/user-list.vala"
	_tmp2_ = _tmp1_;
#line 121 "../src/user-list.vala"
	if (_tmp2_ != NULL) {
#line 10984 "user-list.c"
		PromptBox* _tmp3_;
		PromptBox* _tmp4_;
		GdkPixbuf* _tmp5_;
		GdkPixbuf* _tmp6_;
		GList* _tmp7_;
#line 122 "../src/user-list.vala"
		_tmp3_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 122 "../src/user-list.vala"
		_tmp4_ = _tmp3_;
#line 122 "../src/user-list.vala"
		_tmp5_ = user_list_get_badge (self);
#line 122 "../src/user-list.vala"
		_tmp6_ = _tmp5_;
#line 122 "../src/user-list.vala"
		prompt_box_set_options_image (_tmp4_, _tmp6_, value);
#line 122 "../src/user-list.vala"
		_g_object_unref0 (_tmp6_);
#line 123 "../src/user-list.vala"
		_tmp7_ = lightdm_get_sessions ();
#line 11004 "user-list.c"
		{
			GList* session_collection = NULL;
			GList* session_it = NULL;
#line 123 "../src/user-list.vala"
			session_collection = _tmp7_;
#line 123 "../src/user-list.vala"
			for (session_it = session_collection; session_it != NULL; session_it = session_it->next) {
#line 11012 "user-list.c"
				LightDMSession* _tmp8_;
				LightDMSession* session = NULL;
#line 123 "../src/user-list.vala"
				_tmp8_ = _g_object_ref0 ((LightDMSession*) session_it->data);
#line 123 "../src/user-list.vala"
				session = _tmp8_;
#line 11019 "user-list.c"
				{
					LightDMSession* _tmp9_;
					const gchar* _tmp10_;
					const gchar* _tmp11_;
#line 124 "../src/user-list.vala"
					_tmp9_ = session;
#line 124 "../src/user-list.vala"
					_tmp10_ = lightdm_session_get_key (_tmp9_);
#line 124 "../src/user-list.vala"
					_tmp11_ = _tmp10_;
#line 124 "../src/user-list.vala"
					if (g_strcmp0 (_tmp11_, value) == 0) {
#line 11032 "user-list.c"
						PromptBox* _tmp12_;
						PromptBox* _tmp13_;
						GdkPixbuf* _tmp14_;
						GdkPixbuf* _tmp15_;
						LightDMSession* _tmp16_;
						const gchar* _tmp17_;
						const gchar* _tmp18_;
#line 125 "../src/user-list.vala"
						_tmp12_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 125 "../src/user-list.vala"
						_tmp13_ = _tmp12_;
#line 125 "../src/user-list.vala"
						_tmp14_ = user_list_get_badge (self);
#line 125 "../src/user-list.vala"
						_tmp15_ = _tmp14_;
#line 125 "../src/user-list.vala"
						_tmp16_ = session;
#line 125 "../src/user-list.vala"
						_tmp17_ = lightdm_session_get_name (_tmp16_);
#line 125 "../src/user-list.vala"
						_tmp18_ = _tmp17_;
#line 125 "../src/user-list.vala"
						prompt_box_set_options_image (_tmp13_, _tmp15_, _tmp18_);
#line 125 "../src/user-list.vala"
						_g_object_unref0 (_tmp15_);
#line 126 "../src/user-list.vala"
						_g_object_unref0 (session);
#line 126 "../src/user-list.vala"
						break;
#line 11062 "user-list.c"
					}
#line 123 "../src/user-list.vala"
					_g_object_unref0 (session);
#line 11066 "user-list.c"
				}
			}
		}
	}
#line 118 "../src/user-list.vala"
	g_object_notify_by_pspec ((GObject *) self, user_list_properties[USER_LIST_DEFAULT_SESSION_PROPERTY]);
#line 11073 "user-list.c"
}

const gchar*
user_list_get_session (UserList* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 136 "../src/user-list.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 138 "../src/user-list.vala"
	_tmp0_ = self->priv->_session;
#line 138 "../src/user-list.vala"
	result = _tmp0_;
#line 138 "../src/user-list.vala"
	return result;
#line 11089 "user-list.c"
}

void
user_list_set_session (UserList* self,
                       const gchar* value)
{
	gchar* _tmp0_;
	PromptBox* _tmp1_;
	PromptBox* _tmp2_;
#line 140 "../src/user-list.vala"
	g_return_if_fail (self != NULL);
#line 142 "../src/user-list.vala"
	_tmp0_ = g_strdup (value);
#line 142 "../src/user-list.vala"
	_g_free0 (self->priv->_session);
#line 142 "../src/user-list.vala"
	self->priv->_session = _tmp0_;
#line 143 "../src/user-list.vala"
	_tmp1_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 143 "../src/user-list.vala"
	_tmp2_ = _tmp1_;
#line 143 "../src/user-list.vala"
	if (_tmp2_ != NULL) {
#line 11113 "user-list.c"
		PromptBox* _tmp3_;
		PromptBox* _tmp4_;
		GdkPixbuf* _tmp5_;
		GdkPixbuf* _tmp6_;
		PromptBox* _tmp7_;
		PromptBox* _tmp8_;
#line 144 "../src/user-list.vala"
		_tmp3_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 144 "../src/user-list.vala"
		_tmp4_ = _tmp3_;
#line 144 "../src/user-list.vala"
		_tmp5_ = user_list_get_badge (self);
#line 144 "../src/user-list.vala"
		_tmp6_ = _tmp5_;
#line 144 "../src/user-list.vala"
		prompt_box_set_options_image (_tmp4_, _tmp6_, value);
#line 144 "../src/user-list.vala"
		_g_object_unref0 (_tmp6_);
#line 145 "../src/user-list.vala"
		_tmp7_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 145 "../src/user-list.vala"
		_tmp8_ = _tmp7_;
#line 145 "../src/user-list.vala"
		if (_tmp8_ != NULL) {
#line 11138 "user-list.c"
			PromptBox* _tmp9_;
			PromptBox* _tmp10_;
			GdkPixbuf* _tmp11_;
			GdkPixbuf* _tmp12_;
			GList* _tmp13_;
#line 146 "../src/user-list.vala"
			_tmp9_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 146 "../src/user-list.vala"
			_tmp10_ = _tmp9_;
#line 146 "../src/user-list.vala"
			_tmp11_ = user_list_get_badge (self);
#line 146 "../src/user-list.vala"
			_tmp12_ = _tmp11_;
#line 146 "../src/user-list.vala"
			prompt_box_set_options_image (_tmp10_, _tmp12_, value);
#line 146 "../src/user-list.vala"
			_g_object_unref0 (_tmp12_);
#line 147 "../src/user-list.vala"
			_tmp13_ = lightdm_get_sessions ();
#line 11158 "user-list.c"
			{
				GList* session_collection = NULL;
				GList* session_it = NULL;
#line 147 "../src/user-list.vala"
				session_collection = _tmp13_;
#line 147 "../src/user-list.vala"
				for (session_it = session_collection; session_it != NULL; session_it = session_it->next) {
#line 11166 "user-list.c"
					LightDMSession* _tmp14_;
					LightDMSession* session = NULL;
#line 147 "../src/user-list.vala"
					_tmp14_ = _g_object_ref0 ((LightDMSession*) session_it->data);
#line 147 "../src/user-list.vala"
					session = _tmp14_;
#line 11173 "user-list.c"
					{
						LightDMSession* _tmp15_;
						const gchar* _tmp16_;
						const gchar* _tmp17_;
#line 148 "../src/user-list.vala"
						_tmp15_ = session;
#line 148 "../src/user-list.vala"
						_tmp16_ = lightdm_session_get_key (_tmp15_);
#line 148 "../src/user-list.vala"
						_tmp17_ = _tmp16_;
#line 148 "../src/user-list.vala"
						if (g_strcmp0 (_tmp17_, value) == 0) {
#line 11186 "user-list.c"
							PromptBox* _tmp18_;
							PromptBox* _tmp19_;
							GdkPixbuf* _tmp20_;
							GdkPixbuf* _tmp21_;
							LightDMSession* _tmp22_;
							const gchar* _tmp23_;
							const gchar* _tmp24_;
#line 149 "../src/user-list.vala"
							_tmp18_ = greeter_list_get_selected_entry ((GreeterList*) self);
#line 149 "../src/user-list.vala"
							_tmp19_ = _tmp18_;
#line 149 "../src/user-list.vala"
							_tmp20_ = user_list_get_badge (self);
#line 149 "../src/user-list.vala"
							_tmp21_ = _tmp20_;
#line 149 "../src/user-list.vala"
							_tmp22_ = session;
#line 149 "../src/user-list.vala"
							_tmp23_ = lightdm_session_get_name (_tmp22_);
#line 149 "../src/user-list.vala"
							_tmp24_ = _tmp23_;
#line 149 "../src/user-list.vala"
							prompt_box_set_options_image (_tmp19_, _tmp21_, _tmp24_);
#line 149 "../src/user-list.vala"
							_g_object_unref0 (_tmp21_);
#line 150 "../src/user-list.vala"
							_g_object_unref0 (session);
#line 150 "../src/user-list.vala"
							break;
#line 11216 "user-list.c"
						}
#line 147 "../src/user-list.vala"
						_g_object_unref0 (session);
#line 11220 "user-list.c"
					}
				}
			}
		}
	}
#line 140 "../src/user-list.vala"
	g_object_notify_by_pspec ((GObject *) self, user_list_properties[USER_LIST_SESSION_PROPERTY]);
#line 11228 "user-list.c"
}

static void
user_list_test_entry_copy (const UserListTestEntry* self,
                           UserListTestEntry* dest)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
#line 1159 "../src/user-list.vala"
	_tmp0_ = (*self).username;
#line 1159 "../src/user-list.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 1159 "../src/user-list.vala"
	_g_free0 ((*dest).username);
#line 1159 "../src/user-list.vala"
	(*dest).username = _tmp1_;
#line 1159 "../src/user-list.vala"
	_tmp2_ = (*self).real_name;
#line 1159 "../src/user-list.vala"
	_tmp3_ = g_strdup (_tmp2_);
#line 1159 "../src/user-list.vala"
	_g_free0 ((*dest).real_name);
#line 1159 "../src/user-list.vala"
	(*dest).real_name = _tmp3_;
#line 1159 "../src/user-list.vala"
	_tmp4_ = (*self).background;
#line 1159 "../src/user-list.vala"
	_tmp5_ = g_strdup (_tmp4_);
#line 1159 "../src/user-list.vala"
	_g_free0 ((*dest).background);
#line 1159 "../src/user-list.vala"
	(*dest).background = _tmp5_;
#line 1159 "../src/user-list.vala"
	(*dest).is_active = (*self).is_active;
#line 1159 "../src/user-list.vala"
	(*dest).has_messages = (*self).has_messages;
#line 1159 "../src/user-list.vala"
	_tmp6_ = (*self).session;
#line 1159 "../src/user-list.vala"
	_tmp7_ = g_strdup (_tmp6_);
#line 1159 "../src/user-list.vala"
	_g_free0 ((*dest).session);
#line 1159 "../src/user-list.vala"
	(*dest).session = _tmp7_;
#line 11279 "user-list.c"
}

static void
user_list_test_entry_destroy (UserListTestEntry* self)
{
#line 1161 "../src/user-list.vala"
	_g_free0 ((*self).username);
#line 1162 "../src/user-list.vala"
	_g_free0 ((*self).real_name);
#line 1163 "../src/user-list.vala"
	_g_free0 ((*self).background);
#line 1166 "../src/user-list.vala"
	_g_free0 ((*self).session);
#line 11293 "user-list.c"
}

static UserListTestEntry*
user_list_test_entry_dup (const UserListTestEntry* self)
{
	UserListTestEntry* dup;
#line 1159 "../src/user-list.vala"
	dup = g_new0 (UserListTestEntry, 1);
#line 1159 "../src/user-list.vala"
	user_list_test_entry_copy (self, dup);
#line 1159 "../src/user-list.vala"
	return dup;
#line 11306 "user-list.c"
}

static void
user_list_test_entry_free (UserListTestEntry* self)
{
#line 1159 "../src/user-list.vala"
	user_list_test_entry_destroy (self);
#line 1159 "../src/user-list.vala"
	g_free (self);
#line 11316 "user-list.c"
}

static GType
user_list_test_entry_get_type_once (void)
{
	GType user_list_test_entry_type_id;
	user_list_test_entry_type_id = g_boxed_type_register_static ("UserListTestEntry", (GBoxedCopyFunc) user_list_test_entry_dup, (GBoxedFreeFunc) user_list_test_entry_free);
	return user_list_test_entry_type_id;
}

static GType
user_list_test_entry_get_type (void)
{
	static volatile gsize user_list_test_entry_type_id__once = 0;
	if (g_once_init_enter (&user_list_test_entry_type_id__once)) {
		GType user_list_test_entry_type_id;
		user_list_test_entry_type_id = user_list_test_entry_get_type_once ();
		g_once_init_leave (&user_list_test_entry_type_id__once, user_list_test_entry_type_id);
	}
	return user_list_test_entry_type_id__once;
}

static void
_user_list___lambda50_ (UserList* self)
{
#line 165 "../src/user-list.vala"
	user_list_change_background (self);
#line 11344 "user-list.c"
}

static void
__user_list___lambda50__g_object_notify (GObject* _sender,
                                         GParamSpec* pspec,
                                         gpointer self)
{
#line 165 "../src/user-list.vala"
	_user_list___lambda50_ ((UserList*) self);
#line 11354 "user-list.c"
}

static void
_user_list___lambda51_ (UserList* self)
{
#line 166 "../src/user-list.vala"
	user_list_change_background (self);
#line 11362 "user-list.c"
}

static void
__user_list___lambda51__greeter_list_entry_displayed_start (GreeterList* _sender,
                                                            gpointer self)
{
#line 166 "../src/user-list.vala"
	_user_list___lambda51_ ((UserList*) self);
#line 11371 "user-list.c"
}

static void
_user_list___lambda52_ (UserList* self)
{
#line 167 "../src/user-list.vala"
	user_list_change_background (self);
#line 11379 "user-list.c"
}

static void
__user_list___lambda52__greeter_list_entry_displayed_done (GreeterList* _sender,
                                                           gpointer self)
{
#line 167 "../src/user-list.vala"
	_user_list___lambda52_ ((UserList*) self);
#line 11388 "user-list.c"
}

static void
_user_list_entry_selected_cb_greeter_list_entry_selected (GreeterList* _sender,
                                                          const gchar* name,
                                                          gpointer self)
{
#line 180 "../src/user-list.vala"
	user_list_entry_selected_cb ((UserList*) self, name);
#line 11398 "user-list.c"
}

static void
_user_list_on_remote_login_service_appeared_gbus_name_appeared_callback (GDBusConnection* connection,
                                                                         const gchar* name,
                                                                         const gchar* name_owner,
                                                                         gpointer self)
{
#line 186 "../src/user-list.vala"
	user_list_on_remote_login_service_appeared ((UserList*) self, connection, name);
#line 11409 "user-list.c"
}

static void
_user_list_on_remote_login_service_vanished_gbus_name_vanished_callback (GDBusConnection* connection,
                                                                         const gchar* name,
                                                                         gpointer self)
{
#line 186 "../src/user-list.vala"
	user_list_on_remote_login_service_vanished ((UserList*) self, connection, name);
#line 11419 "user-list.c"
}

static GObject *
user_list_constructor (GType type,
                       guint n_construct_properties,
                       GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	UserList * self;
	MenuBar* _tmp0_;
	MenuBar* _tmp1_;
	gboolean _tmp10_ = FALSE;
	SlickGreeter* _tmp11_;
	GError* _inner_error0_ = NULL;
#line 163 "../src/user-list.vala"
	parent_class = G_OBJECT_CLASS (user_list_parent_class);
#line 163 "../src/user-list.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 163 "../src/user-list.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_USER_LIST, UserList);
#line 165 "../src/user-list.vala"
	_tmp0_ = greeter_list_get_menubar ((GreeterList*) self);
#line 165 "../src/user-list.vala"
	_tmp1_ = _tmp0_;
#line 165 "../src/user-list.vala"
	g_signal_connect_object ((GObject*) _tmp1_, "notify::high-contrast", (GCallback) __user_list___lambda50__g_object_notify, self, 0);
#line 166 "../src/user-list.vala"
	g_signal_connect_object ((GreeterList*) self, "entry-displayed-start", (GCallback) __user_list___lambda51__greeter_list_entry_displayed_start, self, 0);
#line 167 "../src/user-list.vala"
	g_signal_connect_object ((GreeterList*) self, "entry-displayed-done", (GCallback) __user_list___lambda52__greeter_list_entry_displayed_done, self, 0);
#line 11451 "user-list.c"
	{
		GdkPixbuf* _tmp2_ = NULL;
		gchar* _tmp3_;
		gchar* _tmp4_;
		GdkPixbuf* _tmp5_;
		GdkPixbuf* _tmp6_;
		GdkPixbuf* _tmp7_;
#line 171 "../src/user-list.vala"
		_tmp3_ = g_build_filename (PKGDATADIR, "message.png", NULL, NULL);
#line 171 "../src/user-list.vala"
		_tmp4_ = _tmp3_;
#line 171 "../src/user-list.vala"
		_tmp5_ = gdk_pixbuf_new_from_file (_tmp4_, &_inner_error0_);
#line 171 "../src/user-list.vala"
		_tmp6_ = _tmp5_;
#line 171 "../src/user-list.vala"
		_g_free0 (_tmp4_);
#line 171 "../src/user-list.vala"
		_tmp2_ = _tmp6_;
#line 171 "../src/user-list.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 11473 "user-list.c"
			goto __catch0_g_error;
		}
#line 171 "../src/user-list.vala"
		_tmp7_ = _tmp2_;
#line 171 "../src/user-list.vala"
		_tmp2_ = NULL;
#line 171 "../src/user-list.vala"
		_g_object_unref0 (self->priv->message_pixbuf);
#line 171 "../src/user-list.vala"
		self->priv->message_pixbuf = _tmp7_;
#line 169 "../src/user-list.vala"
		_g_object_unref0 (_tmp2_);
#line 11486 "user-list.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp8_;
		const gchar* _tmp9_;
#line 169 "../src/user-list.vala"
		e = _inner_error0_;
#line 169 "../src/user-list.vala"
		_inner_error0_ = NULL;
#line 175 "../src/user-list.vala"
		_tmp8_ = e;
#line 175 "../src/user-list.vala"
		_tmp9_ = _tmp8_->message;
#line 175 "../src/user-list.vala"
		g_debug ("user-list.vala:175: Error loading message image: %s", _tmp9_);
#line 169 "../src/user-list.vala"
		_g_error_free0 (e);
#line 11506 "user-list.c"
	}
	__finally0:
#line 169 "../src/user-list.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 169 "../src/user-list.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
#line 169 "../src/user-list.vala"
		g_clear_error (&_inner_error0_);
#line 11515 "user-list.c"
	}
#line 178 "../src/user-list.vala"
	user_list_fill_list (self);
#line 180 "../src/user-list.vala"
	g_signal_connect_object ((GreeterList*) self, "entry-selected", (GCallback) _user_list_entry_selected_cb_greeter_list_entry_selected, self, 0);
#line 182 "../src/user-list.vala"
	greeter_list_connect_to_lightdm ((GreeterList*) self);
#line 184 "../src/user-list.vala"
	_tmp11_ = slick_greeter_singleton;
#line 184 "../src/user-list.vala"
	if (!_tmp11_->test_mode) {
#line 11527 "user-list.c"
		SlickGreeter* _tmp12_;
#line 185 "../src/user-list.vala"
		_tmp12_ = slick_greeter_singleton;
#line 185 "../src/user-list.vala"
		_tmp10_ = slick_greeter_show_remote_login_hint (_tmp12_);
#line 11533 "user-list.c"
	} else {
#line 184 "../src/user-list.vala"
		_tmp10_ = FALSE;
#line 11537 "user-list.c"
	}
#line 184 "../src/user-list.vala"
	if (_tmp10_) {
#line 186 "../src/user-list.vala"
		self->priv->remote_login_service_watch = g_bus_watch_name_with_closures (G_BUS_TYPE_SESSION, "com.canonical.RemoteLogin", G_BUS_NAME_WATCHER_FLAGS_AUTO_START, (GClosure*) ((_user_list_on_remote_login_service_appeared_gbus_name_appeared_callback == NULL) ? NULL : g_cclosure_new ((GCallback) _user_list_on_remote_login_service_appeared_gbus_name_appeared_callback, g_object_ref (self), (GClosureNotify) g_object_unref)), (GClosure*) ((_user_list_on_remote_login_service_vanished_gbus_name_vanished_callback == NULL) ? NULL : g_cclosure_new ((GCallback) _user_list_on_remote_login_service_vanished_gbus_name_vanished_callback, g_object_ref (self), (GClosureNotify) g_object_unref)));
#line 11543 "user-list.c"
	}
#line 163 "../src/user-list.vala"
	return obj;
#line 11547 "user-list.c"
}

static void
user_list_class_init (UserListClass * klass,
                      gpointer klass_data)
{
#line 35 "../src/user-list.vala"
	user_list_parent_class = g_type_class_peek_parent (klass);
#line 35 "../src/user-list.vala"
	g_type_class_adjust_private_offset (klass, &UserList_private_offset);
#line 35 "../src/user-list.vala"
	((GreeterListClass *) klass)->insert_entry = (void (*) (GreeterList*, PromptBox*)) user_list_real_insert_entry;
#line 35 "../src/user-list.vala"
	((GreeterListClass *) klass)->setup_prompt_box = (void (*) (GreeterList*, gboolean)) user_list_real_setup_prompt_box;
#line 35 "../src/user-list.vala"
	((GreeterListClass *) klass)->start_authentication = (void (*) (GreeterList*)) user_list_real_start_authentication;
#line 35 "../src/user-list.vala"
	((GreeterListClass *) klass)->focus_prompt = (void (*) (GreeterList*)) user_list_real_focus_prompt;
#line 35 "../src/user-list.vala"
	((GreeterListClass *) klass)->show_authenticated = (void (*) (GreeterList*, gboolean)) user_list_real_show_authenticated;
#line 35 "../src/user-list.vala"
	((GreeterListClass *) klass)->add_manual_entry = (void (*) (GreeterList*)) user_list_real_add_manual_entry;
#line 35 "../src/user-list.vala"
	((GreeterListClass *) klass)->get_lightdm_session = (gchar* (*) (GreeterList*)) user_list_real_get_lightdm_session;
#line 35 "../src/user-list.vala"
	((GreeterListClass *) klass)->show_prompt_cb = (void (*) (GreeterList*, const gchar*, LightDMPromptType)) user_list_real_show_prompt_cb;
#line 35 "../src/user-list.vala"
	((GreeterListClass *) klass)->test_start_authentication = (void (*) (GreeterList*)) user_list_real_test_start_authentication;
#line 35 "../src/user-list.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_user_list_get_property;
#line 35 "../src/user-list.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_user_list_set_property;
#line 35 "../src/user-list.vala"
	G_OBJECT_CLASS (klass)->constructor = user_list_constructor;
#line 35 "../src/user-list.vala"
	G_OBJECT_CLASS (klass)->finalize = user_list_finalize;
#line 35 "../src/user-list.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), USER_LIST_OFFER_GUEST_PROPERTY, user_list_properties[USER_LIST_OFFER_GUEST_PROPERTY] = g_param_spec_boolean ("offer-guest", "offer-guest", "offer-guest", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 35 "../src/user-list.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), USER_LIST_SHOW_HIDDEN_USERS_PROPERTY, user_list_properties[USER_LIST_SHOW_HIDDEN_USERS_PROPERTY] = g_param_spec_boolean ("show-hidden-users", "show-hidden-users", "show-hidden-users", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 35 "../src/user-list.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), USER_LIST_DEFAULT_SESSION_PROPERTY, user_list_properties[USER_LIST_DEFAULT_SESSION_PROPERTY] = g_param_spec_string ("default-session", "default-session", "default-session", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 35 "../src/user-list.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), USER_LIST_SESSION_PROPERTY, user_list_properties[USER_LIST_SESSION_PROPERTY] = g_param_spec_string ("session", "session", "session", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 11592 "user-list.c"
}

static void
user_list_instance_init (UserList * self,
                         gpointer klass)
{
	gchar* _tmp0_;
#line 35 "../src/user-list.vala"
	self->priv = user_list_get_instance_private (self);
#line 37 "../src/user-list.vala"
	self->priv->_offer_guest = FALSE;
#line 53 "../src/user-list.vala"
	self->priv->change_background_timeout = (guint) 0;
#line 57 "../src/user-list.vala"
	self->priv->remote_directory_server_list = NULL;
#line 58 "../src/user-list.vala"
	self->priv->remote_login_server_list = NULL;
#line 65 "../src/user-list.vala"
	self->priv->authenticate_user = NULL;
#line 67 "../src/user-list.vala"
	self->priv->show_hidden_users_ = FALSE;
#line 111 "../src/user-list.vala"
	_tmp0_ = g_strdup ("gnome");
#line 111 "../src/user-list.vala"
	self->priv->_default_session = _tmp0_;
#line 133 "../src/user-list.vala"
	self->priv->_session = NULL;
#line 1200 "../src/user-list.vala"
	self->priv->n_test_entries = 0;
#line 1201 "../src/user-list.vala"
	self->priv->test_prompted_sso = FALSE;
#line 1202 "../src/user-list.vala"
	self->priv->test_two_prompts_first = NULL;
#line 1203 "../src/user-list.vala"
	self->priv->test_request_new_password = FALSE;
#line 1204 "../src/user-list.vala"
	self->priv->test_new_password = NULL;
#line 11630 "user-list.c"
}

static void
user_list_finalize (GObject * obj)
{
	UserList * self;
#line 35 "../src/user-list.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_USER_LIST, UserList);
#line 51 "../src/user-list.vala"
	_g_object_unref0 (self->priv->message_pixbuf);
#line 56 "../src/user-list.vala"
	_g_object_unref0 (self->priv->remote_login_service);
#line 57 "../src/user-list.vala"
	(self->priv->remote_directory_server_list == NULL) ? NULL : (self->priv->remote_directory_server_list = (_g_list_free__remote_server_free0_ (self->priv->remote_directory_server_list), NULL));
#line 58 "../src/user-list.vala"
	(self->priv->remote_login_server_list == NULL) ? NULL : (self->priv->remote_login_server_list = (_g_list_free__remote_server_free0_ (self->priv->remote_login_server_list), NULL));
#line 59 "../src/user-list.vala"
	_g_hash_table_unref0 (self->priv->current_remote_fields);
#line 60 "../src/user-list.vala"
	_g_free0 (self->priv->currently_browsing_server_url);
#line 61 "../src/user-list.vala"
	_g_free0 (self->priv->currently_browsing_server_email);
#line 62 "../src/user-list.vala"
	_email_autocompleter_unref0 (self->priv->remote_server_email_field_autocompleter);
#line 65 "../src/user-list.vala"
	_g_free0 (self->priv->authenticate_user);
#line 111 "../src/user-list.vala"
	_g_free0 (self->priv->_default_session);
#line 133 "../src/user-list.vala"
	_g_free0 (self->priv->_session);
#line 1199 "../src/user-list.vala"
	(self->priv->test_backgrounds == NULL) ? NULL : (self->priv->test_backgrounds = (_g_list_free__g_free0_ (self->priv->test_backgrounds), NULL));
#line 1202 "../src/user-list.vala"
	_g_free0 (self->priv->test_two_prompts_first);
#line 1204 "../src/user-list.vala"
	_g_free0 (self->priv->test_new_password);
#line 35 "../src/user-list.vala"
	G_OBJECT_CLASS (user_list_parent_class)->finalize (obj);
#line 11669 "user-list.c"
}

static GType
user_list_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (UserListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) user_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UserList), 0, (GInstanceInitFunc) user_list_instance_init, NULL };
	GType user_list_type_id;
	user_list_type_id = g_type_register_static (TYPE_GREETER_LIST, "UserList", &g_define_type_info, 0);
	UserList_private_offset = g_type_add_instance_private (user_list_type_id, sizeof (UserListPrivate));
	return user_list_type_id;
}

GType
user_list_get_type (void)
{
	static volatile gsize user_list_type_id__once = 0;
	if (g_once_init_enter (&user_list_type_id__once)) {
		GType user_list_type_id;
		user_list_type_id = user_list_get_type_once ();
		g_once_init_leave (&user_list_type_id__once, user_list_type_id);
	}
	return user_list_type_id__once;
}

static void
_vala_user_list_get_property (GObject * object,
                              guint property_id,
                              GValue * value,
                              GParamSpec * pspec)
{
	UserList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_USER_LIST, UserList);
#line 35 "../src/user-list.vala"
	switch (property_id) {
#line 35 "../src/user-list.vala"
		case USER_LIST_OFFER_GUEST_PROPERTY:
#line 35 "../src/user-list.vala"
		g_value_set_boolean (value, user_list_get_offer_guest (self));
#line 35 "../src/user-list.vala"
		break;
#line 35 "../src/user-list.vala"
		case USER_LIST_SHOW_HIDDEN_USERS_PROPERTY:
#line 35 "../src/user-list.vala"
		g_value_set_boolean (value, user_list_get_show_hidden_users (self));
#line 35 "../src/user-list.vala"
		break;
#line 35 "../src/user-list.vala"
		case USER_LIST_DEFAULT_SESSION_PROPERTY:
#line 35 "../src/user-list.vala"
		g_value_set_string (value, user_list_get_default_session (self));
#line 35 "../src/user-list.vala"
		break;
#line 35 "../src/user-list.vala"
		case USER_LIST_SESSION_PROPERTY:
#line 35 "../src/user-list.vala"
		g_value_set_string (value, user_list_get_session (self));
#line 35 "../src/user-list.vala"
		break;
#line 11728 "user-list.c"
		default:
#line 35 "../src/user-list.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 35 "../src/user-list.vala"
		break;
#line 11734 "user-list.c"
	}
}

static void
_vala_user_list_set_property (GObject * object,
                              guint property_id,
                              const GValue * value,
                              GParamSpec * pspec)
{
	UserList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_USER_LIST, UserList);
#line 35 "../src/user-list.vala"
	switch (property_id) {
#line 35 "../src/user-list.vala"
		case USER_LIST_OFFER_GUEST_PROPERTY:
#line 35 "../src/user-list.vala"
		user_list_set_offer_guest (self, g_value_get_boolean (value));
#line 35 "../src/user-list.vala"
		break;
#line 35 "../src/user-list.vala"
		case USER_LIST_SHOW_HIDDEN_USERS_PROPERTY:
#line 35 "../src/user-list.vala"
		user_list_set_show_hidden_users (self, g_value_get_boolean (value));
#line 35 "../src/user-list.vala"
		break;
#line 35 "../src/user-list.vala"
		case USER_LIST_DEFAULT_SESSION_PROPERTY:
#line 35 "../src/user-list.vala"
		user_list_set_default_session (self, g_value_get_string (value));
#line 35 "../src/user-list.vala"
		break;
#line 35 "../src/user-list.vala"
		case USER_LIST_SESSION_PROPERTY:
#line 35 "../src/user-list.vala"
		user_list_set_session (self, g_value_get_string (value));
#line 35 "../src/user-list.vala"
		break;
#line 11772 "user-list.c"
		default:
#line 35 "../src/user-list.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 35 "../src/user-list.vala"
		break;
#line 11778 "user-list.c"
	}
}

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

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

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

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

