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

/* This file is part of GNOME Boxes. License: LGPLv2+*/

#include <glib.h>
#include <glib-object.h>
#include <clutter/clutter.h>
#include <clutter-gtk/clutter-gtk.h>
#include <gtk/gtk.h>
#include <libcommon.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <libxml/uri.h>
#include <libvirt-gconfig/libvirt-gconfig.h>
#include <osinfo/osinfo.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <libvirt-gobject/libvirt-gobject.h>
#include <float.h>
#include <math.h>
#include <libgd/gd.h>
#include <gdk/gdk.h>


#define BOXES_TYPE_WIZARD_PAGE (boxes_wizard_page_get_type ())

#define BOXES_TYPE_UI (boxes_ui_get_type ())
#define BOXES_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_UI, BoxesUI))
#define BOXES_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_UI, BoxesUIClass))
#define BOXES_IS_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_UI))
#define BOXES_IS_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_UI))
#define BOXES_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_UI, BoxesUIClass))

typedef struct _BoxesUI BoxesUI;
typedef struct _BoxesUIClass BoxesUIClass;
typedef struct _BoxesUIPrivate BoxesUIPrivate;

#define BOXES_TYPE_UI_STATE (boxes_ui_state_get_type ())

#define BOXES_TYPE_WIZARD (boxes_wizard_get_type ())
#define BOXES_WIZARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_WIZARD, BoxesWizard))
#define BOXES_WIZARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_WIZARD, BoxesWizardClass))
#define BOXES_IS_WIZARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_WIZARD))
#define BOXES_IS_WIZARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_WIZARD))
#define BOXES_WIZARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_WIZARD, BoxesWizardClass))

typedef struct _BoxesWizard BoxesWizard;
typedef struct _BoxesWizardClass BoxesWizardClass;
typedef struct _BoxesWizardPrivate BoxesWizardPrivate;

#define BOXES_TYPE_WIZARD_SOURCE (boxes_wizard_source_get_type ())
#define BOXES_WIZARD_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_WIZARD_SOURCE, BoxesWizardSource))
#define BOXES_WIZARD_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_WIZARD_SOURCE, BoxesWizardSourceClass))
#define BOXES_IS_WIZARD_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_WIZARD_SOURCE))
#define BOXES_IS_WIZARD_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_WIZARD_SOURCE))
#define BOXES_WIZARD_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_WIZARD_SOURCE, BoxesWizardSourceClass))

typedef struct _BoxesWizardSource BoxesWizardSource;
typedef struct _BoxesWizardSourceClass BoxesWizardSourceClass;

#define BOXES_WIZARD_TYPE_WIZARD_SUMMARY (boxes_wizard_wizard_summary_get_type ())
#define BOXES_WIZARD_WIZARD_SUMMARY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummary))
#define BOXES_WIZARD_WIZARD_SUMMARY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummaryClass))
#define BOXES_WIZARD_IS_WIZARD_SUMMARY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_WIZARD_TYPE_WIZARD_SUMMARY))
#define BOXES_WIZARD_IS_WIZARD_SUMMARY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_WIZARD_TYPE_WIZARD_SUMMARY))
#define BOXES_WIZARD_WIZARD_SUMMARY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummaryClass))

typedef struct _BoxesWizardWizardSummary BoxesWizardWizardSummary;
typedef struct _BoxesWizardWizardSummaryClass BoxesWizardWizardSummaryClass;

#define BOXES_TYPE_MEDIA_MANAGER (boxes_media_manager_get_type ())
#define BOXES_MEDIA_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_MEDIA_MANAGER, BoxesMediaManager))
#define BOXES_MEDIA_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_MEDIA_MANAGER, BoxesMediaManagerClass))
#define BOXES_IS_MEDIA_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_MEDIA_MANAGER))
#define BOXES_IS_MEDIA_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_MEDIA_MANAGER))
#define BOXES_MEDIA_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_MEDIA_MANAGER, BoxesMediaManagerClass))

typedef struct _BoxesMediaManager BoxesMediaManager;
typedef struct _BoxesMediaManagerClass BoxesMediaManagerClass;

#define BOXES_TYPE_VM_CREATOR (boxes_vm_creator_get_type ())
#define BOXES_VM_CREATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_VM_CREATOR, BoxesVMCreator))
#define BOXES_VM_CREATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_VM_CREATOR, BoxesVMCreatorClass))
#define BOXES_IS_VM_CREATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_VM_CREATOR))
#define BOXES_IS_VM_CREATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_VM_CREATOR))
#define BOXES_VM_CREATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_VM_CREATOR, BoxesVMCreatorClass))

typedef struct _BoxesVMCreator BoxesVMCreator;
typedef struct _BoxesVMCreatorClass BoxesVMCreatorClass;

#define BOXES_TYPE_COLLECTION_ITEM (boxes_collection_item_get_type ())
#define BOXES_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItem))
#define BOXES_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))
#define BOXES_IS_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_IS_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_COLLECTION_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))

typedef struct _BoxesCollectionItem BoxesCollectionItem;
typedef struct _BoxesCollectionItemClass BoxesCollectionItemClass;

#define BOXES_TYPE_MACHINE (boxes_machine_get_type ())
#define BOXES_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_MACHINE, BoxesMachine))
#define BOXES_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_MACHINE, BoxesMachineClass))
#define BOXES_IS_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_MACHINE))
#define BOXES_IS_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_MACHINE))
#define BOXES_MACHINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_MACHINE, BoxesMachineClass))

typedef struct _BoxesMachine BoxesMachine;
typedef struct _BoxesMachineClass BoxesMachineClass;

#define BOXES_TYPE_LIBVIRT_MACHINE (boxes_libvirt_machine_get_type ())
#define BOXES_LIBVIRT_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_LIBVIRT_MACHINE, BoxesLibvirtMachine))
#define BOXES_LIBVIRT_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_LIBVIRT_MACHINE, BoxesLibvirtMachineClass))
#define BOXES_IS_LIBVIRT_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_LIBVIRT_MACHINE))
#define BOXES_IS_LIBVIRT_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_LIBVIRT_MACHINE))
#define BOXES_LIBVIRT_MACHINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_LIBVIRT_MACHINE, BoxesLibvirtMachineClass))

typedef struct _BoxesLibvirtMachine BoxesLibvirtMachine;
typedef struct _BoxesLibvirtMachineClass BoxesLibvirtMachineClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_ptr_array_unref0(var) ((var == NULL) ? NULL : (var = (g_ptr_array_unref (var), NULL)))
#define _boxes_vm_creator_unref0(var) ((var == NULL) ? NULL : (var = (boxes_vm_creator_unref (var), NULL)))

#define BOXES_TYPE_SOURCE_PAGE (boxes_source_page_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _BoxesWizardSourcePrivate BoxesWizardSourcePrivate;
typedef struct _Block50Data Block50Data;

#define BOXES_TYPE_APP (boxes_app_get_type ())
#define BOXES_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_APP, BoxesApp))
#define BOXES_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_APP, BoxesAppClass))
#define BOXES_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_APP))
#define BOXES_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_APP))
#define BOXES_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_APP, BoxesAppClass))

typedef struct _BoxesApp BoxesApp;
typedef struct _BoxesAppClass BoxesAppClass;
typedef struct _BoxesWizardCreateData BoxesWizardCreateData;
#define _xmlFreeURI0(var) ((var == NULL) ? NULL : (var = (xmlFreeURI (var), NULL)))

#define BOXES_TYPE_INSTALLER_MEDIA (boxes_installer_media_get_type ())
#define BOXES_INSTALLER_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_INSTALLER_MEDIA, BoxesInstallerMedia))
#define BOXES_INSTALLER_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_INSTALLER_MEDIA, BoxesInstallerMediaClass))
#define BOXES_IS_INSTALLER_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_INSTALLER_MEDIA))
#define BOXES_IS_INSTALLER_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_INSTALLER_MEDIA))
#define BOXES_INSTALLER_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_INSTALLER_MEDIA, BoxesInstallerMediaClass))

typedef struct _BoxesInstallerMedia BoxesInstallerMedia;
typedef struct _BoxesInstallerMediaClass BoxesInstallerMediaClass;
typedef struct _BoxesInstallerMediaPrivate BoxesInstallerMediaPrivate;
typedef struct _BoxesAppPrivate BoxesAppPrivate;

#define BOXES_TYPE_SEARCHBAR (boxes_searchbar_get_type ())
#define BOXES_SEARCHBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_SEARCHBAR, BoxesSearchbar))
#define BOXES_SEARCHBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_SEARCHBAR, BoxesSearchbarClass))
#define BOXES_IS_SEARCHBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_SEARCHBAR))
#define BOXES_IS_SEARCHBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_SEARCHBAR))
#define BOXES_SEARCHBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_SEARCHBAR, BoxesSearchbarClass))

typedef struct _BoxesSearchbar BoxesSearchbar;
typedef struct _BoxesSearchbarClass BoxesSearchbarClass;

#define BOXES_TYPE_TOPBAR (boxes_topbar_get_type ())
#define BOXES_TOPBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_TOPBAR, BoxesTopbar))
#define BOXES_TOPBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_TOPBAR, BoxesTopbarClass))
#define BOXES_IS_TOPBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_TOPBAR))
#define BOXES_IS_TOPBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_TOPBAR))
#define BOXES_TOPBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_TOPBAR, BoxesTopbarClass))

typedef struct _BoxesTopbar BoxesTopbar;
typedef struct _BoxesTopbarClass BoxesTopbarClass;

#define BOXES_TYPE_NOTIFICATIONBAR (boxes_notificationbar_get_type ())
#define BOXES_NOTIFICATIONBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_NOTIFICATIONBAR, BoxesNotificationbar))
#define BOXES_NOTIFICATIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_NOTIFICATIONBAR, BoxesNotificationbarClass))
#define BOXES_IS_NOTIFICATIONBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_NOTIFICATIONBAR))
#define BOXES_IS_NOTIFICATIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_NOTIFICATIONBAR))
#define BOXES_NOTIFICATIONBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_NOTIFICATIONBAR, BoxesNotificationbarClass))

typedef struct _BoxesNotificationbar BoxesNotificationbar;
typedef struct _BoxesNotificationbarClass BoxesNotificationbarClass;

#define BOXES_TYPE_REVEALER (boxes_revealer_get_type ())
#define BOXES_REVEALER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_REVEALER, BoxesRevealer))
#define BOXES_REVEALER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_REVEALER, BoxesRevealerClass))
#define BOXES_IS_REVEALER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_REVEALER))
#define BOXES_IS_REVEALER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_REVEALER))
#define BOXES_REVEALER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_REVEALER, BoxesRevealerClass))

typedef struct _BoxesRevealer BoxesRevealer;
typedef struct _BoxesRevealerClass BoxesRevealerClass;

#define BOXES_TYPE_SIDEBAR (boxes_sidebar_get_type ())
#define BOXES_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_SIDEBAR, BoxesSidebar))
#define BOXES_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_SIDEBAR, BoxesSidebarClass))
#define BOXES_IS_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_SIDEBAR))
#define BOXES_IS_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_SIDEBAR))
#define BOXES_SIDEBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_SIDEBAR, BoxesSidebarClass))

typedef struct _BoxesSidebar BoxesSidebar;
typedef struct _BoxesSidebarClass BoxesSidebarClass;

#define BOXES_TYPE_SELECTIONBAR (boxes_selectionbar_get_type ())
#define BOXES_SELECTIONBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_SELECTIONBAR, BoxesSelectionbar))
#define BOXES_SELECTIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_SELECTIONBAR, BoxesSelectionbarClass))
#define BOXES_IS_SELECTIONBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_SELECTIONBAR))
#define BOXES_IS_SELECTIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_SELECTIONBAR))
#define BOXES_SELECTIONBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_SELECTIONBAR, BoxesSelectionbarClass))

typedef struct _BoxesSelectionbar BoxesSelectionbar;
typedef struct _BoxesSelectionbarClass BoxesSelectionbarClass;

#define BOXES_TYPE_PROPERTIES (boxes_properties_get_type ())
#define BOXES_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_PROPERTIES, BoxesProperties))
#define BOXES_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_PROPERTIES, BoxesPropertiesClass))
#define BOXES_IS_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_PROPERTIES))
#define BOXES_IS_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_PROPERTIES))
#define BOXES_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_PROPERTIES, BoxesPropertiesClass))

typedef struct _BoxesProperties BoxesProperties;
typedef struct _BoxesPropertiesClass BoxesPropertiesClass;

#define BOXES_TYPE_DISPLAY_PAGE (boxes_display_page_get_type ())
#define BOXES_DISPLAY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_DISPLAY_PAGE, BoxesDisplayPage))
#define BOXES_DISPLAY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_DISPLAY_PAGE, BoxesDisplayPageClass))
#define BOXES_IS_DISPLAY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_DISPLAY_PAGE))
#define BOXES_IS_DISPLAY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_DISPLAY_PAGE))
#define BOXES_DISPLAY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_DISPLAY_PAGE, BoxesDisplayPageClass))

typedef struct _BoxesDisplayPage BoxesDisplayPage;
typedef struct _BoxesDisplayPageClass BoxesDisplayPageClass;

#define BOXES_TYPE_COLLECTION (boxes_collection_get_type ())
#define BOXES_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION, BoxesCollection))
#define BOXES_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION, BoxesCollectionClass))
#define BOXES_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION))
#define BOXES_IS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION))
#define BOXES_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION, BoxesCollectionClass))

typedef struct _BoxesCollection BoxesCollection;
typedef struct _BoxesCollectionClass BoxesCollectionClass;

#define BOXES_TYPE_COLLECTION_FILTER (boxes_collection_filter_get_type ())
#define BOXES_COLLECTION_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilter))
#define BOXES_COLLECTION_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilterClass))
#define BOXES_IS_COLLECTION_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_FILTER))
#define BOXES_IS_COLLECTION_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_FILTER))
#define BOXES_COLLECTION_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilterClass))

typedef struct _BoxesCollectionFilter BoxesCollectionFilter;
typedef struct _BoxesCollectionFilterClass BoxesCollectionFilterClass;

#define BOXES_TYPE_COLLECTION_VIEW (boxes_collection_view_get_type ())
#define BOXES_COLLECTION_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_VIEW, BoxesCollectionView))
#define BOXES_COLLECTION_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_VIEW, BoxesCollectionViewClass))
#define BOXES_IS_COLLECTION_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_VIEW))
#define BOXES_IS_COLLECTION_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_VIEW))
#define BOXES_COLLECTION_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_VIEW, BoxesCollectionViewClass))

typedef struct _BoxesCollectionView BoxesCollectionView;
typedef struct _BoxesCollectionViewClass BoxesCollectionViewClass;
typedef struct _BoxesWizardReviewData BoxesWizardReviewData;
#define _boxes_pair_unref0(var) ((var == NULL) ? NULL : (var = (boxes_pair_unref (var), NULL)))
#define __g_list_free__boxes_pair_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__boxes_pair_unref0_ (var), NULL)))
typedef struct _Block51Data Block51Data;
typedef struct _BoxesCollectionItemPrivate BoxesCollectionItemPrivate;

#define BOXES_TYPE_IPROPERTIES_PROVIDER (boxes_iproperties_provider_get_type ())
#define BOXES_IPROPERTIES_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_IPROPERTIES_PROVIDER, BoxesIPropertiesProvider))
#define BOXES_IS_IPROPERTIES_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_IPROPERTIES_PROVIDER))
#define BOXES_IPROPERTIES_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BOXES_TYPE_IPROPERTIES_PROVIDER, BoxesIPropertiesProviderIface))

typedef struct _BoxesIPropertiesProvider BoxesIPropertiesProvider;
typedef struct _BoxesIPropertiesProviderIface BoxesIPropertiesProviderIface;

#define BOXES_TYPE_PROPERTIES_PAGE (boxes_properties_page_get_type ())

#define BOXES_TYPE_PROPERTY (boxes_property_get_type ())
#define BOXES_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_PROPERTY, BoxesProperty))
#define BOXES_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_PROPERTY, BoxesPropertyClass))
#define BOXES_IS_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_PROPERTY))
#define BOXES_IS_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_PROPERTY))
#define BOXES_PROPERTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_PROPERTY, BoxesPropertyClass))

typedef struct _BoxesProperty BoxesProperty;
typedef struct _BoxesPropertyClass BoxesPropertyClass;
typedef struct _BoxesMachinePrivate BoxesMachinePrivate;

#define BOXES_TYPE_MACHINE_ACTOR (boxes_machine_actor_get_type ())
#define BOXES_MACHINE_ACTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_MACHINE_ACTOR, BoxesMachineActor))
#define BOXES_MACHINE_ACTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_MACHINE_ACTOR, BoxesMachineActorClass))
#define BOXES_IS_MACHINE_ACTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_MACHINE_ACTOR))
#define BOXES_IS_MACHINE_ACTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_MACHINE_ACTOR))
#define BOXES_MACHINE_ACTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_MACHINE_ACTOR, BoxesMachineActorClass))

typedef struct _BoxesMachineActor BoxesMachineActor;
typedef struct _BoxesMachineActorClass BoxesMachineActorClass;
typedef struct _BoxesLibvirtMachinePrivate BoxesLibvirtMachinePrivate;
#define __vala_GVirStorageVolInfo_free0(var) ((var == NULL) ? NULL : (var = (_vala_GVirStorageVolInfo_free (var), NULL)))
typedef struct _BoxesWizardDoReviewCancellableData BoxesWizardDoReviewCancellableData;
typedef struct _BoxesSidebarPrivate BoxesSidebarPrivate;

#define BOXES_TYPE_SIDEBAR_PAGE (boxes_sidebar_page_get_type ())
typedef struct _BoxesTopbarPrivate BoxesTopbarPrivate;

#define BOXES_TYPE_TOPBAR_PAGE (boxes_topbar_page_get_type ())
typedef struct _BoxesWizardWizardSummaryPrivate BoxesWizardWizardSummaryPrivate;
typedef struct _Block52Data Block52Data;
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))

typedef enum  {
	BOXES_WIZARD_PAGE_INTRODUCTION,
	BOXES_WIZARD_PAGE_SOURCE,
	BOXES_WIZARD_PAGE_PREPARATION,
	BOXES_WIZARD_PAGE_SETUP,
	BOXES_WIZARD_PAGE_REVIEW,
	BOXES_WIZARD_PAGE_LAST
} BoxesWizardPage;

typedef enum  {
	BOXES_UI_STATE_NONE,
	BOXES_UI_STATE_COLLECTION,
	BOXES_UI_STATE_CREDS,
	BOXES_UI_STATE_DISPLAY,
	BOXES_UI_STATE_SETTINGS,
	BOXES_UI_STATE_WIZARD,
	BOXES_UI_STATE_PROPERTIES
} BoxesUIState;

struct _BoxesUI {
	GObject parent_instance;
	BoxesUIPrivate * priv;
	BoxesUIState previous_ui_state;
};

struct _BoxesUIClass {
	GObjectClass parent_class;
	void (*ui_state_changed) (BoxesUI* self);
	ClutterActor* (*get_actor) (BoxesUI* self);
};

struct _BoxesWizard {
	BoxesUI parent_instance;
	BoxesWizardPrivate * priv;
};

struct _BoxesWizardClass {
	BoxesUIClass parent_class;
};

struct _BoxesWizardPrivate {
	GtkClutterActor* gtk_actor;
	GPtrArray* steps;
	GtkNotebook* notebook;
	GtkButton* cancel_button;
	GtkButton* back_button;
	GtkButton* next_button;
	BoxesWizardSource* wizard_source;
	BoxesWizardWizardSummary* summary;
	BoxesCollectionSource* source;
	GtkProgressBar* prep_progress;
	GtkVBox* setup_vbox;
	GtkLabel* review_label;
	GtkLabel* nokvm_label;
	GtkImage* installer_image;
	BoxesMediaManager* media_manager;
	BoxesVMCreator* vm_creator;
	BoxesLibvirtMachine* _machine;
	BoxesWizardPage _page;
	GCancellable* review_cancellable;
	gboolean skip_review_for_live;
};

typedef enum  {
	BOXES_SOURCE_PAGE_MAIN,
	BOXES_SOURCE_PAGE_URL,
	BOXES_SOURCE_PAGE_LAST
} BoxesSourcePage;

struct _BoxesWizardSource {
	GObject parent_instance;
	BoxesWizardSourcePrivate * priv;
	GtkEntry* url_entry;
};

struct _BoxesWizardSourceClass {
	GObjectClass parent_class;
};

struct _Block50Data {
	int _ref_count_;
	BoxesWizard * self;
	gpointer _async_data_;
};

struct _BoxesWizardCreateData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	BoxesWizard* self;
	gboolean result;
	Block50Data* _data50_;
	BoxesCollectionSource* _tmp0_;
	BoxesVMCreator* _tmp1_;
	BoxesLibvirtMachine* _tmp2_;
	GCancellable* _tmp3_;
	gulong _tmp4_;
	gulong wait;
	gulong _tmp5_;
	BoxesLibvirtMachine* _tmp6_;
	GtkButton* _tmp7_;
	BoxesVMCreator* _tmp8_;
	BoxesLibvirtMachine* _tmp9_;
	GError* _error_;
	GError* _tmp10_;
	const gchar* _tmp11_;
	BoxesWizardSource* _tmp12_;
	BoxesCollectionSource* _tmp13_;
	BoxesApp* _tmp14_;
	BoxesCollectionSource* _tmp15_;
	GError * _inner_error_;
};

struct _BoxesInstallerMedia {
	GObject parent_instance;
	BoxesInstallerMediaPrivate * priv;
	OsinfoOs* os;
	OsinfoResources* resources;
	OsinfoMedia* os_media;
	gchar* label;
	gchar* device_file;
	gchar* mount_point;
	gboolean from_image;
};

struct _BoxesInstallerMediaClass {
	GObjectClass parent_class;
	void (*set_direct_boot_params) (BoxesInstallerMedia* self, GVirConfigDomainOs* os);
	void (*prepare_for_installation) (BoxesInstallerMedia* self, const gchar* vm_name, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*prepare_for_installation_finish) (BoxesInstallerMedia* self, GAsyncResult* _res_, GError** error);
	void (*setup_domain_config) (BoxesInstallerMedia* self, GVirConfigDomain* domain);
	void (*populate_setup_vbox) (BoxesInstallerMedia* self, GtkVBox* setup_vbox);
	GList* (*get_vm_properties) (BoxesInstallerMedia* self);
	guint64 (*get_installed_size) (BoxesInstallerMedia* self);
	gboolean (*get_need_user_input_for_vm_creation) (BoxesInstallerMedia* self);
	gboolean (*get_user_data_for_vm_creation_available) (BoxesInstallerMedia* self);
	gboolean (*get_supports_virtio_disk) (BoxesInstallerMedia* self);
};

struct _BoxesApp {
	BoxesUI parent_instance;
	BoxesAppPrivate * priv;
	GtkApplicationWindow* window;
	GtkNotebook* notebook;
	GtkClutterEmbed* embed;
	ClutterStage* stage;
	ClutterBinLayout* stage_bin;
	ClutterActor* overlay_bin_actor;
	ClutterBinLayout* overlay_bin;
	BoxesCollectionItem* current_item;
	BoxesSearchbar* searchbar;
	BoxesTopbar* topbar;
	BoxesNotificationbar* notificationbar;
	BoxesRevealer* sidebar_revealer;
	BoxesRevealer* searchbar_revealer;
	BoxesSidebar* sidebar;
	BoxesSelectionbar* selectionbar;
	guint duration;
	GSettings* settings;
	BoxesWizard* wizard;
	BoxesProperties* properties;
	BoxesDisplayPage* display_page;
	BoxesCollection* collection;
	BoxesCollectionFilter* filter;
	GSimpleAction* action_properties;
	GSimpleAction* action_fullscreen;
	GSimpleAction* action_shutdown;
	BoxesCollectionView* view;
};

struct _BoxesAppClass {
	BoxesUIClass parent_class;
};

struct _BoxesWizardReviewData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	BoxesWizard* self;
	gboolean result;
	GCancellable* _tmp0_;
	GCancellable* _tmp1_;
	gboolean _tmp2_;
	gboolean _result_;
};

struct _Block51Data {
	int _ref_count_;
	BoxesWizard * self;
	GVirConfigDomain* config;
};

struct _BoxesCollectionItem {
	BoxesUI parent_instance;
	BoxesCollectionItemPrivate * priv;
};

struct _BoxesCollectionItemClass {
	BoxesUIClass parent_class;
};

typedef enum  {
	BOXES_PROPERTIES_PAGE_LOGIN,
	BOXES_PROPERTIES_PAGE_SYSTEM,
	BOXES_PROPERTIES_PAGE_DISPLAY,
	BOXES_PROPERTIES_PAGE_DEVICES,
	BOXES_PROPERTIES_PAGE_LAST
} BoxesPropertiesPage;

struct _BoxesIPropertiesProviderIface {
	GTypeInterface parent_iface;
	GList* (*get_properties) (BoxesIPropertiesProvider* self, BoxesPropertiesPage page);
};

struct _BoxesMachine {
	BoxesCollectionItem parent_instance;
	BoxesMachinePrivate * priv;
	BoxesMachineActor* machine_actor;
	BoxesCollectionSource* source;
	BoxesDisplayConfig* config;
	gboolean stay_on_display;
	gboolean suspend_at_exit;
	gboolean deleted;
};

struct _BoxesMachineClass {
	BoxesCollectionItemClass parent_class;
	void (*take_screenshot) (BoxesMachine* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	GdkPixbuf* (*take_screenshot_finish) (BoxesMachine* self, GAsyncResult* _res_, GError** error);
	GList* (*get_properties) (BoxesMachine* self, BoxesPropertiesPage page);
	void (*connect_display) (BoxesMachine* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*connect_display_finish) (BoxesMachine* self, GAsyncResult* _res_, GError** error);
	void (*disconnect_display) (BoxesMachine* self);
	void (*delete) (BoxesMachine* self, gboolean by_user);
};

struct _BoxesLibvirtMachine {
	BoxesMachine parent_instance;
	BoxesLibvirtMachinePrivate * priv;
	GVirDomain* domain;
	GVirConfigDomain* domain_config;
	GVirConnection* connection;
	GVirStorageVol* storage_volume;
	BoxesVMCreator* vm_creator;
	gdouble* cpu_stats;
	gint cpu_stats_length1;
	gint _cpu_stats_size_;
	gdouble* io_stats;
	gint io_stats_length1;
	gint _io_stats_size_;
	gdouble* net_stats;
	gint net_stats_length1;
	gint _net_stats_size_;
};

struct _BoxesLibvirtMachineClass {
	BoxesMachineClass parent_class;
};

typedef void (*BoxesWizardWizardSummaryCustomizeFunc) (void* user_data);
struct _BoxesWizardDoReviewCancellableData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	BoxesWizard* self;
	gboolean result;
	GCancellable* _tmp0_;
	GtkLabel* _tmp1_;
	BoxesWizardWizardSummary* _tmp2_;
	gboolean _tmp3_;
	BoxesVMCreator* _tmp4_;
	BoxesLibvirtMachine* _tmp5_;
	gboolean _tmp6_;
	BoxesVMCreator* _tmp7_;
	GCancellable* _tmp8_;
	BoxesLibvirtMachine* _tmp9_;
	BoxesLibvirtMachine* _tmp10_;
	BoxesLibvirtMachine* _tmp11_;
	GError* cancel_error;
	GError* _error_;
	BoxesApp* _tmp12_;
	BoxesNotificationbar* _tmp13_;
	const gchar* _tmp14_;
	GError* _tmp15_;
	const gchar* _tmp16_;
	BoxesLibvirtMachine* _tmp17_;
	GCancellable* _tmp18_;
	gboolean _tmp19_;
	GtkLabel* _tmp20_;
	const gchar* _tmp21_;
	BoxesCollectionSource* _tmp22_;
	BoxesCollectionSource* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	xmlURI* _tmp27_;
	xmlURI* _tmp28_;
	xmlURI* uri;
	BoxesWizardWizardSummary* _tmp29_;
	const gchar* _tmp30_;
	BoxesCollectionSource* _tmp31_;
	gchar* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	gboolean _tmp35_;
	xmlURI* _tmp36_;
	xmlURI* _tmp37_;
	const gchar* _tmp38_;
	gboolean _tmp39_;
	BoxesWizardWizardSummary* _tmp40_;
	const gchar* _tmp41_;
	xmlURI* _tmp42_;
	const gchar* _tmp43_;
	gchar* _tmp44_;
	gchar* _tmp45_;
	BoxesWizardWizardSummary* _tmp46_;
	const gchar* _tmp47_;
	BoxesCollectionSource* _tmp48_;
	gchar* _tmp49_;
	gchar* _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	gchar* _tmp53_;
	xmlURI* _tmp54_;
	const gchar* _tmp55_;
	const gchar* _tmp56_;
	GQuark _tmp58_;
	xmlURI* _tmp59_;
	const gchar* _tmp60_;
	gchar* _tmp61_;
	gchar* _tmp62_;
	const gchar* _tmp63_;
	xmlURI* _tmp64_;
	const gchar* _tmp65_;
	gchar* _tmp66_;
	const gchar* _tmp67_;
	BoxesQuery* _tmp68_;
	BoxesQuery* query;
	BoxesWizardWizardSummary* _tmp69_;
	const gchar* _tmp70_;
	BoxesQuery* _tmp71_;
	gchar* _tmp72_;
	gchar* _tmp73_;
	BoxesWizardWizardSummary* _tmp74_;
	const gchar* _tmp75_;
	BoxesQuery* _tmp76_;
	gchar* _tmp77_;
	gchar* _tmp78_;
	xmlURI* _tmp79_;
	gint _tmp80_;
	BoxesWizardWizardSummary* _tmp81_;
	const gchar* _tmp82_;
	xmlURI* _tmp83_;
	gint _tmp84_;
	gchar* _tmp85_;
	gchar* _tmp86_;
	BoxesCollectionSource* _tmp87_;
	gchar* _tmp88_;
	gchar* _tmp89_;
	gchar* _tmp90_;
	gboolean _tmp91_;
	GtkLabel* _tmp92_;
	const gchar* _tmp93_;
	BoxesLibvirtMachine* _tmp94_;
	BoxesVMCreator* _tmp95_;
	BoxesInstallerMedia* _tmp96_;
	BoxesInstallerMedia* _tmp97_;
	GList* _tmp98_;
	GList* property_collection;
	GList* property_it;
	BoxesPair* _tmp99_;
	BoxesPair* property;
	BoxesWizardWizardSummary* _tmp100_;
	BoxesPair* _tmp101_;
	gconstpointer _tmp102_;
	BoxesPair* _tmp103_;
	gconstpointer _tmp104_;
	Block51Data* _data51_;
	GVirConfigDomain* _tmp105_;
	GVirConfigDomain* _tmp106_;
	guint64 _tmp107_;
	guint64 _tmp108_;
	gchar* _tmp109_;
	gchar* memory;
	BoxesWizardWizardSummary* _tmp110_;
	const gchar* _tmp111_;
	const gchar* _tmp112_;
	GError* _vala1__error_;
	BoxesLibvirtMachine* _tmp113_;
	const gchar* _tmp114_;
	const gchar* _tmp115_;
	GError* _tmp116_;
	const gchar* _tmp117_;
	BoxesLibvirtMachine* _tmp118_;
	GVirStorageVol* _tmp119_;
	BoxesLibvirtMachine* _tmp120_;
	GVirStorageVol* _tmp121_;
	GVirStorageVolInfo* _tmp122_;
	GVirStorageVolInfo* volume_info;
	GVirStorageVolInfo* _tmp123_;
	guint64 _tmp124_;
	gchar* _tmp125_;
	gchar* capacity;
	BoxesWizardWizardSummary* _tmp126_;
	const gchar* _tmp127_;
	const gchar* _tmp128_;
	gchar* _tmp129_;
	gchar* _tmp130_;
	const gchar* _tmp131_;
	GError* _vala2__error_;
	BoxesLibvirtMachine* _tmp132_;
	GVirStorageVol* _tmp133_;
	const gchar* _tmp134_;
	GError* _tmp135_;
	const gchar* _tmp136_;
	GtkLabel* _tmp137_;
	BoxesLibvirtMachine* _tmp138_;
	GVirConfigDomain* _tmp139_;
	GVirConfigDomainVirtType _tmp140_;
	BoxesWizardWizardSummary* _tmp141_;
	GError * _inner_error_;
};

struct _BoxesSidebar {
	BoxesUI parent_instance;
	BoxesSidebarPrivate * priv;
	GtkNotebook* notebook;
};

struct _BoxesSidebarClass {
	BoxesUIClass parent_class;
};

typedef enum  {
	BOXES_SIDEBAR_PAGE_COLLECTION,
	BOXES_SIDEBAR_PAGE_WIZARD,
	BOXES_SIDEBAR_PAGE_PROPERTIES
} BoxesSidebarPage;

struct _BoxesTopbar {
	BoxesUI parent_instance;
	BoxesTopbarPrivate * priv;
	GtkNotebook* notebook;
};

struct _BoxesTopbarClass {
	BoxesUIClass parent_class;
};

typedef enum  {
	BOXES_TOPBAR_PAGE_COLLECTION,
	BOXES_TOPBAR_PAGE_SELECTION,
	BOXES_TOPBAR_PAGE_WIZARD,
	BOXES_TOPBAR_PAGE_PROPERTIES
} BoxesTopbarPage;

struct _BoxesWizardWizardSummary {
	GObject parent_instance;
	BoxesWizardWizardSummaryPrivate * priv;
};

struct _BoxesWizardWizardSummaryClass {
	GObjectClass parent_class;
};

struct _BoxesWizardWizardSummaryPrivate {
	GtkTable* table;
	guint current_row;
};

struct _Block52Data {
	int _ref_count_;
	BoxesWizardWizardSummary * self;
	BoxesWizardWizardSummaryCustomizeFunc customize_func;
	gpointer customize_func_target;
};


static gpointer boxes_wizard_parent_class = NULL;
extern BoxesApp* boxes_app_app;
static gpointer boxes_wizard_wizard_summary_parent_class = NULL;

GType boxes_wizard_page_get_type (void) G_GNUC_CONST;
GType boxes_ui_get_type (void) G_GNUC_CONST;
GType boxes_ui_state_get_type (void) G_GNUC_CONST;
GType boxes_wizard_get_type (void) G_GNUC_CONST;
GType boxes_wizard_source_get_type (void) G_GNUC_CONST;
static GType boxes_wizard_wizard_summary_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
GType boxes_media_manager_get_type (void) G_GNUC_CONST;
gpointer boxes_vm_creator_ref (gpointer instance);
void boxes_vm_creator_unref (gpointer instance);
GParamSpec* boxes_param_spec_vm_creator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void boxes_value_set_vm_creator (GValue* value, gpointer v_object);
void boxes_value_take_vm_creator (GValue* value, gpointer v_object);
gpointer boxes_value_get_vm_creator (const GValue* value);
GType boxes_vm_creator_get_type (void) G_GNUC_CONST;
GType boxes_collection_item_get_type (void) G_GNUC_CONST;
GType boxes_machine_get_type (void) G_GNUC_CONST;
GType boxes_libvirt_machine_get_type (void) G_GNUC_CONST;
#define BOXES_WIZARD_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BOXES_TYPE_WIZARD, BoxesWizardPrivate))
enum  {
	BOXES_WIZARD_DUMMY_PROPERTY,
	BOXES_WIZARD_ACTOR,
	BOXES_WIZARD_MACHINE
};
static void boxes_wizard_wizard_source_update_next (BoxesWizard* self);
GType boxes_source_page_get_type (void) G_GNUC_CONST;
BoxesSourcePage boxes_wizard_source_get_page (BoxesWizardSource* self);
GtkWidget* boxes_wizard_source_get_selected (BoxesWizardSource* self);
const gchar* boxes_wizard_source_get_uri (BoxesWizardSource* self);
static void boxes_wizard_prepare_for_location (BoxesWizard* self, const gchar* location, gboolean probing, GError** error);
void boxes_wizard_source_update_url_page (BoxesWizardSource* self, const gchar* title, const gchar* text, const gchar* icon_name);
BoxesWizard* boxes_wizard_new (void);
BoxesWizard* boxes_wizard_construct (GType object_type);
BoxesUI* boxes_ui_construct (GType object_type);
BoxesWizardSource* boxes_wizard_source_new (BoxesMediaManager* media_manager);
BoxesWizardSource* boxes_wizard_source_construct (GType object_type, BoxesMediaManager* media_manager);
static void _boxes_wizard_wizard_source_update_next_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void _boxes_wizard_wizard_source_update_next_gtk_editable_changed (GtkEditable* _sender, gpointer self);
static void __lambda136_ (BoxesWizard* self);
static void boxes_wizard_set_page (BoxesWizard* self, BoxesWizardPage value);
static void ___lambda136__gtk_entry_activate (GtkEntry* _sender, gpointer self);
static void boxes_wizard_setup_ui (BoxesWizard* self);
void boxes_wizard_cleanup (BoxesWizard* self);
static void boxes_wizard_destroy_machine (BoxesWizard* self);
static void boxes_wizard_create_data_free (gpointer _data);
static void boxes_wizard_create (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean boxes_wizard_create_finish (BoxesWizard* self, GAsyncResult* _res_);
static gboolean boxes_wizard_create_co (BoxesWizardCreateData* _data_);
static Block50Data* block50_data_ref (Block50Data* _data50_);
static void block50_data_unref (void * _userdata_);
BoxesLibvirtMachine* boxes_wizard_get_machine (BoxesWizard* self);
static void ____lambda130_ (Block50Data* _data50_);
static void _____lambda130__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
void boxes_vm_creator_launch_vm (BoxesVMCreator* self, BoxesLibvirtMachine* machine, GError** error);
void boxes_wizard_set_machine (BoxesWizard* self, BoxesLibvirtMachine* value);
void boxes_wizard_source_set_uri (BoxesWizardSource* self, const gchar* value);
GType boxes_app_get_type (void) G_GNUC_CONST;
void boxes_app_add_collection_source (BoxesApp* self, BoxesCollectionSource* source, GAsyncReadyCallback _callback_, gpointer _user_data_);
void boxes_app_add_collection_source_finish (BoxesApp* self, GAsyncResult* _res_);
static void boxes_wizard_prepare_for_installer (BoxesWizard* self, const gchar* path, GError** error);
static void boxes_wizard_prepare_for_uri (BoxesWizard* self, const gchar* uri_as_text, GError** error);
void boxes_media_manager_create_installer_media_for_path (BoxesMediaManager* self, const gchar* path, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
GType boxes_installer_media_get_type (void) G_GNUC_CONST;
BoxesInstallerMedia* boxes_media_manager_create_installer_media_for_path_finish (BoxesMediaManager* self, GAsyncResult* _res_, GError** error);
static void boxes_wizard_on_installer_media_instantiated (BoxesWizard* self, GObject* source_object, GAsyncResult* _result_);
static void _boxes_wizard_on_installer_media_instantiated_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
BoxesVMCreator* boxes_vm_creator_new (BoxesInstallerMedia* install_media);
BoxesVMCreator* boxes_vm_creator_construct (GType object_type, BoxesInstallerMedia* install_media);
void boxes_downloader_fetch_os_logo (GtkImage* image, OsinfoOs* os, gint size, GAsyncReadyCallback _callback_, gpointer _user_data_);
void boxes_downloader_fetch_os_logo_finish (GAsyncResult* _res_);
static void ___lambda135_ (BoxesWizard* self, GObject* object, GAsyncResult* _result_);
static void ____lambda135__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
GType boxes_searchbar_get_type (void) G_GNUC_CONST;
GType boxes_topbar_get_type (void) G_GNUC_CONST;
GType boxes_notificationbar_get_type (void) G_GNUC_CONST;
GType boxes_revealer_get_type (void) G_GNUC_CONST;
GType boxes_sidebar_get_type (void) G_GNUC_CONST;
GType boxes_selectionbar_get_type (void) G_GNUC_CONST;
GType boxes_properties_get_type (void) G_GNUC_CONST;
GType boxes_display_page_get_type (void) G_GNUC_CONST;
GType boxes_collection_get_type (void) G_GNUC_CONST;
GType boxes_collection_filter_get_type (void) G_GNUC_CONST;
GType boxes_collection_view_get_type (void) G_GNUC_CONST;
void boxes_notificationbar_display_error (BoxesNotificationbar* self, const gchar* message);
static gboolean boxes_wizard_prepare (BoxesWizard* self);
BoxesInstallerMedia* boxes_wizard_source_get_install_media (BoxesWizardSource* self);
static gboolean boxes_wizard_setup (BoxesWizard* self);
BoxesInstallerMedia* boxes_vm_creator_get_install_media (BoxesVMCreator* self);
void boxes_installer_media_populate_setup_vbox (BoxesInstallerMedia* self, GtkVBox* setup_vbox);
static void boxes_wizard_review_data_free (gpointer _data);
static void boxes_wizard_review (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean boxes_wizard_review_finish (BoxesWizard* self, GAsyncResult* _res_);
static gboolean boxes_wizard_review_co (BoxesWizardReviewData* _data_);
static void boxes_wizard_do_review_cancellable (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean boxes_wizard_do_review_cancellable_finish (BoxesWizard* self, GAsyncResult* _res_);
static void boxes_wizard_review_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void boxes_wizard_do_review_cancellable_data_free (gpointer _data);
static gboolean boxes_wizard_do_review_cancellable_co (BoxesWizardDoReviewCancellableData* _data_);
static void boxes_wizard_wizard_summary_clear (BoxesWizardWizardSummary* self);
void boxes_vm_creator_create_vm (BoxesVMCreator* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
BoxesLibvirtMachine* boxes_vm_creator_create_vm_finish (BoxesVMCreator* self, GAsyncResult* _res_, GError** error);
static void boxes_wizard_do_review_cancellable_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void boxes_wizard_wizard_summary_add_property (BoxesWizardWizardSummary* self, const gchar* name, const gchar* value);
GList* boxes_installer_media_get_vm_properties (BoxesInstallerMedia* self);
static void _boxes_pair_unref0_ (gpointer var);
static void _g_list_free__boxes_pair_unref0_ (GList* self);
static Block51Data* block51_data_ref (Block51Data* _data51_);
static void block51_data_unref (void * _userdata_);
static void _____lambda127_ (Block51Data* _data51_, GError** error);
GType boxes_properties_page_get_type (void) G_GNUC_CONST;
GType boxes_property_get_type (void) G_GNUC_CONST;
GType boxes_iproperties_provider_get_type (void) G_GNUC_CONST;
GType boxes_machine_actor_get_type (void) G_GNUC_CONST;
static void ______lambda127__boxes_run_in_thread_func (gpointer self, GError** error);
const gchar* boxes_collection_item_get_name (BoxesCollectionItem* self);
static void _vala_GVirStorageVolInfo_free (GVirStorageVolInfo* self);
static void boxes_wizard_wizard_summary_append_customize_button (BoxesWizardWizardSummary* self, BoxesWizardWizardSummaryCustomizeFunc customize_func, void* customize_func_target);
static void __lambda128_ (BoxesWizard* self);
void boxes_app_select_item (BoxesApp* self, BoxesCollectionItem* item);
static void ___lambda128__boxes_wizard_wizard_summary_customize_func (gpointer self);
static void boxes_wizard_add_step (BoxesWizard* self, GtkWidget* widget, const gchar* title, BoxesWizardPage page);
GType boxes_sidebar_page_get_type (void) G_GNUC_CONST;
static gboolean boxes_wizard_skip_page (BoxesWizard* self, BoxesWizardPage page);
static BoxesWizardPage boxes_wizard_get_page (BoxesWizard* self);
gboolean boxes_installer_media_get_need_user_input_for_vm_creation (BoxesInstallerMedia* self);
gboolean boxes_installer_media_get_live (BoxesInstallerMedia* self);
GtkWidget* boxes_wizard_source_get_widget (BoxesWizardSource* self);
static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_new (void);
static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_construct (GType object_type);
static GtkWidget* boxes_wizard_wizard_summary_get_widget (BoxesWizardWizardSummary* self);
GType boxes_topbar_page_get_type (void) G_GNUC_CONST;
static void __lambda137_ (BoxesWizard* self);
void boxes_wizard_source_set_page (BoxesWizardSource* self, BoxesSourcePage value);
void boxes_ui_set_ui_state (BoxesUI* self, BoxesUIState value);
static void ___lambda137__gtk_button_clicked (GtkButton* _sender, gpointer self);
static void __lambda138_ (BoxesWizard* self);
static void ___lambda138__gtk_button_clicked (GtkButton* _sender, gpointer self);
static void __lambda139_ (BoxesWizard* self);
static void ___lambda139__gtk_button_clicked (GtkButton* _sender, gpointer self);
void boxes_wizard_open_with_uri (BoxesWizard* self, const gchar* uri, gboolean skip_review_for_live);
static void boxes_wizard_real_ui_state_changed (BoxesUI* base);
BoxesUIState boxes_ui_get_ui_state (BoxesUI* self);
void boxes_fade_actor (ClutterActor* actor, guint opacity);
ClutterActor* boxes_ui_get_actor (BoxesUI* self);
void boxes_app_delete_machine (BoxesApp* self, BoxesMachine* machine, gboolean by_user);
void boxes_wizard_source_set_selected (BoxesWizardSource* self, GtkWidget* value);
static void _boxes_wizard_page_____lambda129_ (BoxesWizard* self, GObject* obj, GAsyncResult* _result_);
static void __boxes_wizard_page_____lambda129__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
static void _boxes_wizard_page_____lambda134_ (BoxesWizard* self, GObject* obj, GAsyncResult* _result_);
static void __boxes_wizard_page_____lambda134__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
void boxes_get_color (const gchar* desc, GdkColor* result);
static GObject * boxes_wizard_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static void _g_object_unref0_ (gpointer var);
BoxesMediaManager* boxes_media_manager_new (void);
BoxesMediaManager* boxes_media_manager_construct (GType object_type);
#define BOXES_WIZARD_WIZARD_SUMMARY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummaryPrivate))
enum  {
	BOXES_WIZARD_WIZARD_SUMMARY_DUMMY_PROPERTY,
	BOXES_WIZARD_WIZARD_SUMMARY_WIDGET
};
static Block52Data* block52_data_ref (Block52Data* _data52_);
static void block52_data_unref (void * _userdata_);
static void __lambda126_ (Block52Data* _data52_);
static void ___lambda126__gtk_button_clicked (GtkButton* _sender, gpointer self);
static void boxes_wizard_wizard_summary_finalize (GObject* obj);
static void _vala_boxes_wizard_wizard_summary_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void boxes_wizard_finalize (GObject* obj);
static void _vala_boxes_wizard_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_boxes_wizard_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);


GType boxes_wizard_page_get_type (void) {
	static volatile gsize boxes_wizard_page_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_wizard_page_type_id__volatile)) {
		static const GEnumValue values[] = {{BOXES_WIZARD_PAGE_INTRODUCTION, "BOXES_WIZARD_PAGE_INTRODUCTION", "introduction"}, {BOXES_WIZARD_PAGE_SOURCE, "BOXES_WIZARD_PAGE_SOURCE", "source"}, {BOXES_WIZARD_PAGE_PREPARATION, "BOXES_WIZARD_PAGE_PREPARATION", "preparation"}, {BOXES_WIZARD_PAGE_SETUP, "BOXES_WIZARD_PAGE_SETUP", "setup"}, {BOXES_WIZARD_PAGE_REVIEW, "BOXES_WIZARD_PAGE_REVIEW", "review"}, {BOXES_WIZARD_PAGE_LAST, "BOXES_WIZARD_PAGE_LAST", "last"}, {0, NULL, NULL}};
		GType boxes_wizard_page_type_id;
		boxes_wizard_page_type_id = g_enum_register_static ("BoxesWizardPage", values);
		g_once_init_leave (&boxes_wizard_page_type_id__volatile, boxes_wizard_page_type_id);
	}
	return boxes_wizard_page_type_id__volatile;
}


static void boxes_wizard_wizard_source_update_next (BoxesWizard* self) {
	GtkButton* _tmp0_;
	BoxesWizardSource* _tmp1_;
	BoxesSourcePage _tmp2_;
	BoxesSourcePage _tmp3_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, FALSE);
	_tmp1_ = self->priv->wizard_source;
	_tmp2_ = boxes_wizard_source_get_page (_tmp1_);
	_tmp3_ = _tmp2_;
	switch (_tmp3_) {
		case BOXES_SOURCE_PAGE_MAIN:
		{
			GtkButton* _tmp4_;
			BoxesWizardSource* _tmp5_;
			GtkWidget* _tmp6_;
			GtkWidget* _tmp7_;
			_tmp4_ = self->priv->next_button;
			_tmp5_ = self->priv->wizard_source;
			_tmp6_ = boxes_wizard_source_get_selected (_tmp5_);
			_tmp7_ = _tmp6_;
			gtk_widget_set_sensitive ((GtkWidget*) _tmp4_, _tmp7_ != NULL);
			break;
		}
		case BOXES_SOURCE_PAGE_URL:
		{
			GtkButton* _tmp8_;
			BoxesWizardSource* _tmp9_;
			const gchar* _tmp10_;
			const gchar* _tmp11_;
			gint _tmp12_;
			gint _tmp13_;
			const gchar* _tmp14_ = NULL;
			gchar* _tmp15_;
			gchar* text;
			gchar* _tmp16_;
			gchar* icon;
			BoxesWizardSource* _tmp32_;
			const gchar* _tmp33_ = NULL;
			const gchar* _tmp34_;
			const gchar* _tmp35_;
			_tmp8_ = self->priv->next_button;
			_tmp9_ = self->priv->wizard_source;
			_tmp10_ = boxes_wizard_source_get_uri (_tmp9_);
			_tmp11_ = _tmp10_;
			_tmp12_ = strlen (_tmp11_);
			_tmp13_ = _tmp12_;
			gtk_widget_set_sensitive ((GtkWidget*) _tmp8_, _tmp13_ != 0);
			_tmp14_ = _ ("Please enter desktop or collection URI");
			_tmp15_ = g_strdup (_tmp14_);
			text = _tmp15_;
			_tmp16_ = g_strdup ("preferences-desktop-remote-desktop");
			icon = _tmp16_;
			{
				BoxesWizardSource* _tmp17_;
				const gchar* _tmp18_;
				const gchar* _tmp19_;
				gboolean _tmp20_ = FALSE;
				BoxesCollectionSource* _tmp21_;
				gboolean _tmp26_;
				_tmp17_ = self->priv->wizard_source;
				_tmp18_ = boxes_wizard_source_get_uri (_tmp17_);
				_tmp19_ = _tmp18_;
				boxes_wizard_prepare_for_location (self, _tmp19_, TRUE, &_inner_error_);
				if (_inner_error_ != NULL) {
					goto __catch76_g_error;
				}
				_tmp21_ = self->priv->source;
				if (_tmp21_ != NULL) {
					BoxesCollectionSource* _tmp22_;
					gchar* _tmp23_;
					gchar* _tmp24_;
					gchar* _tmp25_;
					_tmp22_ = self->priv->source;
					_tmp23_ = boxes_collection_source_get_source_type (_tmp22_);
					_tmp24_ = _tmp23_;
					_tmp25_ = _tmp24_;
					_tmp20_ = g_strcmp0 (_tmp25_, "libvirt") == 0;
					_g_free0 (_tmp25_);
				} else {
					_tmp20_ = FALSE;
				}
				_tmp26_ = _tmp20_;
				if (_tmp26_) {
					const gchar* _tmp27_ = NULL;
					gchar* _tmp28_;
					gchar* _tmp29_;
					_tmp27_ = _ ("Will add boxes for all systems available from this account.");
					_tmp28_ = g_strdup (_tmp27_);
					_g_free0 (text);
					text = _tmp28_;
					_tmp29_ = g_strdup ("network-workgroup");
					_g_free0 (icon);
					icon = _tmp29_;
				} else {
					const gchar* _tmp30_ = NULL;
					gchar* _tmp31_;
					_tmp30_ = _ ("Will add a single box.");
					_tmp31_ = g_strdup (_tmp30_);
					_g_free0 (text);
					text = _tmp31_;
				}
			}
			goto __finally76;
			__catch76_g_error:
			{
				GError* _error_ = NULL;
				_error_ = _inner_error_;
				_inner_error_ = NULL;
				_g_error_free0 (_error_);
			}
			__finally76:
			if (_inner_error_ != NULL) {
				_g_free0 (icon);
				_g_free0 (text);
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return;
			}
			_tmp32_ = self->priv->wizard_source;
			_tmp33_ = _ ("Desktop Access");
			_tmp34_ = text;
			_tmp35_ = icon;
			boxes_wizard_source_update_url_page (_tmp32_, _tmp33_, _tmp34_, _tmp35_);
			_g_free0 (icon);
			_g_free0 (text);
			break;
		}
		default:
		{
			g_warn_if_reached ();
			break;
		}
	}
}


static void _boxes_wizard_wizard_source_update_next_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	boxes_wizard_wizard_source_update_next (self);
}


static void _boxes_wizard_wizard_source_update_next_gtk_editable_changed (GtkEditable* _sender, gpointer self) {
	boxes_wizard_wizard_source_update_next (self);
}


static void __lambda136_ (BoxesWizard* self) {
	boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_PREPARATION);
}


static void ___lambda136__gtk_entry_activate (GtkEntry* _sender, gpointer self) {
	__lambda136_ (self);
}


BoxesWizard* boxes_wizard_construct (GType object_type) {
	BoxesWizard * self = NULL;
	BoxesMediaManager* _tmp0_;
	BoxesWizardSource* _tmp1_;
	BoxesWizardSource* _tmp2_;
	BoxesWizardSource* _tmp3_;
	BoxesWizardSource* _tmp4_;
	GtkEntry* _tmp5_;
	BoxesWizardSource* _tmp6_;
	GtkEntry* _tmp7_;
	self = (BoxesWizard*) boxes_ui_construct (object_type);
	_tmp0_ = self->priv->media_manager;
	_tmp1_ = boxes_wizard_source_new (_tmp0_);
	_g_object_unref0 (self->priv->wizard_source);
	self->priv->wizard_source = _tmp1_;
	_tmp2_ = self->priv->wizard_source;
	g_signal_connect_object ((GObject*) _tmp2_, "notify::page", (GCallback) _boxes_wizard_wizard_source_update_next_g_object_notify, self, 0);
	_tmp3_ = self->priv->wizard_source;
	g_signal_connect_object ((GObject*) _tmp3_, "notify::selected", (GCallback) _boxes_wizard_wizard_source_update_next_g_object_notify, self, 0);
	_tmp4_ = self->priv->wizard_source;
	_tmp5_ = _tmp4_->url_entry;
	g_signal_connect_object ((GtkEditable*) _tmp5_, "changed", (GCallback) _boxes_wizard_wizard_source_update_next_gtk_editable_changed, self, 0);
	_tmp6_ = self->priv->wizard_source;
	_tmp7_ = _tmp6_->url_entry;
	g_signal_connect_object (_tmp7_, "activate", (GCallback) ___lambda136__gtk_entry_activate, self, 0);
	boxes_wizard_setup_ui (self);
	return self;
}


BoxesWizard* boxes_wizard_new (void) {
	return boxes_wizard_construct (BOXES_TYPE_WIZARD);
}


void boxes_wizard_cleanup (BoxesWizard* self) {
	g_return_if_fail (self != NULL);
	boxes_wizard_destroy_machine (self);
}


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


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


static void boxes_wizard_create (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	BoxesWizardCreateData* _data_;
	BoxesWizard* _tmp0_;
	_data_ = g_slice_new0 (BoxesWizardCreateData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, boxes_wizard_create);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, boxes_wizard_create_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	boxes_wizard_create_co (_data_);
}


static gboolean boxes_wizard_create_finish (BoxesWizard* self, GAsyncResult* _res_) {
	gboolean result;
	BoxesWizardCreateData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	result = _data_->result;
	return result;
}


static Block50Data* block50_data_ref (Block50Data* _data50_) {
	g_atomic_int_inc (&_data50_->_ref_count_);
	return _data50_;
}


static void block50_data_unref (void * _userdata_) {
	Block50Data* _data50_;
	_data50_ = (Block50Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data50_->_ref_count_)) {
		BoxesWizard * self;
		self = _data50_->self;
		_g_object_unref0 (self);
		g_slice_free (Block50Data, _data50_);
	}
}


static void ____lambda130_ (Block50Data* _data50_) {
	BoxesWizard * self;
	self = _data50_->self;
	boxes_wizard_create_co (_data50_->_async_data_);
}


static void _____lambda130__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	____lambda130_ (self);
}


static gboolean boxes_wizard_create_co (BoxesWizardCreateData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_data50_ = g_slice_new0 (Block50Data);
	_data_->_data50_->_ref_count_ = 1;
	_data_->_data50_->self = g_object_ref (_data_->self);
	_data_->_data50_->_async_data_ = _data_;
	_data_->_tmp0_ = _data_->self->priv->source;
	if (_data_->_tmp0_ == NULL) {
		_data_->_tmp1_ = _data_->self->priv->vm_creator;
		g_return_val_if_fail (_data_->_tmp1_ != NULL, FALSE);
		_data_->_tmp2_ = _data_->self->priv->_machine;
		if (_data_->_tmp2_ == NULL) {
			_data_->_tmp3_ = _data_->self->priv->review_cancellable;
			g_return_val_if_fail (_data_->_tmp3_ != NULL, FALSE);
			_data_->_tmp4_ = 0UL;
			_data_->_tmp4_ = g_signal_connect_data ((GObject*) _data_->self, "notify::machine", (GCallback) _____lambda130__g_object_notify, block50_data_ref (_data_->_data50_), (GClosureNotify) block50_data_unref, 0);
			_data_->wait = _data_->_tmp4_;
			_data_->_state_ = 1;
			return FALSE;
			_state_1:
			;
			_data_->_tmp5_ = _data_->wait;
			g_signal_handler_disconnect ((GObject*) _data_->self, _data_->_tmp5_);
			_data_->_tmp6_ = _data_->self->priv->_machine;
			if (_data_->_tmp6_ == NULL) {
				_data_->result = FALSE;
				block50_data_unref (_data_->_data50_);
				_data_->_data50_ = NULL;
				if (_data_->_state_ == 0) {
					g_simple_async_result_complete_in_idle (_data_->_async_result);
				} else {
					g_simple_async_result_complete (_data_->_async_result);
				}
				g_object_unref (_data_->_async_result);
				return FALSE;
			}
		}
		_data_->_tmp7_ = _data_->self->priv->next_button;
		gtk_widget_set_sensitive ((GtkWidget*) _data_->_tmp7_, FALSE);
		{
			_data_->_tmp8_ = _data_->self->priv->vm_creator;
			_data_->_tmp9_ = _data_->self->priv->_machine;
			boxes_vm_creator_launch_vm (_data_->_tmp8_, _data_->_tmp9_, &_data_->_inner_error_);
			if (_data_->_inner_error_ != NULL) {
				goto __catch77_g_error;
			}
		}
		goto __finally77;
		__catch77_g_error:
		{
			_data_->_error_ = _data_->_inner_error_;
			_data_->_inner_error_ = NULL;
			_data_->_tmp10_ = _data_->_error_;
			_data_->_tmp11_ = _data_->_tmp10_->message;
			g_warning ("wizard.vala:195: %s", _data_->_tmp11_);
			_data_->result = FALSE;
			_g_error_free0 (_data_->_error_);
			block50_data_unref (_data_->_data50_);
			_data_->_data50_ = NULL;
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		}
		__finally77:
		if (_data_->_inner_error_ != NULL) {
			block50_data_unref (_data_->_data50_);
			_data_->_data50_ = NULL;
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
		_boxes_vm_creator_unref0 (_data_->self->priv->vm_creator);
		_data_->self->priv->vm_creator = NULL;
		boxes_wizard_set_machine (_data_->self, NULL);
		_data_->_tmp12_ = _data_->self->priv->wizard_source;
		boxes_wizard_source_set_uri (_data_->_tmp12_, "");
		_data_->result = TRUE;
		block50_data_unref (_data_->_data50_);
		_data_->_data50_ = NULL;
		if (_data_->_state_ == 0) {
			g_simple_async_result_complete_in_idle (_data_->_async_result);
		} else {
			g_simple_async_result_complete (_data_->_async_result);
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp13_ = _data_->self->priv->source;
	boxes_iconfig_save ((BoxesIConfig*) _data_->_tmp13_);
	_data_->_tmp14_ = boxes_app_app;
	_data_->_tmp15_ = _data_->self->priv->source;
	boxes_app_add_collection_source (_data_->_tmp14_, _data_->_tmp15_, NULL, NULL);
	_data_->result = TRUE;
	block50_data_unref (_data_->_data50_);
	_data_->_data50_ = NULL;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
	block50_data_unref (_data_->_data50_);
	_data_->_data50_ = NULL;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


static void boxes_wizard_prepare_for_location (BoxesWizard* self, const gchar* location, gboolean probing, GError** error) {
	const gchar* _tmp0_;
	const gchar* _tmp2_;
	GFile* _tmp3_ = NULL;
	GFile* file;
	GFile* _tmp4_;
	gboolean _tmp5_ = FALSE;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (location != NULL);
	_g_object_unref0 (self->priv->source);
	self->priv->source = NULL;
	_tmp0_ = location;
	if (g_strcmp0 (_tmp0_, "") == 0) {
		GError* _tmp1_;
		_tmp1_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, "empty location");
		_inner_error_ = _tmp1_;
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp2_ = location;
	_tmp3_ = g_file_new_for_commandline_arg (_tmp2_);
	file = _tmp3_;
	_tmp4_ = file;
	_tmp5_ = g_file_is_native (_tmp4_);
	if (_tmp5_) {
		gboolean _tmp6_;
		_tmp6_ = probing;
		if (!_tmp6_) {
			GFile* _tmp7_;
			gchar* _tmp8_ = NULL;
			gchar* _tmp9_;
			_tmp7_ = file;
			_tmp8_ = g_file_get_path (_tmp7_);
			_tmp9_ = _tmp8_;
			boxes_wizard_prepare_for_installer (self, _tmp9_, &_inner_error_);
			_g_free0 (_tmp9_);
			if (_inner_error_ != NULL) {
				g_propagate_error (error, _inner_error_);
				_g_object_unref0 (file);
				return;
			}
		}
	} else {
		gboolean uncertain = FALSE;
		GFile* _tmp10_;
		gchar* _tmp11_ = NULL;
		gchar* uri;
		const gchar* _tmp12_;
		gboolean _tmp13_ = FALSE;
		gchar* _tmp14_ = NULL;
		gchar* mimetype;
		gboolean _tmp15_;
		_tmp10_ = file;
		_tmp11_ = g_file_get_uri (_tmp10_);
		uri = _tmp11_;
		_tmp12_ = uri;
		_tmp14_ = g_content_type_guess (_tmp12_, NULL, (gsize) 0, &_tmp13_);
		uncertain = _tmp13_;
		mimetype = _tmp14_;
		_tmp15_ = uncertain;
		if (_tmp15_) {
			const gchar* _tmp16_;
			_tmp16_ = uri;
			boxes_wizard_prepare_for_uri (self, _tmp16_, &_inner_error_);
			if (_inner_error_ != NULL) {
				g_propagate_error (error, _inner_error_);
				_g_free0 (mimetype);
				_g_free0 (uri);
				_g_object_unref0 (file);
				return;
			}
		} else {
			const gchar* _tmp17_;
			gchar* _tmp18_ = NULL;
			gchar* _tmp19_;
			_tmp17_ = mimetype;
			_tmp18_ = g_strdup_printf ("FIXME: %s", _tmp17_);
			_tmp19_ = _tmp18_;
			g_debug ("wizard.vala:233: %s", _tmp19_);
			_g_free0 (_tmp19_);
		}
		_g_free0 (mimetype);
		_g_free0 (uri);
	}
	_g_object_unref0 (file);
}


static void boxes_wizard_prepare_for_uri (BoxesWizard* self, const gchar* uri_as_text, GError** error) {
	const gchar* _tmp0_;
	xmlURI* _tmp1_ = NULL;
	xmlURI* uri;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp10_;
	const gchar* _tmp11_;
	const gchar* _tmp12_;
	BoxesCollectionSource* _tmp13_;
	gboolean _tmp14_ = FALSE;
	const gchar* _tmp15_;
	gboolean _tmp17_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uri_as_text != NULL);
	_tmp0_ = uri_as_text;
	_tmp1_ = xmlParseURI (_tmp0_);
	uri = _tmp1_;
	if (uri == NULL) {
		const gchar* _tmp2_ = NULL;
		GError* _tmp3_;
		_tmp2_ = _ ("Invalid URI");
		_tmp3_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, _tmp2_);
		_inner_error_ = _tmp3_;
		if (_inner_error_->domain == BOXES_ERROR) {
			g_propagate_error (error, _inner_error_);
			_xmlFreeURI0 (uri);
			return;
		} else {
			_xmlFreeURI0 (uri);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	_tmp4_ = uri->server;
	_tmp5_ = g_strdup (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = _tmp6_;
	if (_tmp7_ == NULL) {
		const gchar* _tmp8_;
		gchar* _tmp9_;
		_tmp8_ = uri_as_text;
		_tmp9_ = g_strdup (_tmp8_);
		_g_free0 (_tmp6_);
		_tmp6_ = _tmp9_;
	}
	_tmp10_ = _tmp6_;
	_tmp11_ = uri->scheme;
	_tmp12_ = uri_as_text;
	_tmp13_ = boxes_collection_source_new (_tmp10_, _tmp11_, _tmp12_);
	_g_object_unref0 (self->priv->source);
	self->priv->source = _tmp13_;
	_tmp15_ = uri->scheme;
	if (g_strcmp0 (_tmp15_, "spice") == 0) {
		_tmp14_ = TRUE;
	} else {
		const gchar* _tmp16_;
		_tmp16_ = uri->scheme;
		_tmp14_ = g_strcmp0 (_tmp16_, "vnc") == 0;
	}
	_tmp17_ = _tmp14_;
	if (_tmp17_) {
	} else {
		const gchar* _tmp18_;
		gboolean _tmp19_ = FALSE;
		_tmp18_ = uri->scheme;
		_tmp19_ = g_str_has_prefix (_tmp18_, "qemu");
		if (_tmp19_) {
			BoxesCollectionSource* _tmp20_;
			_tmp20_ = self->priv->source;
			boxes_collection_source_set_source_type (_tmp20_, "libvirt");
		} else {
			const gchar* _tmp21_ = NULL;
			const gchar* _tmp22_;
			gchar* _tmp23_ = NULL;
			gchar* _tmp24_;
			GError* _tmp25_;
			GError* _tmp26_;
			_tmp21_ = _ ("Unsupported protocol '%s'");
			_tmp22_ = uri->scheme;
			_tmp23_ = g_strdup_printf (_tmp21_, _tmp22_);
			_tmp24_ = _tmp23_;
			_tmp25_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, _tmp24_);
			_tmp26_ = _tmp25_;
			_g_free0 (_tmp24_);
			_inner_error_ = _tmp26_;
			if (_inner_error_->domain == BOXES_ERROR) {
				g_propagate_error (error, _inner_error_);
				_g_free0 (_tmp6_);
				_xmlFreeURI0 (uri);
				return;
			} else {
				_g_free0 (_tmp6_);
				_xmlFreeURI0 (uri);
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return;
			}
		}
	}
	_g_free0 (_tmp6_);
	_xmlFreeURI0 (uri);
}


static void _boxes_wizard_on_installer_media_instantiated_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	boxes_wizard_on_installer_media_instantiated (self, source_object, res);
	g_object_unref (self);
}


static void boxes_wizard_prepare_for_installer (BoxesWizard* self, const gchar* path, GError** error) {
	GtkButton* _tmp0_;
	BoxesMediaManager* _tmp1_;
	const gchar* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (path != NULL);
	_tmp0_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, FALSE);
	_tmp1_ = self->priv->media_manager;
	_tmp2_ = path;
	boxes_media_manager_create_installer_media_for_path (_tmp1_, _tmp2_, NULL, _boxes_wizard_on_installer_media_instantiated_gasync_ready_callback, g_object_ref (self));
}


static void ___lambda135_ (BoxesWizard* self, GObject* object, GAsyncResult* _result_) {
	GAsyncResult* _tmp0_;
	GtkProgressBar* _tmp1_;
	g_return_if_fail (_result_ != NULL);
	_tmp0_ = _result_;
	boxes_downloader_fetch_os_logo_finish (_tmp0_);
	_tmp1_ = self->priv->prep_progress;
	gtk_progress_bar_set_fraction (_tmp1_, 1.0);
	boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SETUP);
}


static void ____lambda135__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	___lambda135_ (self, source_object, res);
	g_object_unref (self);
}


static void boxes_wizard_on_installer_media_instantiated (BoxesWizard* self, GObject* source_object, GAsyncResult* _result_) {
	GtkButton* _tmp0_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (_result_ != NULL);
	_tmp0_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, TRUE);
	{
		BoxesMediaManager* _tmp1_;
		GAsyncResult* _tmp2_;
		BoxesInstallerMedia* _tmp3_ = NULL;
		BoxesInstallerMedia* install_media;
		BoxesInstallerMedia* _tmp4_;
		BoxesVMCreator* _tmp5_;
		BoxesInstallerMedia* _tmp6_;
		OsinfoOs* _tmp7_;
		GtkImage* _tmp9_;
		BoxesInstallerMedia* _tmp10_;
		OsinfoOs* _tmp11_;
		_tmp1_ = self->priv->media_manager;
		_tmp2_ = _result_;
		_tmp3_ = boxes_media_manager_create_installer_media_for_path_finish (_tmp1_, _tmp2_, &_inner_error_);
		install_media = _tmp3_;
		if (_inner_error_ != NULL) {
			if (g_error_matches (_inner_error_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch78_g_io_error_cancelled;
			}
			goto __catch78_g_error;
		}
		_tmp4_ = install_media;
		_tmp5_ = boxes_vm_creator_new (_tmp4_);
		_boxes_vm_creator_unref0 (self->priv->vm_creator);
		self->priv->vm_creator = _tmp5_;
		_tmp6_ = install_media;
		_tmp7_ = _tmp6_->os;
		if (_tmp7_ == NULL) {
			GtkProgressBar* _tmp8_;
			_tmp8_ = self->priv->prep_progress;
			gtk_progress_bar_set_fraction (_tmp8_, 1.0);
			boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SETUP);
			_g_object_unref0 (install_media);
			return;
		}
		_tmp9_ = self->priv->installer_image;
		_tmp10_ = install_media;
		_tmp11_ = _tmp10_->os;
		boxes_downloader_fetch_os_logo (_tmp9_, _tmp11_, 128, ____lambda135__gasync_ready_callback, g_object_ref (self));
		_g_object_unref0 (install_media);
	}
	goto __finally78;
	__catch78_g_io_error_cancelled:
	{
		GError* cancel_error = NULL;
		cancel_error = _inner_error_;
		_inner_error_ = NULL;
		_g_error_free0 (cancel_error);
	}
	goto __finally78;
	__catch78_g_error:
	{
		GError* _error_ = NULL;
		BoxesApp* _tmp12_;
		BoxesNotificationbar* _tmp13_;
		GError* _tmp14_;
		const gchar* _tmp15_;
		_error_ = _inner_error_;
		_inner_error_ = NULL;
		_tmp12_ = boxes_app_app;
		_tmp13_ = _tmp12_->notificationbar;
		_tmp14_ = _error_;
		_tmp15_ = _tmp14_->message;
		boxes_notificationbar_display_error (_tmp13_, _tmp15_);
		boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SOURCE);
		_g_error_free0 (_error_);
	}
	__finally78:
	if (_inner_error_ != NULL) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
}


static gboolean boxes_wizard_prepare (BoxesWizard* self) {
	gboolean result = FALSE;
	GtkImage* _tmp0_;
	BoxesWizardSource* _tmp1_;
	BoxesInstallerMedia* _tmp2_;
	BoxesInstallerMedia* _tmp3_;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->installer_image;
	gtk_image_set_from_icon_name (_tmp0_, "media-optical", 0);
	_tmp1_ = self->priv->wizard_source;
	_tmp2_ = boxes_wizard_source_get_install_media (_tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_ != NULL) {
		BoxesWizardSource* _tmp4_;
		BoxesInstallerMedia* _tmp5_;
		BoxesInstallerMedia* _tmp6_;
		BoxesVMCreator* _tmp7_;
		GtkProgressBar* _tmp8_;
		_tmp4_ = self->priv->wizard_source;
		_tmp5_ = boxes_wizard_source_get_install_media (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp7_ = boxes_vm_creator_new (_tmp6_);
		_boxes_vm_creator_unref0 (self->priv->vm_creator);
		self->priv->vm_creator = _tmp7_;
		_tmp8_ = self->priv->prep_progress;
		gtk_progress_bar_set_fraction (_tmp8_, 1.0);
		boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SETUP);
		result = FALSE;
		return result;
	} else {
		{
			BoxesWizardSource* _tmp9_;
			const gchar* _tmp10_;
			const gchar* _tmp11_;
			_tmp9_ = self->priv->wizard_source;
			_tmp10_ = boxes_wizard_source_get_uri (_tmp9_);
			_tmp11_ = _tmp10_;
			boxes_wizard_prepare_for_location (self, _tmp11_, FALSE, &_inner_error_);
			if (_inner_error_ != NULL) {
				goto __catch79_g_error;
			}
		}
		goto __finally79;
		__catch79_g_error:
		{
			GError* _error_ = NULL;
			BoxesApp* _tmp12_;
			BoxesNotificationbar* _tmp13_;
			GError* _tmp14_;
			const gchar* _tmp15_;
			_error_ = _inner_error_;
			_inner_error_ = NULL;
			_tmp12_ = boxes_app_app;
			_tmp13_ = _tmp12_->notificationbar;
			_tmp14_ = _error_;
			_tmp15_ = _tmp14_->message;
			boxes_notificationbar_display_error (_tmp13_, _tmp15_);
			result = FALSE;
			_g_error_free0 (_error_);
			return result;
		}
		__finally79:
		if (_inner_error_ != NULL) {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return FALSE;
		}
		result = TRUE;
		return result;
	}
}


static gboolean boxes_wizard_setup (BoxesWizard* self) {
	gboolean result = FALSE;
	BoxesCollectionSource* _tmp0_;
	BoxesVMCreator* _tmp1_;
	BoxesVMCreator* _tmp2_;
	BoxesInstallerMedia* _tmp3_;
	BoxesInstallerMedia* _tmp4_;
	GtkButton* _tmp5_;
	BoxesVMCreator* _tmp6_;
	BoxesInstallerMedia* _tmp7_;
	BoxesInstallerMedia* _tmp8_;
	GtkVBox* _tmp9_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->source;
	if (_tmp0_ != NULL) {
		result = TRUE;
		return result;
	}
	_tmp1_ = self->priv->vm_creator;
	g_return_if_fail (_tmp1_ != NULL);
	_tmp2_ = self->priv->vm_creator;
	_tmp3_ = boxes_vm_creator_get_install_media (_tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = self->priv->next_button;
	g_object_bind_property_with_closures ((GObject*) _tmp4_, "user-data-for-vm-creation-available", (GObject*) _tmp5_, "sensitive", G_BINDING_SYNC_CREATE, (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, NULL)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, NULL)));
	_tmp6_ = self->priv->vm_creator;
	_tmp7_ = boxes_vm_creator_get_install_media (_tmp6_);
	_tmp8_ = _tmp7_;
	_tmp9_ = self->priv->setup_vbox;
	boxes_installer_media_populate_setup_vbox (_tmp8_, _tmp9_);
	result = TRUE;
	return result;
}


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


static void boxes_wizard_review (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	BoxesWizardReviewData* _data_;
	BoxesWizard* _tmp0_;
	_data_ = g_slice_new0 (BoxesWizardReviewData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, boxes_wizard_review);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, boxes_wizard_review_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	boxes_wizard_review_co (_data_);
}


static gboolean boxes_wizard_review_finish (BoxesWizard* self, GAsyncResult* _res_) {
	gboolean result;
	BoxesWizardReviewData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	result = _data_->result;
	return result;
}


static void boxes_wizard_review_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	BoxesWizardReviewData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	boxes_wizard_review_co (_data_);
}


static gboolean boxes_wizard_review_co (BoxesWizardReviewData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->review_cancellable;
	g_return_if_fail (_data_->_tmp0_ == NULL);
	_data_->_tmp1_ = g_cancellable_new ();
	_g_object_unref0 (_data_->self->priv->review_cancellable);
	_data_->self->priv->review_cancellable = _data_->_tmp1_;
	_data_->_state_ = 1;
	boxes_wizard_do_review_cancellable (_data_->self, boxes_wizard_review_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp2_ = FALSE;
	_data_->_tmp2_ = boxes_wizard_do_review_cancellable_finish (_data_->self, _data_->_res_);
	_data_->_result_ = _data_->_tmp2_;
	_g_object_unref0 (_data_->self->priv->review_cancellable);
	_data_->self->priv->review_cancellable = NULL;
	_data_->self->priv->skip_review_for_live = FALSE;
	_data_->result = _data_->_result_;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


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


static void boxes_wizard_do_review_cancellable (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	BoxesWizardDoReviewCancellableData* _data_;
	BoxesWizard* _tmp0_;
	_data_ = g_slice_new0 (BoxesWizardDoReviewCancellableData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, boxes_wizard_do_review_cancellable);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, boxes_wizard_do_review_cancellable_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	boxes_wizard_do_review_cancellable_co (_data_);
}


static gboolean boxes_wizard_do_review_cancellable_finish (BoxesWizard* self, GAsyncResult* _res_) {
	gboolean result;
	BoxesWizardDoReviewCancellableData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	result = _data_->result;
	return result;
}


static void boxes_wizard_do_review_cancellable_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	BoxesWizardDoReviewCancellableData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	boxes_wizard_do_review_cancellable_co (_data_);
}


static gpointer _boxes_pair_ref0 (gpointer self) {
	return self ? boxes_pair_ref (self) : NULL;
}


static void _boxes_pair_unref0_ (gpointer var) {
	(var == NULL) ? NULL : (var = (boxes_pair_unref (var), NULL));
}


static void _g_list_free__boxes_pair_unref0_ (GList* self) {
	g_list_foreach (self, (GFunc) _boxes_pair_unref0_, NULL);
	g_list_free (self);
}


static Block51Data* block51_data_ref (Block51Data* _data51_) {
	g_atomic_int_inc (&_data51_->_ref_count_);
	return _data51_;
}


static void block51_data_unref (void * _userdata_) {
	Block51Data* _data51_;
	_data51_ = (Block51Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data51_->_ref_count_)) {
		BoxesWizard * self;
		self = _data51_->self;
		_g_object_unref0 (_data51_->config);
		_g_object_unref0 (self);
		g_slice_free (Block51Data, _data51_);
	}
}


static void _____lambda127_ (Block51Data* _data51_, GError** error) {
	BoxesWizard * self;
	BoxesLibvirtMachine* _tmp0_;
	GVirDomain* _tmp1_;
	GVirConfigDomain* _tmp2_ = NULL;
	GVirConfigDomain* _tmp3_;
	GError * _inner_error_ = NULL;
	self = _data51_->self;
	_tmp0_ = self->priv->_machine;
	_tmp1_ = _tmp0_->domain;
	_tmp2_ = gvir_domain_get_config (_tmp1_, (guint) GVIR_DOMAIN_XML_INACTIVE, &_inner_error_);
	_tmp3_ = _tmp2_;
	if (_inner_error_ != NULL) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_g_object_unref0 (_data51_->config);
	_data51_->config = _tmp3_;
}


static void ______lambda127__boxes_run_in_thread_func (gpointer self, GError** error) {
	_____lambda127_ (self, error);
}


static void _vala_GVirStorageVolInfo_free (GVirStorageVolInfo* self) {
	g_boxed_free (gvir_storage_vol_info_get_type (), self);
}


static void __lambda128_ (BoxesWizard* self) {
	BoxesApp* _tmp0_;
	BoxesLibvirtMachine* _tmp1_;
	_tmp0_ = boxes_app_app;
	_tmp1_ = self->priv->_machine;
	boxes_app_select_item (_tmp0_, (BoxesCollectionItem*) _tmp1_);
}


static void ___lambda128__boxes_wizard_wizard_summary_customize_func (gpointer self) {
	__lambda128_ (self);
}


static gboolean boxes_wizard_do_review_cancellable_co (BoxesWizardDoReviewCancellableData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->review_cancellable;
	g_return_if_fail (_data_->_tmp0_ != NULL);
	_data_->_tmp1_ = _data_->self->priv->nokvm_label;
	gtk_widget_hide ((GtkWidget*) _data_->_tmp1_);
	_data_->_tmp2_ = _data_->self->priv->summary;
	boxes_wizard_wizard_summary_clear (_data_->_tmp2_);
	_data_->_tmp4_ = _data_->self->priv->vm_creator;
	if (_data_->_tmp4_ != NULL) {
		_data_->_tmp5_ = _data_->self->priv->_machine;
		_data_->_tmp3_ = _data_->_tmp5_ == NULL;
	} else {
		_data_->_tmp3_ = FALSE;
	}
	_data_->_tmp6_ = _data_->_tmp3_;
	if (_data_->_tmp6_) {
		{
			_data_->_tmp7_ = _data_->self->priv->vm_creator;
			_data_->_tmp8_ = _data_->self->priv->review_cancellable;
			_data_->_state_ = 1;
			boxes_vm_creator_create_vm (_data_->_tmp7_, _data_->_tmp8_, boxes_wizard_do_review_cancellable_ready, _data_);
			return FALSE;
			_state_1:
			_data_->_tmp9_ = NULL;
			_data_->_tmp9_ = boxes_vm_creator_create_vm_finish (_data_->_tmp7_, _data_->_res_, &_data_->_inner_error_);
			_data_->_tmp10_ = _data_->_tmp9_;
			if (_data_->_inner_error_ != NULL) {
				if (g_error_matches (_data_->_inner_error_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
					goto __catch80_g_io_error_cancelled;
				}
				goto __catch80_g_error;
			}
			_data_->_tmp11_ = _data_->_tmp10_;
			boxes_wizard_set_machine (_data_->self, _data_->_tmp11_);
			_g_object_unref0 (_data_->_tmp11_);
		}
		goto __finally80;
		__catch80_g_io_error_cancelled:
		{
			_data_->cancel_error = _data_->_inner_error_;
			_data_->_inner_error_ = NULL;
			_g_error_free0 (_data_->cancel_error);
		}
		goto __finally80;
		__catch80_g_error:
		{
			_data_->_error_ = _data_->_inner_error_;
			_data_->_inner_error_ = NULL;
			_data_->_tmp12_ = boxes_app_app;
			_data_->_tmp13_ = _data_->_tmp12_->notificationbar;
			_data_->_tmp14_ = NULL;
			_data_->_tmp14_ = _ ("Box setup failed");
			boxes_notificationbar_display_error (_data_->_tmp13_, _data_->_tmp14_);
			_data_->_tmp15_ = _data_->_error_;
			_data_->_tmp16_ = _data_->_tmp15_->message;
			g_warning ("wizard.vala:348: %s", _data_->_tmp16_);
			_g_error_free0 (_data_->_error_);
		}
		__finally80:
		if (_data_->_inner_error_ != NULL) {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
		_data_->_tmp17_ = _data_->self->priv->_machine;
		if (_data_->_tmp17_ == NULL) {
			g_object_notify ((GObject*) _data_->self, "machine");
			_data_->result = FALSE;
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		}
	}
	_data_->_tmp18_ = _data_->self->priv->review_cancellable;
	_data_->_tmp19_ = FALSE;
	_data_->_tmp19_ = g_cancellable_is_cancelled (_data_->_tmp18_);
	if (_data_->_tmp19_) {
		_data_->result = FALSE;
		if (_data_->_state_ == 0) {
			g_simple_async_result_complete_in_idle (_data_->_async_result);
		} else {
			g_simple_async_result_complete (_data_->_async_result);
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp20_ = _data_->self->priv->review_label;
	_data_->_tmp21_ = NULL;
	_data_->_tmp21_ = _ ("Will create a new box with the following properties:");
	gtk_label_set_text (_data_->_tmp20_, _data_->_tmp21_);
	_data_->_tmp22_ = _data_->self->priv->source;
	if (_data_->_tmp22_ != NULL) {
		static GQuark _tmp57_label0 = 0;
		static GQuark _tmp57_label1 = 0;
		_data_->_tmp23_ = _data_->self->priv->source;
		_data_->_tmp24_ = boxes_collection_source_get_uri (_data_->_tmp23_);
		_data_->_tmp25_ = _data_->_tmp24_;
		_data_->_tmp26_ = _data_->_tmp25_;
		_data_->_tmp27_ = NULL;
		_data_->_tmp27_ = xmlParseURI (_data_->_tmp26_);
		_data_->_tmp28_ = _data_->_tmp27_;
		_g_free0 (_data_->_tmp26_);
		_data_->uri = _data_->_tmp28_;
		_data_->_tmp29_ = _data_->self->priv->summary;
		_data_->_tmp30_ = NULL;
		_data_->_tmp30_ = _ ("Type");
		_data_->_tmp31_ = _data_->self->priv->source;
		_data_->_tmp32_ = boxes_collection_source_get_source_type (_data_->_tmp31_);
		_data_->_tmp33_ = _data_->_tmp32_;
		_data_->_tmp34_ = _data_->_tmp33_;
		boxes_wizard_wizard_summary_add_property (_data_->_tmp29_, _data_->_tmp30_, _data_->_tmp34_);
		_g_free0 (_data_->_tmp34_);
		_data_->_tmp36_ = _data_->uri;
		if (_data_->_tmp36_ != NULL) {
			_data_->_tmp37_ = _data_->uri;
			_data_->_tmp38_ = _data_->_tmp37_->server;
			_data_->_tmp35_ = _data_->_tmp38_ != NULL;
		} else {
			_data_->_tmp35_ = FALSE;
		}
		_data_->_tmp39_ = _data_->_tmp35_;
		if (_data_->_tmp39_) {
			_data_->_tmp40_ = _data_->self->priv->summary;
			_data_->_tmp41_ = NULL;
			_data_->_tmp41_ = _ ("Host");
			_data_->_tmp42_ = _data_->uri;
			_data_->_tmp43_ = _data_->_tmp42_->server;
			_data_->_tmp44_ = NULL;
			_data_->_tmp44_ = g_utf8_strdown (_data_->_tmp43_, (gssize) (-1));
			_data_->_tmp45_ = _data_->_tmp44_;
			boxes_wizard_wizard_summary_add_property (_data_->_tmp40_, _data_->_tmp41_, _data_->_tmp45_);
			_g_free0 (_data_->_tmp45_);
		} else {
			_data_->_tmp46_ = _data_->self->priv->summary;
			_data_->_tmp47_ = NULL;
			_data_->_tmp47_ = _ ("URI");
			_data_->_tmp48_ = _data_->self->priv->source;
			_data_->_tmp49_ = boxes_collection_source_get_uri (_data_->_tmp48_);
			_data_->_tmp50_ = _data_->_tmp49_;
			_data_->_tmp51_ = _data_->_tmp50_;
			_data_->_tmp52_ = NULL;
			_data_->_tmp52_ = g_utf8_strdown (_data_->_tmp51_, (gssize) (-1));
			_data_->_tmp53_ = _data_->_tmp52_;
			boxes_wizard_wizard_summary_add_property (_data_->_tmp46_, _data_->_tmp47_, _data_->_tmp53_);
			_g_free0 (_data_->_tmp53_);
			_g_free0 (_data_->_tmp51_);
		}
		_data_->_tmp54_ = _data_->uri;
		_data_->_tmp55_ = _data_->_tmp54_->scheme;
		_data_->_tmp58_ = 0U;
		_data_->_tmp56_ = _data_->_tmp55_;
		_data_->_tmp58_ = (NULL == _data_->_tmp56_) ? 0 : g_quark_from_string (_data_->_tmp56_);
		if (_data_->_tmp58_ == ((0 != _tmp57_label0) ? _tmp57_label0 : (_tmp57_label0 = g_quark_from_static_string ("spice")))) {
			switch (0) {
				default:
				{
					_data_->_tmp59_ = _data_->uri;
					_data_->_tmp60_ = _data_->_tmp59_->query_raw;
					_data_->_tmp61_ = g_strdup (_data_->_tmp60_);
					_data_->_tmp62_ = _data_->_tmp61_;
					_data_->_tmp63_ = _data_->_tmp62_;
					if (_data_->_tmp63_ == NULL) {
						_data_->_tmp64_ = _data_->uri;
						_data_->_tmp65_ = _data_->_tmp64_->query;
						_data_->_tmp66_ = g_strdup (_data_->_tmp65_);
						_g_free0 (_data_->_tmp62_);
						_data_->_tmp62_ = _data_->_tmp66_;
					}
					_data_->_tmp67_ = _data_->_tmp62_;
					_data_->_tmp68_ = boxes_query_new (_data_->_tmp67_);
					_data_->query = _data_->_tmp68_;
					_data_->_tmp69_ = _data_->self->priv->summary;
					_data_->_tmp70_ = NULL;
					_data_->_tmp70_ = _ ("Port");
					_data_->_tmp71_ = _data_->query;
					_data_->_tmp72_ = NULL;
					_data_->_tmp72_ = boxes_query_get (_data_->_tmp71_, "port");
					_data_->_tmp73_ = _data_->_tmp72_;
					boxes_wizard_wizard_summary_add_property (_data_->_tmp69_, _data_->_tmp70_, _data_->_tmp73_);
					_g_free0 (_data_->_tmp73_);
					_data_->_tmp74_ = _data_->self->priv->summary;
					_data_->_tmp75_ = NULL;
					_data_->_tmp75_ = _ ("TLS Port");
					_data_->_tmp76_ = _data_->query;
					_data_->_tmp77_ = NULL;
					_data_->_tmp77_ = boxes_query_get (_data_->_tmp76_, "tls-port");
					_data_->_tmp78_ = _data_->_tmp77_;
					boxes_wizard_wizard_summary_add_property (_data_->_tmp74_, _data_->_tmp75_, _data_->_tmp78_);
					_g_free0 (_data_->_tmp78_);
					_g_object_unref0 (_data_->query);
					_g_free0 (_data_->_tmp62_);
					break;
				}
			}
		} else if (_data_->_tmp58_ == ((0 != _tmp57_label1) ? _tmp57_label1 : (_tmp57_label1 = g_quark_from_static_string ("vnc")))) {
			switch (0) {
				default:
				{
					_data_->_tmp79_ = _data_->uri;
					_data_->_tmp80_ = _data_->_tmp79_->port;
					if (_data_->_tmp80_ > 0) {
						_data_->_tmp81_ = _data_->self->priv->summary;
						_data_->_tmp82_ = NULL;
						_data_->_tmp82_ = _ ("Port");
						_data_->_tmp83_ = _data_->uri;
						_data_->_tmp84_ = _data_->_tmp83_->port;
						_data_->_tmp85_ = NULL;
						_data_->_tmp85_ = g_strdup_printf ("%i", _data_->_tmp84_);
						_data_->_tmp86_ = _data_->_tmp85_;
						boxes_wizard_wizard_summary_add_property (_data_->_tmp81_, _data_->_tmp82_, _data_->_tmp86_);
						_g_free0 (_data_->_tmp86_);
					}
					break;
				}
			}
		}
		_data_->_tmp87_ = _data_->self->priv->source;
		_data_->_tmp88_ = boxes_collection_source_get_source_type (_data_->_tmp87_);
		_data_->_tmp89_ = _data_->_tmp88_;
		_data_->_tmp90_ = _data_->_tmp89_;
		_data_->_tmp91_ = g_strcmp0 (_data_->_tmp90_, "libvirt") == 0;
		_g_free0 (_data_->_tmp90_);
		if (_data_->_tmp91_) {
			_data_->_tmp92_ = _data_->self->priv->review_label;
			_data_->_tmp93_ = NULL;
			_data_->_tmp93_ = _ ("Will add boxes for all systems available from this account:");
			gtk_label_set_text (_data_->_tmp92_, _data_->_tmp93_);
		}
		_xmlFreeURI0 (_data_->uri);
	} else {
		_data_->_tmp94_ = _data_->self->priv->_machine;
		if (_data_->_tmp94_ != NULL) {
			_data_->_tmp95_ = _data_->self->priv->vm_creator;
			_data_->_tmp96_ = boxes_vm_creator_get_install_media (_data_->_tmp95_);
			_data_->_tmp97_ = _data_->_tmp96_;
			_data_->_tmp98_ = NULL;
			_data_->_tmp98_ = boxes_installer_media_get_vm_properties (_data_->_tmp97_);
			{
				_data_->property_collection = _data_->_tmp98_;
				for (_data_->property_it = _data_->property_collection; _data_->property_it != NULL; _data_->property_it = _data_->property_it->next) {
					_data_->_tmp99_ = _boxes_pair_ref0 ((BoxesPair*) _data_->property_it->data);
					_data_->property = _data_->_tmp99_;
					{
						_data_->_tmp100_ = _data_->self->priv->summary;
						_data_->_tmp101_ = _data_->property;
						_data_->_tmp102_ = _data_->_tmp101_->first;
						_data_->_tmp103_ = _data_->property;
						_data_->_tmp104_ = _data_->_tmp103_->second;
						boxes_wizard_wizard_summary_add_property (_data_->_tmp100_, (const gchar*) _data_->_tmp102_, (const gchar*) _data_->_tmp104_);
						_boxes_pair_unref0 (_data_->property);
					}
				}
				__g_list_free__boxes_pair_unref0_0 (_data_->property_collection);
			}
			{
				_data_->_data51_ = g_slice_new0 (Block51Data);
				_data_->_data51_->_ref_count_ = 1;
				_data_->_data51_->self = g_object_ref (_data_->self);
				_data_->_tmp105_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (NULL, gvir_config_domain_get_type ()) ? ((GVirConfigDomain*) NULL) : NULL);
				_data_->_data51_->config = _data_->_tmp105_;
				_data_->_state_ = 2;
				boxes_run_in_thread (______lambda127__boxes_run_in_thread_func, block51_data_ref (_data_->_data51_), block51_data_unref, NULL, boxes_wizard_do_review_cancellable_ready, _data_);
				return FALSE;
				_state_2:
				boxes_run_in_thread_finish (_data_->_res_, &_data_->_inner_error_);
				if (_data_->_inner_error_ != NULL) {
					block51_data_unref (_data_->_data51_);
					_data_->_data51_ = NULL;
					goto __catch81_g_error;
				}
				_data_->_tmp106_ = _data_->_data51_->config;
				_data_->_tmp107_ = gvir_config_domain_get_memory (_data_->_tmp106_);
				_data_->_tmp108_ = _data_->_tmp107_;
				_data_->_tmp109_ = NULL;
				_data_->_tmp109_ = g_format_size_full (_data_->_tmp108_ * OSINFO_KIBIBYTES, G_FORMAT_SIZE_IEC_UNITS);
				_data_->memory = _data_->_tmp109_;
				_data_->_tmp110_ = _data_->self->priv->summary;
				_data_->_tmp111_ = NULL;
				_data_->_tmp111_ = _ ("Memory");
				_data_->_tmp112_ = _data_->memory;
				boxes_wizard_wizard_summary_add_property (_data_->_tmp110_, _data_->_tmp111_, _data_->_tmp112_);
				_g_free0 (_data_->memory);
				block51_data_unref (_data_->_data51_);
				_data_->_data51_ = NULL;
			}
			goto __finally81;
			__catch81_g_error:
			{
				_data_->_vala1__error_ = _data_->_inner_error_;
				_data_->_inner_error_ = NULL;
				_data_->_tmp113_ = _data_->self->priv->_machine;
				_data_->_tmp114_ = boxes_collection_item_get_name ((BoxesCollectionItem*) _data_->_tmp113_);
				_data_->_tmp115_ = _data_->_tmp114_;
				_data_->_tmp116_ = _data_->_vala1__error_;
				_data_->_tmp117_ = _data_->_tmp116_->message;
				g_warning ("wizard.vala:401: Failed to get configuration for machine '%s': %s", _data_->_tmp115_, _data_->_tmp117_);
				_g_error_free0 (_data_->_vala1__error_);
			}
			__finally81:
			if (_data_->_inner_error_ != NULL) {
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
				g_clear_error (&_data_->_inner_error_);
				return FALSE;
			}
			_data_->_tmp118_ = _data_->self->priv->_machine;
			_data_->_tmp119_ = _data_->_tmp118_->storage_volume;
			if (_data_->_tmp119_ != NULL) {
				{
					_data_->_tmp120_ = _data_->self->priv->_machine;
					_data_->_tmp121_ = _data_->_tmp120_->storage_volume;
					_data_->_tmp122_ = NULL;
					_data_->_tmp122_ = gvir_storage_vol_get_info (_data_->_tmp121_, &_data_->_inner_error_);
					_data_->volume_info = _data_->_tmp122_;
					if (_data_->_inner_error_ != NULL) {
						goto __catch82_g_error;
					}
					_data_->_tmp123_ = _data_->volume_info;
					_data_->_tmp124_ = _data_->_tmp123_->capacity;
					_data_->_tmp125_ = NULL;
					_data_->_tmp125_ = g_format_size_full (_data_->_tmp124_, G_FORMAT_SIZE_IEC_UNITS);
					_data_->capacity = _data_->_tmp125_;
					_data_->_tmp126_ = _data_->self->priv->summary;
					_data_->_tmp127_ = NULL;
					_data_->_tmp127_ = _ ("Disk");
					_data_->_tmp128_ = _data_->capacity;
					_data_->_tmp129_ = NULL;
					_data_->_tmp129_ = g_strdup_printf ("%s maximum", _data_->_tmp128_);
					_data_->_tmp130_ = _data_->_tmp129_;
					_data_->_tmp131_ = NULL;
					_data_->_tmp131_ = _ (_data_->_tmp130_);
					boxes_wizard_wizard_summary_add_property (_data_->_tmp126_, _data_->_tmp127_, _data_->_tmp131_);
					_g_free0 (_data_->_tmp130_);
					_g_free0 (_data_->capacity);
					__vala_GVirStorageVolInfo_free0 (_data_->volume_info);
				}
				goto __finally82;
				__catch82_g_error:
				{
					_data_->_vala2__error_ = _data_->_inner_error_;
					_data_->_inner_error_ = NULL;
					_data_->_tmp132_ = _data_->self->priv->_machine;
					_data_->_tmp133_ = _data_->_tmp132_->storage_volume;
					_data_->_tmp134_ = NULL;
					_data_->_tmp134_ = gvir_storage_vol_get_name (_data_->_tmp133_);
					_data_->_tmp135_ = _data_->_vala2__error_;
					_data_->_tmp136_ = _data_->_tmp135_->message;
					g_warning ("wizard.vala:410: Failed to get information on volume '%s': %s", _data_->_tmp134_, _data_->_tmp136_);
					_g_error_free0 (_data_->_vala2__error_);
				}
				__finally82:
				if (_data_->_inner_error_ != NULL) {
					g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
					g_clear_error (&_data_->_inner_error_);
					return FALSE;
				}
			}
			_data_->_tmp137_ = _data_->self->priv->nokvm_label;
			_data_->_tmp138_ = _data_->self->priv->_machine;
			_data_->_tmp139_ = _data_->_tmp138_->domain_config;
			_data_->_tmp140_ = 0;
			_data_->_tmp140_ = gvir_config_domain_get_virt_type (_data_->_tmp139_);
			gtk_widget_set_visible ((GtkWidget*) _data_->_tmp137_, _data_->_tmp140_ != GVIR_CONFIG_DOMAIN_VIRT_KVM);
		}
	}
	_data_->_tmp141_ = _data_->self->priv->summary;
	boxes_wizard_wizard_summary_append_customize_button (_data_->_tmp141_, ___lambda128__boxes_wizard_wizard_summary_customize_func, _data_->self);
	_data_->result = TRUE;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


static void g_ptr_array_set (GPtrArray* self, guint index, gpointer data) {
	gpointer _tmp0_;
	guint _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = data;
	data = NULL;
	g_ptr_array_add (self, _tmp0_);
	_tmp1_ = index;
	g_ptr_array_remove_index_fast (self, _tmp1_);
}


static void boxes_wizard_add_step (BoxesWizard* self, GtkWidget* widget, const gchar* title, BoxesWizardPage page) {
	GtkNotebook* _tmp0_;
	GtkWidget* _tmp1_;
	BoxesApp* _tmp2_;
	BoxesSidebar* _tmp3_;
	GtkNotebook* _tmp4_;
	GtkWidget* _tmp5_ = NULL;
	GtkVBox* _tmp6_;
	GtkVBox* vbox;
	const gchar* _tmp7_;
	GtkLabel* _tmp8_;
	GtkLabel* label;
	GtkStyleContext* _tmp9_ = NULL;
	GPtrArray* _tmp10_;
	BoxesWizardPage _tmp11_;
	GtkLabel* _tmp12_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (widget != NULL);
	g_return_if_fail (title != NULL);
	_tmp0_ = self->priv->notebook;
	_tmp1_ = widget;
	gtk_notebook_append_page (_tmp0_, _tmp1_, NULL);
	_tmp2_ = boxes_app_app;
	_tmp3_ = _tmp2_->sidebar;
	_tmp4_ = _tmp3_->notebook;
	_tmp5_ = gtk_notebook_get_nth_page (_tmp4_, (gint) BOXES_SIDEBAR_PAGE_WIZARD);
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, GTK_TYPE_VBOX) ? ((GtkVBox*) _tmp5_) : NULL);
	vbox = _tmp6_;
	_tmp7_ = title;
	_tmp8_ = (GtkLabel*) gtk_label_new (_tmp7_);
	g_object_ref_sink (_tmp8_);
	label = _tmp8_;
	gtk_widget_set_margin_left ((GtkWidget*) label, 25);
	_tmp9_ = gtk_widget_get_style_context ((GtkWidget*) label);
	gtk_style_context_add_class (_tmp9_, "boxes-step-label");
	gtk_widget_set_halign ((GtkWidget*) label, GTK_ALIGN_START);
	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) label, FALSE, FALSE, (guint) 10);
	gtk_widget_show_all ((GtkWidget*) vbox);
	_tmp10_ = self->priv->steps;
	_tmp11_ = page;
	_tmp12_ = _g_object_ref0 (label);
	g_ptr_array_set (_tmp10_, (guint) _tmp11_, _tmp12_);
	_g_object_unref0 (label);
	_g_object_unref0 (vbox);
}


static gboolean boxes_wizard_skip_page (BoxesWizard* self, BoxesWizardPage page) {
	gboolean result = FALSE;
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	BoxesWizardPage _tmp2_;
	gboolean forwards;
	BoxesWizardPage _tmp3_;
	BoxesWizardPage skip_to;
	gboolean _tmp4_ = FALSE;
	BoxesCollectionSource* _tmp5_;
	gboolean _tmp8_;
	gboolean _tmp14_ = FALSE;
	gboolean _tmp15_;
	gboolean _tmp17_;
	BoxesVMCreator* _tmp19_;
	BoxesWizardPage _tmp48_;
	BoxesWizardPage _tmp49_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = page;
	_tmp1_ = boxes_wizard_get_page (self);
	_tmp2_ = _tmp1_;
	forwards = _tmp0_ > _tmp2_;
	_tmp3_ = page;
	skip_to = _tmp3_;
	_tmp5_ = self->priv->source;
	if (_tmp5_ != NULL) {
		BoxesWizardPage _tmp6_;
		BoxesWizardPage _tmp7_;
		_tmp6_ = page;
		_tmp7_ = _tmp6_;
		_tmp4_ = (BOXES_WIZARD_PAGE_SOURCE < _tmp7_) && (_tmp7_ < BOXES_WIZARD_PAGE_REVIEW);
	} else {
		_tmp4_ = FALSE;
	}
	_tmp8_ = _tmp4_;
	if (_tmp8_) {
		BoxesWizardPage _tmp9_ = 0;
		gboolean _tmp10_;
		BoxesWizardPage _tmp13_;
		_tmp10_ = forwards;
		if (_tmp10_) {
			BoxesWizardPage _tmp11_;
			_tmp11_ = page;
			_tmp9_ = _tmp11_ + 1;
		} else {
			BoxesWizardPage _tmp12_;
			_tmp12_ = page;
			_tmp9_ = _tmp12_ - 1;
		}
		_tmp13_ = _tmp9_;
		skip_to = _tmp13_;
	}
	_tmp15_ = forwards;
	if (!_tmp15_) {
		BoxesWizardPage _tmp16_;
		_tmp16_ = page;
		_tmp14_ = _tmp16_ == BOXES_WIZARD_PAGE_PREPARATION;
	} else {
		_tmp14_ = FALSE;
	}
	_tmp17_ = _tmp14_;
	if (_tmp17_) {
		BoxesWizardPage _tmp18_;
		_tmp18_ = page;
		skip_to = _tmp18_ - 1;
	}
	_tmp19_ = self->priv->vm_creator;
	if (_tmp19_ != NULL) {
		gboolean _tmp20_ = FALSE;
		BoxesWizardPage _tmp21_;
		gboolean _tmp27_;
		gboolean _tmp33_ = FALSE;
		gboolean _tmp34_ = FALSE;
		gboolean _tmp35_ = FALSE;
		BoxesWizardPage _tmp36_;
		gboolean _tmp38_;
		gboolean _tmp44_;
		gboolean _tmp46_;
		_tmp21_ = page;
		if (_tmp21_ == BOXES_WIZARD_PAGE_SETUP) {
			BoxesVMCreator* _tmp22_;
			BoxesInstallerMedia* _tmp23_;
			BoxesInstallerMedia* _tmp24_;
			gboolean _tmp25_;
			gboolean _tmp26_;
			_tmp22_ = self->priv->vm_creator;
			_tmp23_ = boxes_vm_creator_get_install_media (_tmp22_);
			_tmp24_ = _tmp23_;
			_tmp25_ = boxes_installer_media_get_need_user_input_for_vm_creation (_tmp24_);
			_tmp26_ = _tmp25_;
			_tmp20_ = !_tmp26_;
		} else {
			_tmp20_ = FALSE;
		}
		_tmp27_ = _tmp20_;
		if (_tmp27_) {
			BoxesWizardPage _tmp28_ = 0;
			gboolean _tmp29_;
			BoxesWizardPage _tmp32_;
			_tmp29_ = forwards;
			if (_tmp29_) {
				BoxesWizardPage _tmp30_;
				_tmp30_ = page;
				_tmp28_ = _tmp30_ + 1;
			} else {
				BoxesWizardPage _tmp31_;
				_tmp31_ = page;
				_tmp28_ = _tmp31_ - 1;
			}
			_tmp32_ = _tmp28_;
			skip_to = _tmp32_;
		}
		_tmp36_ = page;
		if (_tmp36_ == BOXES_WIZARD_PAGE_REVIEW) {
			gboolean _tmp37_;
			_tmp37_ = forwards;
			_tmp35_ = _tmp37_;
		} else {
			_tmp35_ = FALSE;
		}
		_tmp38_ = _tmp35_;
		if (_tmp38_) {
			BoxesVMCreator* _tmp39_;
			BoxesInstallerMedia* _tmp40_;
			BoxesInstallerMedia* _tmp41_;
			gboolean _tmp42_;
			gboolean _tmp43_;
			_tmp39_ = self->priv->vm_creator;
			_tmp40_ = boxes_vm_creator_get_install_media (_tmp39_);
			_tmp41_ = _tmp40_;
			_tmp42_ = boxes_installer_media_get_live (_tmp41_);
			_tmp43_ = _tmp42_;
			_tmp34_ = _tmp43_;
		} else {
			_tmp34_ = FALSE;
		}
		_tmp44_ = _tmp34_;
		if (_tmp44_) {
			gboolean _tmp45_;
			_tmp45_ = self->priv->skip_review_for_live;
			_tmp33_ = _tmp45_;
		} else {
			_tmp33_ = FALSE;
		}
		_tmp46_ = _tmp33_;
		if (_tmp46_) {
			BoxesWizardPage _tmp47_;
			_tmp47_ = skip_to;
			skip_to = _tmp47_ + 1;
		}
	}
	_tmp48_ = skip_to;
	_tmp49_ = page;
	if (_tmp48_ != _tmp49_) {
		BoxesWizardPage _tmp50_;
		_tmp50_ = skip_to;
		boxes_wizard_set_page (self, _tmp50_);
		result = TRUE;
		return result;
	}
	result = FALSE;
	return result;
}


static void __lambda137_ (BoxesWizard* self) {
	BoxesWizardSource* _tmp0_;
	BoxesApp* _tmp1_;
	boxes_wizard_destroy_machine (self);
	_tmp0_ = self->priv->wizard_source;
	boxes_wizard_source_set_page (_tmp0_, BOXES_SOURCE_PAGE_MAIN);
	_tmp1_ = boxes_app_app;
	boxes_ui_set_ui_state ((BoxesUI*) _tmp1_, BOXES_UI_STATE_COLLECTION);
}


static void ___lambda137__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda137_ (self);
}


static void __lambda138_ (BoxesWizard* self) {
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	_tmp0_ = boxes_wizard_get_page (self);
	_tmp1_ = _tmp0_;
	boxes_wizard_set_page (self, _tmp1_ - 1);
}


static void ___lambda138__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda138_ (self);
}


static void __lambda139_ (BoxesWizard* self) {
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	_tmp0_ = boxes_wizard_get_page (self);
	_tmp1_ = _tmp0_;
	boxes_wizard_set_page (self, _tmp1_ + 1);
}


static void ___lambda139__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda139_ (self);
}


static void boxes_wizard_setup_ui (BoxesWizard* self) {
	GtkNotebook* _tmp0_;
	GtkNotebook* _tmp1_;
	GtkNotebook* _tmp2_;
	GtkNotebook* _tmp3_;
	GtkNotebook* _tmp4_;
	GtkStyleContext* _tmp5_ = NULL;
	GtkNotebook* _tmp6_;
	GtkClutterActor* _tmp7_;
	GtkClutterActor* _tmp8_;
	GtkWidget* _tmp9_ = NULL;
	GtkStyleContext* _tmp10_ = NULL;
	GtkClutterActor* _tmp11_;
	GtkClutterActor* _tmp12_;
	GtkHBox* _tmp13_;
	GtkHBox* hbox;
	GtkHBox* _tmp14_;
	GtkHBox* _tmp15_;
	const gchar* _tmp16_ = NULL;
	GtkHBox* _tmp17_;
	gchar* _tmp18_ = NULL;
	gchar* _tmp19_;
	GtkImage* _tmp20_;
	GtkImage* _tmp21_;
	GtkLabel* _tmp22_;
	GtkLabel* label;
	GtkLabel* _tmp23_;
	GtkStyleContext* _tmp24_ = NULL;
	GtkLabel* _tmp25_;
	const gchar* _tmp26_ = NULL;
	GtkLabel* _tmp27_;
	GtkLabel* _tmp28_;
	GtkLabel* _tmp29_;
	GtkHBox* _tmp30_;
	GtkLabel* _tmp31_;
	GtkHBox* _tmp32_;
	GtkVBox* _tmp33_;
	GtkVBox* vbox;
	GtkVBox* _tmp34_;
	GtkVBox* _tmp35_;
	GtkVBox* _tmp36_;
	const gchar* _tmp37_ = NULL;
	const gchar* _tmp38_ = NULL;
	GtkLabel* _tmp39_;
	GtkLabel* _tmp40_;
	GtkStyleContext* _tmp41_ = NULL;
	GtkLabel* _tmp42_;
	GtkLabel* _tmp43_;
	GtkLabel* _tmp44_;
	GtkVBox* _tmp45_;
	GtkLabel* _tmp46_;
	GtkVBox* _tmp47_;
	BoxesWizardSource* _tmp48_;
	GtkWidget* _tmp49_;
	GtkWidget* _tmp50_;
	BoxesWizardSource* _tmp51_;
	GtkWidget* _tmp52_;
	GtkWidget* _tmp53_;
	BoxesWizardSource* _tmp54_;
	GtkWidget* _tmp55_;
	GtkWidget* _tmp56_;
	const gchar* _tmp57_ = NULL;
	GtkLabel* _tmp58_;
	GtkLabel* _tmp59_;
	GtkStyleContext* _tmp60_ = NULL;
	GtkLabel* _tmp61_;
	GtkLabel* _tmp62_;
	GtkLabel* _tmp63_;
	GtkVBox* _tmp64_;
	GtkLabel* _tmp65_;
	GtkVBox* _tmp66_;
	GtkVBox* _tmp67_;
	GtkVBox* _tmp68_;
	GtkVBox* _tmp69_;
	GtkVBox* _tmp70_;
	const gchar* _tmp71_ = NULL;
	const gchar* _tmp72_ = NULL;
	GtkLabel* _tmp73_;
	GtkLabel* _tmp74_;
	GtkStyleContext* _tmp75_ = NULL;
	GtkLabel* _tmp76_;
	GtkLabel* _tmp77_;
	GtkLabel* _tmp78_;
	GtkVBox* _tmp79_;
	GtkLabel* _tmp80_;
	GtkHBox* _tmp81_;
	GtkHBox* _tmp82_;
	GtkHBox* _tmp83_;
	GtkVBox* _tmp84_;
	GtkHBox* _tmp85_;
	GtkImage* _tmp86_;
	GtkImage* _tmp87_;
	GtkHBox* _tmp88_;
	GtkImage* _tmp89_;
	GtkVBox* _tmp90_;
	GtkVBox* prep_vbox;
	GtkHBox* _tmp91_;
	const gchar* _tmp92_ = NULL;
	GtkLabel* _tmp93_;
	GtkLabel* _tmp94_;
	GtkStyleContext* _tmp95_ = NULL;
	GtkLabel* _tmp96_;
	GtkProgressBar* _tmp97_;
	GtkProgressBar* _tmp98_;
	GtkVBox* _tmp99_;
	GtkVBox* _tmp100_;
	GtkVBox* _tmp101_;
	GtkVBox* _tmp102_;
	GtkVBox* _tmp103_;
	const gchar* _tmp104_ = NULL;
	GtkVBox* _tmp105_;
	GtkVBox* _tmp106_;
	GtkVBox* _tmp107_;
	GtkVBox* _tmp108_;
	GtkVBox* _tmp109_;
	const gchar* _tmp110_ = NULL;
	GtkLabel* _tmp111_;
	GtkLabel* _tmp112_;
	GtkStyleContext* _tmp113_ = NULL;
	GtkLabel* _tmp114_;
	GtkLabel* _tmp115_;
	GtkLabel* _tmp116_;
	GtkVBox* _tmp117_;
	GtkLabel* _tmp118_;
	BoxesWizardWizardSummary* _tmp119_;
	GtkVBox* _tmp120_;
	BoxesWizardWizardSummary* _tmp121_;
	GtkWidget* _tmp122_;
	GtkWidget* _tmp123_;
	const gchar* _tmp124_ = NULL;
	GtkLabel* _tmp125_;
	GtkLabel* _tmp126_;
	GtkStyleContext* _tmp127_ = NULL;
	GtkLabel* _tmp128_;
	GtkLabel* _tmp129_;
	GtkVBox* _tmp130_;
	GtkLabel* _tmp131_;
	GtkVBox* _tmp132_;
	BoxesApp* _tmp133_;
	BoxesTopbar* _tmp134_;
	GtkNotebook* _tmp135_;
	GtkWidget* _tmp136_ = NULL;
	GtkHBox* _tmp137_;
	const gchar* _tmp138_ = NULL;
	GtkLabel* _tmp139_;
	GtkLabel* _tmp140_;
	GtkLabel* _tmp141_;
	GtkLabel* _tmp142_;
	GtkHBox* _tmp143_;
	GtkLabel* _tmp144_;
	GdMainToolbar* _tmp145_;
	GdMainToolbar* toolbar;
	GtkStyleContext* _tmp146_ = NULL;
	GtkHBox* _tmp147_;
	const gchar* _tmp148_ = NULL;
	GtkWidget* _tmp149_ = NULL;
	GtkButton* _tmp150_;
	GtkButton* _tmp151_;
	GtkButton* _tmp152_;
	const gchar* _tmp153_ = NULL;
	GtkWidget* _tmp154_ = NULL;
	GtkButton* _tmp155_;
	GtkButton* _tmp156_;
	GtkButton* _tmp157_;
	const gchar* _tmp158_ = NULL;
	GtkWidget* _tmp159_ = NULL;
	GtkButton* _tmp160_;
	GtkButton* _tmp161_;
	GtkButton* _tmp162_;
	GtkStyleContext* _tmp163_ = NULL;
	GtkButton* _tmp164_;
	GtkHBox* _tmp165_;
	GtkNotebook* _tmp166_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (GtkNotebook*) gtk_notebook_new ();
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->notebook);
	self->priv->notebook = _tmp0_;
	_tmp1_ = self->priv->notebook;
	g_object_set ((GtkWidget*) _tmp1_, "margin", 15, NULL);
	_tmp2_ = self->priv->notebook;
	g_object_set ((GtkWidget*) _tmp2_, "width-request", 500, NULL);
	_tmp3_ = self->priv->notebook;
	gtk_notebook_set_show_tabs (_tmp3_, FALSE);
	_tmp4_ = self->priv->notebook;
	_tmp5_ = gtk_widget_get_style_context ((GtkWidget*) _tmp4_);
	gtk_style_context_add_class (_tmp5_, "boxes-bg");
	_tmp6_ = self->priv->notebook;
	_tmp7_ = (GtkClutterActor*) gtk_clutter_actor_new_with_contents ((GtkWidget*) _tmp6_);
	g_object_ref_sink (_tmp7_);
	_g_object_unref0 (self->priv->gtk_actor);
	self->priv->gtk_actor = _tmp7_;
	_tmp8_ = self->priv->gtk_actor;
	_tmp9_ = gtk_clutter_actor_get_widget (_tmp8_);
	_tmp10_ = gtk_widget_get_style_context (_tmp9_);
	gtk_style_context_add_class (_tmp10_, "boxes-bg");
	_tmp11_ = self->priv->gtk_actor;
	clutter_actor_set_name ((ClutterActor*) _tmp11_, "wizard");
	_tmp12_ = self->priv->gtk_actor;
	clutter_actor_set_opacity ((ClutterActor*) _tmp12_, (guint) 0);
	_tmp13_ = (GtkHBox*) gtk_hbox_new (FALSE, 10);
	g_object_ref_sink (_tmp13_);
	hbox = _tmp13_;
	_tmp14_ = hbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp14_, GTK_ALIGN_CENTER);
	_tmp15_ = hbox;
	_tmp16_ = _ ("Introduction");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp15_, _tmp16_, BOXES_WIZARD_PAGE_INTRODUCTION);
	_tmp17_ = hbox;
	_tmp18_ = boxes_get_pixmap ("boxes-create.png");
	_tmp19_ = _tmp18_;
	_tmp20_ = (GtkImage*) gtk_image_new_from_file (_tmp19_);
	g_object_ref_sink (_tmp20_);
	_tmp21_ = _tmp20_;
	gtk_container_add ((GtkContainer*) _tmp17_, (GtkWidget*) _tmp21_);
	_g_object_unref0 (_tmp21_);
	_g_free0 (_tmp19_);
	_tmp22_ = (GtkLabel*) gtk_label_new (NULL);
	g_object_ref_sink (_tmp22_);
	label = _tmp22_;
	_tmp23_ = label;
	_tmp24_ = gtk_widget_get_style_context ((GtkWidget*) _tmp23_);
	gtk_style_context_add_class (_tmp24_, "boxes-wizard-label");
	_tmp25_ = label;
	_tmp26_ = _ ("Creating a Box will allow you to use another operating system directly" \
" from your existing login.\n" \
"\n" \
"You may connect to an existing machine <b><i>over the network</i></b> " \
"or create a <b><i>virtual machine</i></b> that runs locally on your ow" \
"n.");
	gtk_label_set_markup (_tmp25_, _tmp26_);
	_tmp27_ = label;
	g_object_set (_tmp27_, "wrap", TRUE, NULL);
	_tmp28_ = label;
	gtk_label_set_width_chars (_tmp28_, 30);
	_tmp29_ = label;
	gtk_label_set_max_width_chars (_tmp29_, 40);
	_tmp30_ = hbox;
	_tmp31_ = label;
	gtk_container_add ((GtkContainer*) _tmp30_, (GtkWidget*) _tmp31_);
	_tmp32_ = hbox;
	gtk_widget_show_all ((GtkWidget*) _tmp32_);
	_tmp33_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	g_object_ref_sink (_tmp33_);
	vbox = _tmp33_;
	_tmp34_ = vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp34_, GTK_ALIGN_CENTER);
	_tmp35_ = vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp35_, GTK_ALIGN_CENTER);
	_tmp36_ = vbox;
	_tmp37_ = _ ("Source Selection");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp36_, _tmp37_, BOXES_WIZARD_PAGE_SOURCE);
	_tmp38_ = _ ("Insert operating system installation media or select a source below");
	_tmp39_ = (GtkLabel*) gtk_label_new (_tmp38_);
	g_object_ref_sink (_tmp39_);
	_g_object_unref0 (label);
	label = _tmp39_;
	_tmp40_ = label;
	_tmp41_ = gtk_widget_get_style_context ((GtkWidget*) _tmp40_);
	gtk_style_context_add_class (_tmp41_, "boxes-wizard-label");
	_tmp42_ = label;
	g_object_set (_tmp42_, "wrap", TRUE, NULL);
	_tmp43_ = label;
	gtk_label_set_width_chars (_tmp43_, 30);
	_tmp44_ = label;
	g_object_set ((GtkMisc*) _tmp44_, "xalign", 0.0f, NULL);
	_tmp45_ = vbox;
	_tmp46_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp45_, (GtkWidget*) _tmp46_, FALSE, FALSE, (guint) 0);
	_tmp47_ = vbox;
	_tmp48_ = self->priv->wizard_source;
	_tmp49_ = boxes_wizard_source_get_widget (_tmp48_);
	_tmp50_ = _tmp49_;
	gtk_box_pack_start ((GtkBox*) _tmp47_, _tmp50_, FALSE, FALSE, (guint) 0);
	_tmp51_ = self->priv->wizard_source;
	_tmp52_ = boxes_wizard_source_get_widget (_tmp51_);
	_tmp53_ = _tmp52_;
	gtk_widget_set_hexpand (_tmp53_, TRUE);
	_tmp54_ = self->priv->wizard_source;
	_tmp55_ = boxes_wizard_source_get_widget (_tmp54_);
	_tmp56_ = _tmp55_;
	gtk_widget_set_halign (_tmp56_, GTK_ALIGN_CENTER);
	_tmp57_ = _ ("Any trademarks shown above are used merely for identification of softw" \
"are products you have already obtained and are the property of their r" \
"espective owners.");
	_tmp58_ = (GtkLabel*) gtk_label_new (_tmp57_);
	g_object_ref_sink (_tmp58_);
	_g_object_unref0 (label);
	label = _tmp58_;
	_tmp59_ = label;
	_tmp60_ = gtk_widget_get_style_context ((GtkWidget*) _tmp59_);
	gtk_style_context_add_class (_tmp60_, "boxes-logo-notice-label");
	_tmp61_ = label;
	g_object_set (_tmp61_, "wrap", TRUE, NULL);
	_tmp62_ = label;
	gtk_label_set_width_chars (_tmp62_, 30);
	_tmp63_ = label;
	gtk_label_set_max_width_chars (_tmp63_, 50);
	_tmp64_ = vbox;
	_tmp65_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp64_, (GtkWidget*) _tmp65_, FALSE, FALSE, (guint) 0);
	_tmp66_ = vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp66_);
	_tmp67_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	g_object_ref_sink (_tmp67_);
	_g_object_unref0 (vbox);
	vbox = _tmp67_;
	_tmp68_ = vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp68_, GTK_ALIGN_CENTER);
	_tmp69_ = vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp69_, GTK_ALIGN_CENTER);
	_tmp70_ = vbox;
	_tmp71_ = _ ("Preparation");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp70_, _tmp71_, BOXES_WIZARD_PAGE_PREPARATION);
	_tmp72_ = _ ("Preparing to create new box");
	_tmp73_ = (GtkLabel*) gtk_label_new (_tmp72_);
	g_object_ref_sink (_tmp73_);
	_g_object_unref0 (label);
	label = _tmp73_;
	_tmp74_ = label;
	_tmp75_ = gtk_widget_get_style_context ((GtkWidget*) _tmp74_);
	gtk_style_context_add_class (_tmp75_, "boxes-wizard-label");
	_tmp76_ = label;
	g_object_set (_tmp76_, "wrap", TRUE, NULL);
	_tmp77_ = label;
	gtk_label_set_width_chars (_tmp77_, 30);
	_tmp78_ = label;
	g_object_set ((GtkMisc*) _tmp78_, "xalign", 0.0f, NULL);
	_tmp79_ = vbox;
	_tmp80_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp79_, (GtkWidget*) _tmp80_, FALSE, FALSE, (guint) 0);
	_tmp81_ = (GtkHBox*) gtk_hbox_new (FALSE, 10);
	g_object_ref_sink (_tmp81_);
	_g_object_unref0 (hbox);
	hbox = _tmp81_;
	_tmp82_ = hbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp82_, GTK_ALIGN_CENTER);
	_tmp83_ = hbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp83_, GTK_ALIGN_CENTER);
	_tmp84_ = vbox;
	_tmp85_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp84_, (GtkWidget*) _tmp85_, TRUE, TRUE, (guint) 0);
	_tmp86_ = (GtkImage*) gtk_image_new_from_icon_name ("media-optical", 0);
	g_object_ref_sink (_tmp86_);
	_g_object_unref0 (self->priv->installer_image);
	self->priv->installer_image = _tmp86_;
	_tmp87_ = self->priv->installer_image;
	gtk_image_set_pixel_size (_tmp87_, 128);
	_tmp88_ = hbox;
	_tmp89_ = self->priv->installer_image;
	gtk_box_pack_start ((GtkBox*) _tmp88_, (GtkWidget*) _tmp89_, FALSE, FALSE, (guint) 0);
	_tmp90_ = (GtkVBox*) gtk_vbox_new (TRUE, 10);
	g_object_ref_sink (_tmp90_);
	prep_vbox = _tmp90_;
	gtk_widget_set_valign ((GtkWidget*) prep_vbox, GTK_ALIGN_CENTER);
	_tmp91_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp91_, (GtkWidget*) prep_vbox, TRUE, TRUE, (guint) 0);
	_tmp92_ = _ ("Analyzing installer media.");
	_tmp93_ = (GtkLabel*) gtk_label_new (_tmp92_);
	g_object_ref_sink (_tmp93_);
	_g_object_unref0 (label);
	label = _tmp93_;
	_tmp94_ = label;
	_tmp95_ = gtk_widget_get_style_context ((GtkWidget*) _tmp94_);
	gtk_style_context_add_class (_tmp95_, "boxes-wizard-label");
	_tmp96_ = label;
	gtk_box_pack_start ((GtkBox*) prep_vbox, (GtkWidget*) _tmp96_, FALSE, FALSE, (guint) 0);
	_tmp97_ = (GtkProgressBar*) gtk_progress_bar_new ();
	g_object_ref_sink (_tmp97_);
	_g_object_unref0 (self->priv->prep_progress);
	self->priv->prep_progress = _tmp97_;
	_tmp98_ = self->priv->prep_progress;
	gtk_box_pack_start ((GtkBox*) prep_vbox, (GtkWidget*) _tmp98_, FALSE, FALSE, (guint) 0);
	_tmp99_ = vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp99_);
	_tmp100_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	g_object_ref_sink (_tmp100_);
	_g_object_unref0 (self->priv->setup_vbox);
	self->priv->setup_vbox = _tmp100_;
	_tmp101_ = self->priv->setup_vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp101_, GTK_ALIGN_CENTER);
	_tmp102_ = self->priv->setup_vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp102_, GTK_ALIGN_CENTER);
	_tmp103_ = self->priv->setup_vbox;
	_tmp104_ = _ ("Setup");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp103_, _tmp104_, BOXES_WIZARD_PAGE_SETUP);
	_tmp105_ = self->priv->setup_vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp105_);
	_tmp106_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	g_object_ref_sink (_tmp106_);
	_g_object_unref0 (vbox);
	vbox = _tmp106_;
	_tmp107_ = vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp107_, GTK_ALIGN_CENTER);
	_tmp108_ = vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp108_, GTK_ALIGN_CENTER);
	_tmp109_ = vbox;
	_tmp110_ = _ ("Review");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp109_, _tmp110_, BOXES_WIZARD_PAGE_REVIEW);
	_tmp111_ = (GtkLabel*) gtk_label_new (NULL);
	g_object_ref_sink (_tmp111_);
	_g_object_unref0 (self->priv->review_label);
	self->priv->review_label = _tmp111_;
	_tmp112_ = self->priv->review_label;
	_tmp113_ = gtk_widget_get_style_context ((GtkWidget*) _tmp112_);
	gtk_style_context_add_class (_tmp113_, "boxes-wizard-label");
	_tmp114_ = self->priv->review_label;
	g_object_set ((GtkMisc*) _tmp114_, "xalign", 0.0f, NULL);
	_tmp115_ = self->priv->review_label;
	g_object_set (_tmp115_, "wrap", TRUE, NULL);
	_tmp116_ = self->priv->review_label;
	gtk_label_set_width_chars (_tmp116_, 30);
	_tmp117_ = vbox;
	_tmp118_ = self->priv->review_label;
	gtk_box_pack_start ((GtkBox*) _tmp117_, (GtkWidget*) _tmp118_, FALSE, FALSE, (guint) 0);
	_tmp119_ = boxes_wizard_wizard_summary_new ();
	_g_object_unref0 (self->priv->summary);
	self->priv->summary = _tmp119_;
	_tmp120_ = vbox;
	_tmp121_ = self->priv->summary;
	_tmp122_ = boxes_wizard_wizard_summary_get_widget (_tmp121_);
	_tmp123_ = _tmp122_;
	gtk_box_pack_start ((GtkBox*) _tmp120_, _tmp123_, TRUE, TRUE, (guint) 0);
	_tmp124_ = _ ("Virtualization extensions are unavailable on your system. Expect this " \
"box to be extremely slow. If your system is recent enough (made in or " \
"after 2008), these extensions are probably available on your system an" \
"d you may need to enable them in your system's BIOS setup.");
	_tmp125_ = (GtkLabel*) gtk_label_new (_tmp124_);
	g_object_ref_sink (_tmp125_);
	_g_object_unref0 (self->priv->nokvm_label);
	self->priv->nokvm_label = _tmp125_;
	_tmp126_ = self->priv->nokvm_label;
	_tmp127_ = gtk_widget_get_style_context ((GtkWidget*) _tmp126_);
	gtk_style_context_add_class (_tmp127_, "boxes-logo-notice-label");
	_tmp128_ = self->priv->nokvm_label;
	g_object_set (_tmp128_, "wrap", TRUE, NULL);
	_tmp129_ = self->priv->nokvm_label;
	gtk_label_set_max_width_chars (_tmp129_, 50);
	_tmp130_ = vbox;
	_tmp131_ = self->priv->nokvm_label;
	gtk_box_pack_start ((GtkBox*) _tmp130_, (GtkWidget*) _tmp131_, FALSE, FALSE, (guint) 0);
	_tmp132_ = vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp132_);
	_tmp133_ = boxes_app_app;
	_tmp134_ = _tmp133_->topbar;
	_tmp135_ = _tmp134_->notebook;
	_tmp136_ = gtk_notebook_get_nth_page (_tmp135_, (gint) BOXES_TOPBAR_PAGE_WIZARD);
	_tmp137_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp136_, GTK_TYPE_HBOX) ? ((GtkHBox*) _tmp136_) : NULL);
	_g_object_unref0 (hbox);
	hbox = _tmp137_;
	_tmp138_ = _ ("Create a Box");
	_tmp139_ = (GtkLabel*) gtk_label_new (_tmp138_);
	g_object_ref_sink (_tmp139_);
	_g_object_unref0 (label);
	label = _tmp139_;
	_tmp140_ = label;
	gtk_widget_set_name ((GtkWidget*) _tmp140_, "TopbarLabel");
	_tmp141_ = label;
	gtk_widget_set_halign ((GtkWidget*) _tmp141_, GTK_ALIGN_START);
	_tmp142_ = label;
	gtk_widget_set_margin_left ((GtkWidget*) _tmp142_, 15);
	_tmp143_ = hbox;
	_tmp144_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp143_, (GtkWidget*) _tmp144_, FALSE, FALSE, (guint) 0);
	_tmp145_ = (GdMainToolbar*) gd_main_toolbar_new ();
	g_object_ref_sink (_tmp145_);
	toolbar = _tmp145_;
	_tmp146_ = gtk_widget_get_style_context ((GtkWidget*) toolbar);
	gtk_style_context_add_class (_tmp146_, GTK_STYLE_CLASS_MENUBAR);
	g_object_set ((GtkToolbar*) toolbar, "toolbar-style", GTK_TOOLBAR_TEXT, NULL);
	_tmp147_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp147_, (GtkWidget*) toolbar, TRUE, TRUE, (guint) 0);
	_tmp148_ = _ ("_Cancel");
	_tmp149_ = gd_main_toolbar_add_button (toolbar, NULL, _tmp148_, FALSE);
	_tmp150_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp149_, GTK_TYPE_BUTTON) ? ((GtkButton*) _tmp149_) : NULL);
	_g_object_unref0 (self->priv->cancel_button);
	self->priv->cancel_button = _tmp150_;
	_tmp151_ = self->priv->cancel_button;
	gtk_button_set_use_underline (_tmp151_, TRUE);
	_tmp152_ = self->priv->cancel_button;
	g_signal_connect_object (_tmp152_, "clicked", (GCallback) ___lambda137__gtk_button_clicked, self, 0);
	_tmp153_ = _ ("_Back");
	_tmp154_ = gd_main_toolbar_add_button (toolbar, NULL, _tmp153_, FALSE);
	_tmp155_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp154_, GTK_TYPE_BUTTON) ? ((GtkButton*) _tmp154_) : NULL);
	_g_object_unref0 (self->priv->back_button);
	self->priv->back_button = _tmp155_;
	_tmp156_ = self->priv->back_button;
	gtk_button_set_use_underline (_tmp156_, TRUE);
	_tmp157_ = self->priv->back_button;
	g_signal_connect_object (_tmp157_, "clicked", (GCallback) ___lambda138__gtk_button_clicked, self, 0);
	_tmp158_ = _ ("C_ontinue");
	_tmp159_ = gd_main_toolbar_add_button (toolbar, NULL, _tmp158_, FALSE);
	_tmp160_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp159_, GTK_TYPE_BUTTON) ? ((GtkButton*) _tmp159_) : NULL);
	_g_object_unref0 (self->priv->next_button);
	self->priv->next_button = _tmp160_;
	_tmp161_ = self->priv->next_button;
	gtk_button_set_use_underline (_tmp161_, TRUE);
	_tmp162_ = self->priv->next_button;
	_tmp163_ = gtk_widget_get_style_context ((GtkWidget*) _tmp162_);
	gtk_style_context_add_class (_tmp163_, "boxes-continue");
	_tmp164_ = self->priv->next_button;
	g_signal_connect_object (_tmp164_, "clicked", (GCallback) ___lambda139__gtk_button_clicked, self, 0);
	_tmp165_ = hbox;
	gtk_widget_show_all ((GtkWidget*) _tmp165_);
	_tmp166_ = self->priv->notebook;
	gtk_widget_show_all ((GtkWidget*) _tmp166_);
	_g_object_unref0 (toolbar);
	_g_object_unref0 (prep_vbox);
	_g_object_unref0 (vbox);
	_g_object_unref0 (label);
	_g_object_unref0 (hbox);
}


void boxes_wizard_open_with_uri (BoxesWizard* self, const gchar* uri, gboolean skip_review_for_live) {
	BoxesApp* _tmp0_;
	gboolean _tmp1_;
	BoxesWizardSource* _tmp2_;
	BoxesWizardSource* _tmp3_;
	const gchar* _tmp4_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uri != NULL);
	_tmp0_ = boxes_app_app;
	boxes_ui_set_ui_state ((BoxesUI*) _tmp0_, BOXES_UI_STATE_WIZARD);
	_tmp1_ = skip_review_for_live;
	self->priv->skip_review_for_live = _tmp1_;
	boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SOURCE);
	_tmp2_ = self->priv->wizard_source;
	boxes_wizard_source_set_page (_tmp2_, BOXES_SOURCE_PAGE_URL);
	_tmp3_ = self->priv->wizard_source;
	_tmp4_ = uri;
	boxes_wizard_source_set_uri (_tmp3_, _tmp4_);
	boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_PREPARATION);
}


static void boxes_wizard_real_ui_state_changed (BoxesUI* base) {
	BoxesWizard * self;
	guint opacity;
	BoxesUIState _tmp0_;
	BoxesUIState _tmp1_;
	ClutterActor* _tmp4_;
	ClutterActor* _tmp5_;
	guint _tmp6_;
	self = (BoxesWizard*) base;
	opacity = (guint) 0;
	_tmp0_ = boxes_ui_get_ui_state ((BoxesUI*) self);
	_tmp1_ = _tmp0_;
	switch (_tmp1_) {
		case BOXES_UI_STATE_WIZARD:
		{
			BoxesUIState _tmp2_;
			_tmp2_ = ((BoxesUI*) self)->previous_ui_state;
			if (_tmp2_ == BOXES_UI_STATE_PROPERTIES) {
				boxes_wizard_review (self, NULL, NULL);
			} else {
				BoxesWizardSource* _tmp3_;
				_tmp3_ = self->priv->wizard_source;
				boxes_wizard_source_set_uri (_tmp3_, "");
				boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_INTRODUCTION);
			}
			opacity = (guint) 255;
			break;
		}
		default:
		break;
	}
	_tmp4_ = boxes_ui_get_actor ((BoxesUI*) self);
	_tmp5_ = _tmp4_;
	_tmp6_ = opacity;
	boxes_fade_actor (_tmp5_, _tmp6_);
}


static void boxes_wizard_destroy_machine (BoxesWizard* self) {
	GCancellable* _tmp0_;
	BoxesLibvirtMachine* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->review_cancellable;
	if (_tmp0_ != NULL) {
		GCancellable* _tmp1_;
		_tmp1_ = self->priv->review_cancellable;
		g_cancellable_cancel (_tmp1_);
	}
	_tmp2_ = self->priv->_machine;
	if (_tmp2_ != NULL) {
		BoxesApp* _tmp3_;
		BoxesLibvirtMachine* _tmp4_;
		_tmp3_ = boxes_app_app;
		_tmp4_ = self->priv->_machine;
		boxes_app_delete_machine (_tmp3_, (BoxesMachine*) _tmp4_, TRUE);
		boxes_wizard_set_machine (self, NULL);
	}
}


static ClutterActor* boxes_wizard_real_get_actor (BoxesUI* base) {
	ClutterActor* result;
	BoxesWizard* self;
	GtkClutterActor* _tmp0_;
	self = (BoxesWizard*) base;
	_tmp0_ = self->priv->gtk_actor;
	result = (ClutterActor*) _tmp0_;
	return result;
}


BoxesLibvirtMachine* boxes_wizard_get_machine (BoxesWizard* self) {
	BoxesLibvirtMachine* result;
	BoxesLibvirtMachine* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_machine;
	result = _tmp0_;
	return result;
}


void boxes_wizard_set_machine (BoxesWizard* self, BoxesLibvirtMachine* value) {
	BoxesLibvirtMachine* _tmp0_;
	BoxesLibvirtMachine* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->priv->_machine);
	self->priv->_machine = _tmp1_;
	g_object_notify ((GObject *) self, "machine");
}


static BoxesWizardPage boxes_wizard_get_page (BoxesWizard* self) {
	BoxesWizardPage result;
	BoxesWizardPage _tmp0_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->_page;
	result = _tmp0_;
	return result;
}


static void _boxes_wizard_page_____lambda129_ (BoxesWizard* self, GObject* obj, GAsyncResult* _result_) {
	GtkButton* _tmp0_;
	GAsyncResult* _tmp1_;
	gboolean _tmp2_ = FALSE;
	g_return_if_fail (_result_ != NULL);
	_tmp0_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, TRUE);
	_tmp1_ = _result_;
	_tmp2_ = boxes_wizard_review_finish (self, _tmp1_);
	if (!_tmp2_) {
		BoxesWizardPage _tmp3_;
		BoxesWizardPage _tmp4_;
		_tmp3_ = boxes_wizard_get_page (self);
		_tmp4_ = _tmp3_;
		boxes_wizard_set_page (self, _tmp4_ - 1);
	}
}


static void __boxes_wizard_page_____lambda129__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	_boxes_wizard_page_____lambda129_ (self, source_object, res);
	g_object_unref (self);
}


static void _boxes_wizard_page_____lambda134_ (BoxesWizard* self, GObject* obj, GAsyncResult* _result_) {
	GAsyncResult* _tmp0_;
	gboolean _tmp1_ = FALSE;
	g_return_if_fail (_result_ != NULL);
	_tmp0_ = _result_;
	_tmp1_ = boxes_wizard_create_finish (self, _tmp0_);
	if (_tmp1_) {
		BoxesApp* _tmp2_;
		_tmp2_ = boxes_app_app;
		boxes_ui_set_ui_state ((BoxesUI*) _tmp2_, BOXES_UI_STATE_COLLECTION);
	} else {
		BoxesApp* _tmp3_;
		BoxesNotificationbar* _tmp4_;
		const gchar* _tmp5_ = NULL;
		_tmp3_ = boxes_app_app;
		_tmp4_ = _tmp3_->notificationbar;
		_tmp5_ = _ ("Box creation failed");
		boxes_notificationbar_display_error (_tmp4_, _tmp5_);
	}
}


static void __boxes_wizard_page_____lambda134__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	_boxes_wizard_page_____lambda134_ (self, source_object, res);
	g_object_unref (self);
}


static gint g_ptr_array_get_length (GPtrArray* self) {
	gint result;
	guint _tmp0_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->len;
	result = (gint) _tmp0_;
	return result;
}


static void g_ptr_array_set_length (GPtrArray* self, gint value) {
	gint _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	g_ptr_array_set_size (self, _tmp0_);
}


static void boxes_wizard_set_page (BoxesWizard* self, BoxesWizardPage value) {
	GtkButton* _tmp0_;
	BoxesWizardPage _tmp1_;
	BoxesWizardPage _tmp2_;
	BoxesWizardPage _tmp3_;
	BoxesWizardPage _tmp4_;
	gboolean forwards;
	BoxesWizardPage _tmp5_;
	gboolean _tmp12_;
	BoxesWizardPage _tmp21_;
	gboolean _tmp22_ = FALSE;
	BoxesWizardPage _tmp23_;
	GtkNotebook* _tmp24_;
	BoxesWizardPage _tmp25_;
	GPtrArray* _tmp38_;
	BoxesWizardPage _tmp39_;
	BoxesWizardPage _tmp40_;
	gconstpointer _tmp41_ = NULL;
	GdkColor _tmp42_ = {0};
	const gchar* _tmp43_ = NULL;
	BoxesWizardPage _tmp44_;
	BoxesWizardPage _tmp45_;
	GtkButton* _tmp48_;
	const gchar* _tmp49_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->back_button;
	_tmp1_ = value;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, _tmp1_ != BOXES_WIZARD_PAGE_INTRODUCTION);
	_tmp2_ = value;
	_tmp3_ = boxes_wizard_get_page (self);
	_tmp4_ = _tmp3_;
	forwards = _tmp2_ > _tmp4_;
	_tmp5_ = value;
	switch (_tmp5_) {
		case BOXES_WIZARD_PAGE_INTRODUCTION:
		{
			GtkButton* _tmp6_;
			GtkButton* _tmp7_;
			_tmp6_ = self->priv->next_button;
			gtk_widget_set_sensitive ((GtkWidget*) _tmp6_, TRUE);
			_tmp7_ = self->priv->next_button;
			gtk_widget_grab_focus ((GtkWidget*) _tmp7_);
			break;
		}
		case BOXES_WIZARD_PAGE_SOURCE:
		{
			BoxesWizardSource* _tmp8_;
			BoxesWizardSource* _tmp9_;
			BoxesSourcePage _tmp10_;
			BoxesSourcePage _tmp11_;
			_tmp8_ = self->priv->wizard_source;
			_tmp9_ = self->priv->wizard_source;
			_tmp10_ = boxes_wizard_source_get_page (_tmp9_);
			_tmp11_ = _tmp10_;
			boxes_wizard_source_set_page (_tmp8_, _tmp11_);
			break;
		}
		default:
		break;
	}
	_tmp12_ = forwards;
	if (_tmp12_) {
		BoxesWizardPage _tmp13_;
		_tmp13_ = value;
		switch (_tmp13_) {
			case BOXES_WIZARD_PAGE_SOURCE:
			{
				BoxesWizardSource* _tmp14_;
				BoxesWizardSource* _tmp15_;
				_tmp14_ = self->priv->wizard_source;
				boxes_wizard_source_set_selected (_tmp14_, NULL);
				_tmp15_ = self->priv->wizard_source;
				boxes_wizard_source_set_page (_tmp15_, BOXES_SOURCE_PAGE_MAIN);
				break;
			}
			case BOXES_WIZARD_PAGE_PREPARATION:
			{
				gboolean _tmp16_ = FALSE;
				_tmp16_ = boxes_wizard_prepare (self);
				if (!_tmp16_) {
					return;
				}
				break;
			}
			case BOXES_WIZARD_PAGE_SETUP:
			{
				gboolean _tmp17_ = FALSE;
				_tmp17_ = boxes_wizard_setup (self);
				if (!_tmp17_) {
					return;
				}
				break;
			}
			case BOXES_WIZARD_PAGE_REVIEW:
			{
				GtkButton* _tmp18_;
				_tmp18_ = self->priv->next_button;
				gtk_widget_set_sensitive ((GtkWidget*) _tmp18_, FALSE);
				boxes_wizard_review (self, __boxes_wizard_page_____lambda129__gasync_ready_callback, g_object_ref (self));
				break;
			}
			case BOXES_WIZARD_PAGE_LAST:
			{
				boxes_wizard_create (self, __boxes_wizard_page_____lambda134__gasync_ready_callback, g_object_ref (self));
				return;
			}
			default:
			break;
		}
	} else {
		BoxesWizardPage _tmp19_;
		BoxesWizardPage _tmp20_;
		_tmp19_ = boxes_wizard_get_page (self);
		_tmp20_ = _tmp19_;
		switch (_tmp20_) {
			case BOXES_WIZARD_PAGE_REVIEW:
			{
				boxes_wizard_destroy_machine (self);
				break;
			}
			default:
			break;
		}
	}
	_tmp21_ = value;
	_tmp22_ = boxes_wizard_skip_page (self, _tmp21_);
	if (_tmp22_) {
		return;
	}
	_tmp23_ = value;
	self->priv->_page = _tmp23_;
	_tmp24_ = self->priv->notebook;
	_tmp25_ = value;
	gtk_notebook_set_current_page (_tmp24_, (gint) _tmp25_);
	{
		gint i;
		i = 0;
		{
			gboolean _tmp26_;
			_tmp26_ = TRUE;
			while (TRUE) {
				gboolean _tmp27_;
				gint _tmp29_;
				GPtrArray* _tmp30_;
				gint _tmp31_;
				gint _tmp32_;
				GPtrArray* _tmp33_;
				gint _tmp34_;
				gconstpointer _tmp35_ = NULL;
				GtkLabel* _tmp36_;
				GtkLabel* label;
				GtkLabel* _tmp37_;
				_tmp27_ = _tmp26_;
				if (!_tmp27_) {
					gint _tmp28_;
					_tmp28_ = i;
					i = _tmp28_ + 1;
				}
				_tmp26_ = FALSE;
				_tmp29_ = i;
				_tmp30_ = self->priv->steps;
				_tmp31_ = g_ptr_array_get_length (_tmp30_);
				_tmp32_ = _tmp31_;
				if (!(_tmp29_ < _tmp32_)) {
					break;
				}
				_tmp33_ = self->priv->steps;
				_tmp34_ = i;
				_tmp35_ = g_ptr_array_index (_tmp33_, (guint) _tmp34_);
				_tmp36_ = _g_object_ref0 ((GtkLabel*) _tmp35_);
				label = _tmp36_;
				_tmp37_ = label;
				gtk_widget_modify_fg ((GtkWidget*) _tmp37_, GTK_STATE_NORMAL, NULL);
				_g_object_unref0 (label);
			}
		}
	}
	_tmp38_ = self->priv->steps;
	_tmp39_ = boxes_wizard_get_page (self);
	_tmp40_ = _tmp39_;
	_tmp41_ = g_ptr_array_index (_tmp38_, (guint) _tmp40_);
	boxes_get_color ("white", &_tmp42_);
	gtk_widget_modify_fg ((GtkWidget*) ((GtkLabel*) _tmp41_), GTK_STATE_NORMAL, &_tmp42_);
	_tmp44_ = boxes_wizard_get_page (self);
	_tmp45_ = _tmp44_;
	if (_tmp45_ != BOXES_WIZARD_PAGE_REVIEW) {
		const gchar* _tmp46_ = NULL;
		_tmp46_ = _ ("C_ontinue");
		_tmp43_ = _tmp46_;
	} else {
		const gchar* _tmp47_ = NULL;
		_tmp47_ = _ ("C_reate");
		_tmp43_ = _tmp47_;
	}
	_tmp48_ = self->priv->next_button;
	_tmp49_ = _tmp43_;
	gtk_button_set_label (_tmp48_, _tmp49_);
}


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


static GObject * boxes_wizard_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	BoxesWizard * self;
	GPtrArray* _tmp0_;
	GPtrArray* _tmp1_;
	BoxesMediaManager* _tmp2_;
	parent_class = G_OBJECT_CLASS (boxes_wizard_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BOXES_TYPE_WIZARD, BoxesWizard);
	_tmp0_ = g_ptr_array_new_with_free_func (_g_object_unref0_);
	_g_ptr_array_unref0 (self->priv->steps);
	self->priv->steps = _tmp0_;
	_tmp1_ = self->priv->steps;
	g_ptr_array_set_length (_tmp1_, (gint) BOXES_WIZARD_PAGE_LAST);
	_tmp2_ = boxes_media_manager_new ();
	_g_object_unref0 (self->priv->media_manager);
	self->priv->media_manager = _tmp2_;
	return obj;
}


static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_construct (GType object_type) {
	BoxesWizardWizardSummary * self = NULL;
	GtkTable* _tmp0_;
	GtkTable* _tmp1_;
	GtkTable* _tmp2_;
	self = (BoxesWizardWizardSummary*) g_object_new (object_type, NULL);
	_tmp0_ = (GtkTable*) gtk_table_new ((guint) 1, (guint) 3, FALSE);
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->table);
	self->priv->table = _tmp0_;
	_tmp1_ = self->priv->table;
	g_object_set (_tmp1_, "row-spacing", (guint) 10, NULL);
	_tmp2_ = self->priv->table;
	g_object_set (_tmp2_, "column-spacing", (guint) 20, NULL);
	boxes_wizard_wizard_summary_clear (self);
	return self;
}


static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_new (void) {
	return boxes_wizard_wizard_summary_construct (BOXES_WIZARD_TYPE_WIZARD_SUMMARY);
}


static void boxes_wizard_wizard_summary_add_property (BoxesWizardWizardSummary* self, const gchar* name, const gchar* value) {
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	GtkLabel* _tmp2_;
	GtkLabel* label_name;
	GtkLabel* _tmp3_;
	GdkColor _tmp4_ = {0};
	GtkLabel* _tmp5_;
	GtkTable* _tmp6_;
	GtkLabel* _tmp7_;
	guint _tmp8_;
	guint _tmp9_;
	const gchar* _tmp10_;
	GtkLabel* _tmp11_;
	GtkLabel* label_value;
	GtkLabel* _tmp12_;
	GdkColor _tmp13_ = {0};
	GtkLabel* _tmp14_;
	GtkTable* _tmp15_;
	GtkLabel* _tmp16_;
	guint _tmp17_;
	guint _tmp18_;
	guint _tmp19_;
	GtkTable* _tmp20_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (name != NULL);
	_tmp0_ = value;
	if (_tmp0_ == NULL) {
		return;
	}
	_tmp1_ = name;
	_tmp2_ = (GtkLabel*) gtk_label_new (_tmp1_);
	g_object_ref_sink (_tmp2_);
	label_name = _tmp2_;
	_tmp3_ = label_name;
	boxes_get_color ("grey", &_tmp4_);
	gtk_widget_modify_fg ((GtkWidget*) _tmp3_, GTK_STATE_NORMAL, &_tmp4_);
	_tmp5_ = label_name;
	g_object_set ((GtkMisc*) _tmp5_, "xalign", 1.0f, NULL);
	_tmp6_ = self->priv->table;
	_tmp7_ = label_name;
	_tmp8_ = self->priv->current_row;
	_tmp9_ = self->priv->current_row;
	gtk_table_attach_defaults (_tmp6_, (GtkWidget*) _tmp7_, (guint) 0, (guint) 1, _tmp8_, _tmp9_ + 1);
	_tmp10_ = value;
	_tmp11_ = (GtkLabel*) gtk_label_new (_tmp10_);
	g_object_ref_sink (_tmp11_);
	label_value = _tmp11_;
	_tmp12_ = label_value;
	boxes_get_color ("white", &_tmp13_);
	gtk_widget_modify_fg ((GtkWidget*) _tmp12_, GTK_STATE_NORMAL, &_tmp13_);
	_tmp14_ = label_value;
	g_object_set ((GtkMisc*) _tmp14_, "xalign", 0.0f, NULL);
	_tmp15_ = self->priv->table;
	_tmp16_ = label_value;
	_tmp17_ = self->priv->current_row;
	_tmp18_ = self->priv->current_row;
	gtk_table_attach_defaults (_tmp15_, (GtkWidget*) _tmp16_, (guint) 1, (guint) 2, _tmp17_, _tmp18_ + 1);
	_tmp19_ = self->priv->current_row;
	self->priv->current_row = _tmp19_ + 1;
	_tmp20_ = self->priv->table;
	gtk_widget_show_all ((GtkWidget*) _tmp20_);
	_g_object_unref0 (label_value);
	_g_object_unref0 (label_name);
}


static Block52Data* block52_data_ref (Block52Data* _data52_) {
	g_atomic_int_inc (&_data52_->_ref_count_);
	return _data52_;
}


static void block52_data_unref (void * _userdata_) {
	Block52Data* _data52_;
	_data52_ = (Block52Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data52_->_ref_count_)) {
		BoxesWizardWizardSummary * self;
		self = _data52_->self;
		_g_object_unref0 (self);
		g_slice_free (Block52Data, _data52_);
	}
}


static void __lambda126_ (Block52Data* _data52_) {
	BoxesWizardWizardSummary * self;
	BoxesWizardWizardSummaryCustomizeFunc _tmp0_;
	void* _tmp0__target;
	self = _data52_->self;
	_tmp0_ = _data52_->customize_func;
	_tmp0__target = _data52_->customize_func_target;
	_tmp0_ (_tmp0__target);
}


static void ___lambda126__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda126_ (self);
}


static void boxes_wizard_wizard_summary_append_customize_button (BoxesWizardWizardSummary* self, BoxesWizardWizardSummaryCustomizeFunc customize_func, void* customize_func_target) {
	Block52Data* _data52_;
	BoxesWizardWizardSummaryCustomizeFunc _tmp0_;
	void* _tmp0__target;
	guint _tmp1_;
	const gchar* _tmp2_ = NULL;
	GtkButton* _tmp3_;
	GtkButton* button;
	GtkButton* _tmp4_;
	GdkColor _tmp5_ = {0};
	GtkTable* _tmp6_;
	GtkButton* _tmp7_;
	guint _tmp8_;
	guint _tmp9_;
	GtkButton* _tmp10_;
	GtkButton* _tmp11_;
	g_return_if_fail (self != NULL);
	_data52_ = g_slice_new0 (Block52Data);
	_data52_->_ref_count_ = 1;
	_data52_->self = g_object_ref (self);
	_tmp0_ = customize_func;
	_tmp0__target = customize_func_target;
	_data52_->customize_func = _tmp0_;
	_data52_->customize_func_target = _tmp0__target;
	_tmp1_ = self->priv->current_row;
	if (_tmp1_ == ((guint) 0)) {
		block52_data_unref (_data52_);
		_data52_ = NULL;
		return;
	}
	_tmp2_ = _ ("C_ustomize...");
	_tmp3_ = (GtkButton*) gtk_button_new_with_mnemonic (_tmp2_);
	g_object_ref_sink (_tmp3_);
	button = _tmp3_;
	_tmp4_ = button;
	boxes_get_color ("white", &_tmp5_);
	gtk_widget_modify_fg ((GtkWidget*) _tmp4_, GTK_STATE_NORMAL, &_tmp5_);
	_tmp6_ = self->priv->table;
	_tmp7_ = button;
	_tmp8_ = self->priv->current_row;
	_tmp9_ = self->priv->current_row;
	gtk_table_attach_defaults (_tmp6_, (GtkWidget*) _tmp7_, (guint) 2, (guint) 3, _tmp8_ - 1, _tmp9_);
	_tmp10_ = button;
	gtk_widget_show ((GtkWidget*) _tmp10_);
	_tmp11_ = button;
	g_signal_connect_data (_tmp11_, "clicked", (GCallback) ___lambda126__gtk_button_clicked, block52_data_ref (_data52_), (GClosureNotify) block52_data_unref, 0);
	_g_object_unref0 (button);
	block52_data_unref (_data52_);
	_data52_ = NULL;
}


static void boxes_wizard_wizard_summary_clear (BoxesWizardWizardSummary* self) {
	GtkTable* _tmp0_;
	GList* _tmp1_ = NULL;
	GtkTable* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->table;
	_tmp1_ = gtk_container_get_children ((GtkContainer*) _tmp0_);
	{
		GList* child_collection = NULL;
		GList* child_it = NULL;
		child_collection = _tmp1_;
		for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
			GtkWidget* child = NULL;
			child = (GtkWidget*) child_it->data;
			{
				GtkTable* _tmp2_;
				GtkWidget* _tmp3_;
				_tmp2_ = self->priv->table;
				_tmp3_ = child;
				gtk_container_remove ((GtkContainer*) _tmp2_, _tmp3_);
			}
		}
		_g_list_free0 (child_collection);
	}
	_tmp4_ = self->priv->table;
	gtk_table_resize (_tmp4_, (guint) 1, (guint) 2);
	self->priv->current_row = (guint) 0;
}


static GtkWidget* boxes_wizard_wizard_summary_get_widget (BoxesWizardWizardSummary* self) {
	GtkWidget* result;
	GtkTable* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->table;
	result = (GtkWidget*) _tmp0_;
	return result;
}


static void boxes_wizard_wizard_summary_class_init (BoxesWizardWizardSummaryClass * klass) {
	boxes_wizard_wizard_summary_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (BoxesWizardWizardSummaryPrivate));
	G_OBJECT_CLASS (klass)->get_property = _vala_boxes_wizard_wizard_summary_get_property;
	G_OBJECT_CLASS (klass)->finalize = boxes_wizard_wizard_summary_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_WIZARD_WIZARD_SUMMARY_WIDGET, g_param_spec_object ("widget", "widget", "widget", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
}


static void boxes_wizard_wizard_summary_instance_init (BoxesWizardWizardSummary * self) {
	self->priv = BOXES_WIZARD_WIZARD_SUMMARY_GET_PRIVATE (self);
}


static void boxes_wizard_wizard_summary_finalize (GObject* obj) {
	BoxesWizardWizardSummary * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummary);
	_g_object_unref0 (self->priv->table);
	G_OBJECT_CLASS (boxes_wizard_wizard_summary_parent_class)->finalize (obj);
}


static GType boxes_wizard_wizard_summary_get_type (void) {
	static volatile gsize boxes_wizard_wizard_summary_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_wizard_wizard_summary_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesWizardWizardSummaryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) boxes_wizard_wizard_summary_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BoxesWizardWizardSummary), 0, (GInstanceInitFunc) boxes_wizard_wizard_summary_instance_init, NULL };
		GType boxes_wizard_wizard_summary_type_id;
		boxes_wizard_wizard_summary_type_id = g_type_register_static (G_TYPE_OBJECT, "BoxesWizardWizardSummary", &g_define_type_info, 0);
		g_once_init_leave (&boxes_wizard_wizard_summary_type_id__volatile, boxes_wizard_wizard_summary_type_id);
	}
	return boxes_wizard_wizard_summary_type_id__volatile;
}


static void _vala_boxes_wizard_wizard_summary_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	BoxesWizardWizardSummary * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummary);
	switch (property_id) {
		case BOXES_WIZARD_WIZARD_SUMMARY_WIDGET:
		g_value_set_object (value, boxes_wizard_wizard_summary_get_widget (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void boxes_wizard_class_init (BoxesWizardClass * klass) {
	boxes_wizard_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (BoxesWizardPrivate));
	BOXES_UI_CLASS (klass)->ui_state_changed = boxes_wizard_real_ui_state_changed;
	BOXES_UI_CLASS (klass)->get_actor = boxes_wizard_real_get_actor;
	G_OBJECT_CLASS (klass)->get_property = _vala_boxes_wizard_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_boxes_wizard_set_property;
	G_OBJECT_CLASS (klass)->constructor = boxes_wizard_constructor;
	G_OBJECT_CLASS (klass)->finalize = boxes_wizard_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_WIZARD_ACTOR, g_param_spec_object ("actor", "actor", "actor", clutter_actor_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_WIZARD_MACHINE, g_param_spec_object ("machine", "machine", "machine", BOXES_TYPE_LIBVIRT_MACHINE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}


static void boxes_wizard_instance_init (BoxesWizard * self) {
	self->priv = BOXES_WIZARD_GET_PRIVATE (self);
}


static void boxes_wizard_finalize (GObject* obj) {
	BoxesWizard * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BOXES_TYPE_WIZARD, BoxesWizard);
	_g_object_unref0 (self->priv->gtk_actor);
	_g_ptr_array_unref0 (self->priv->steps);
	_g_object_unref0 (self->priv->notebook);
	_g_object_unref0 (self->priv->cancel_button);
	_g_object_unref0 (self->priv->back_button);
	_g_object_unref0 (self->priv->next_button);
	_g_object_unref0 (self->priv->wizard_source);
	_g_object_unref0 (self->priv->summary);
	_g_object_unref0 (self->priv->source);
	_g_object_unref0 (self->priv->prep_progress);
	_g_object_unref0 (self->priv->setup_vbox);
	_g_object_unref0 (self->priv->review_label);
	_g_object_unref0 (self->priv->nokvm_label);
	_g_object_unref0 (self->priv->installer_image);
	_g_object_unref0 (self->priv->media_manager);
	_boxes_vm_creator_unref0 (self->priv->vm_creator);
	_g_object_unref0 (self->priv->_machine);
	_g_object_unref0 (self->priv->review_cancellable);
	G_OBJECT_CLASS (boxes_wizard_parent_class)->finalize (obj);
}


GType boxes_wizard_get_type (void) {
	static volatile gsize boxes_wizard_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_wizard_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesWizardClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) boxes_wizard_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BoxesWizard), 0, (GInstanceInitFunc) boxes_wizard_instance_init, NULL };
		GType boxes_wizard_type_id;
		boxes_wizard_type_id = g_type_register_static (BOXES_TYPE_UI, "BoxesWizard", &g_define_type_info, 0);
		g_once_init_leave (&boxes_wizard_type_id__volatile, boxes_wizard_type_id);
	}
	return boxes_wizard_type_id__volatile;
}


static void _vala_boxes_wizard_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	BoxesWizard * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BOXES_TYPE_WIZARD, BoxesWizard);
	switch (property_id) {
		case BOXES_WIZARD_ACTOR:
		g_value_set_object (value, boxes_ui_get_actor ((BoxesUI*) self));
		break;
		case BOXES_WIZARD_MACHINE:
		g_value_set_object (value, boxes_wizard_get_machine (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_boxes_wizard_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	BoxesWizard * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BOXES_TYPE_WIZARD, BoxesWizard);
	switch (property_id) {
		case BOXES_WIZARD_MACHINE:
		boxes_wizard_set_machine (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}



