/* main.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from main.vala, do not modify */

/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*-
 *
 * SPDX-License-Identifier: GPL-3.0-or-later
 * SPDX-FileCopyrightText: Michael Terry
 */

#include <adwaita.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <gtk/gtk.h>
#include "deja.h"
#include <glib-unix.h>
#include <signal.h>
#include <gdk/gdk.h>

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

#define TYPE_DEJA_DUP_APP (deja_dup_app_get_type ())
#define DEJA_DUP_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEJA_DUP_APP, DejaDupApp))
#define DEJA_DUP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEJA_DUP_APP, DejaDupAppClass))
#define IS_DEJA_DUP_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEJA_DUP_APP))
#define IS_DEJA_DUP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEJA_DUP_APP))
#define DEJA_DUP_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEJA_DUP_APP, DejaDupAppClass))

typedef struct _DejaDupApp DejaDupApp;
typedef struct _DejaDupAppClass DejaDupAppClass;
typedef struct _DejaDupAppPrivate DejaDupAppPrivate;
enum  {
	DEJA_DUP_APP_0_PROPERTY,
	DEJA_DUP_APP_NUM_PROPERTIES
};
static GParamSpec* deja_dup_app_properties[DEJA_DUP_APP_NUM_PROPERTIES];
typedef void (*GSimpleActionActivateCallback) (GSimpleAction* action, GVariant* parameter, gpointer user_data);
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_variant_dict_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_dict_unref (var), NULL)))

#define TYPE_MAIN_WINDOW (main_window_get_type ())
#define MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MAIN_WINDOW, MainWindow))
#define MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MAIN_WINDOW, MainWindowClass))
#define IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MAIN_WINDOW))
#define IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MAIN_WINDOW))
#define MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MAIN_WINDOW, MainWindowClass))

typedef struct _MainWindow MainWindow;
typedef struct _MainWindowClass MainWindowClass;

#define TYPE_OPERATION_LAUNCHER (operation_launcher_get_type ())
#define OPERATION_LAUNCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OPERATION_LAUNCHER, OperationLauncher))
#define OPERATION_LAUNCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_OPERATION_LAUNCHER, OperationLauncherClass))
#define IS_OPERATION_LAUNCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OPERATION_LAUNCHER))
#define IS_OPERATION_LAUNCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_OPERATION_LAUNCHER))
#define OPERATION_LAUNCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_OPERATION_LAUNCHER, OperationLauncherClass))

typedef struct _OperationLauncher OperationLauncher;
typedef struct _OperationLauncherClass OperationLauncherClass;
typedef struct _OperationLauncherPrivate OperationLauncherPrivate;

#define TYPE_OPERATION_WRAPPER (operation_wrapper_get_type ())
#define OPERATION_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OPERATION_WRAPPER, OperationWrapper))
#define OPERATION_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_OPERATION_WRAPPER, OperationWrapperClass))
#define IS_OPERATION_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OPERATION_WRAPPER))
#define IS_OPERATION_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_OPERATION_WRAPPER))
#define OPERATION_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_OPERATION_WRAPPER, OperationWrapperClass))

typedef struct _OperationWrapper OperationWrapper;
typedef struct _OperationWrapperClass OperationWrapperClass;

#define TYPE_ACTION_DIALOG (action_dialog_get_type ())
#define ACTION_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ACTION_DIALOG, ActionDialog))
#define ACTION_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ACTION_DIALOG, ActionDialogClass))
#define IS_ACTION_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ACTION_DIALOG))
#define IS_ACTION_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ACTION_DIALOG))
#define ACTION_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ACTION_DIALOG, ActionDialogClass))

typedef struct _ActionDialog ActionDialog;
typedef struct _ActionDialogClass ActionDialogClass;

#define TYPE_BASIC_NAVIGATION_PAGE (basic_navigation_page_get_type ())
#define BASIC_NAVIGATION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BASIC_NAVIGATION_PAGE, BasicNavigationPage))
#define BASIC_NAVIGATION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BASIC_NAVIGATION_PAGE, BasicNavigationPageClass))
#define IS_BASIC_NAVIGATION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BASIC_NAVIGATION_PAGE))
#define IS_BASIC_NAVIGATION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BASIC_NAVIGATION_PAGE))
#define BASIC_NAVIGATION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BASIC_NAVIGATION_PAGE, BasicNavigationPageClass))

typedef struct _BasicNavigationPage BasicNavigationPage;
typedef struct _BasicNavigationPageClass BasicNavigationPageClass;

#define TYPE_BROWSER (browser_get_type ())
#define BROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BROWSER, Browser))
#define BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BROWSER, BrowserClass))
#define IS_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BROWSER))
#define IS_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BROWSER))
#define BROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BROWSER, BrowserClass))

typedef struct _Browser Browser;
typedef struct _BrowserClass BrowserClass;

#define TYPE_BROWSER_PAGE (browser_page_get_type ())
#define BROWSER_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BROWSER_PAGE, BrowserPage))
#define BROWSER_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BROWSER_PAGE, BrowserPageClass))
#define IS_BROWSER_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BROWSER_PAGE))
#define IS_BROWSER_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BROWSER_PAGE))
#define BROWSER_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BROWSER_PAGE, BrowserPageClass))

typedef struct _BrowserPage BrowserPage;
typedef struct _BrowserPageClass BrowserPageClass;

#define TYPE_SWITCH_ROW (switch_row_get_type ())
#define SWITCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SWITCH_ROW, SwitchRow))
#define SWITCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SWITCH_ROW, SwitchRowClass))
#define IS_SWITCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SWITCH_ROW))
#define IS_SWITCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SWITCH_ROW))
#define SWITCH_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SWITCH_ROW, SwitchRowClass))

typedef struct _SwitchRow SwitchRow;
typedef struct _SwitchRowClass SwitchRowClass;

#define TYPE_CONFIG_AUTO_BACKUP_ROW (config_auto_backup_row_get_type ())
#define CONFIG_AUTO_BACKUP_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_AUTO_BACKUP_ROW, ConfigAutoBackupRow))
#define CONFIG_AUTO_BACKUP_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_AUTO_BACKUP_ROW, ConfigAutoBackupRowClass))
#define IS_CONFIG_AUTO_BACKUP_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_AUTO_BACKUP_ROW))
#define IS_CONFIG_AUTO_BACKUP_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_AUTO_BACKUP_ROW))
#define CONFIG_AUTO_BACKUP_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_AUTO_BACKUP_ROW, ConfigAutoBackupRowClass))

typedef struct _ConfigAutoBackupRow ConfigAutoBackupRow;
typedef struct _ConfigAutoBackupRowClass ConfigAutoBackupRowClass;

#define TYPE_CONFIG_COMBO_ROW (config_combo_row_get_type ())
#define CONFIG_COMBO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_COMBO_ROW, ConfigComboRow))
#define CONFIG_COMBO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_COMBO_ROW, ConfigComboRowClass))
#define IS_CONFIG_COMBO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_COMBO_ROW))
#define IS_CONFIG_COMBO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_COMBO_ROW))
#define CONFIG_COMBO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_COMBO_ROW, ConfigComboRowClass))

typedef struct _ConfigComboRow ConfigComboRow;
typedef struct _ConfigComboRowClass ConfigComboRowClass;

#define TYPE_CONFIG_DELETE (config_delete_get_type ())
#define CONFIG_DELETE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_DELETE, ConfigDelete))
#define CONFIG_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_DELETE, ConfigDeleteClass))
#define IS_CONFIG_DELETE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_DELETE))
#define IS_CONFIG_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_DELETE))
#define CONFIG_DELETE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_DELETE, ConfigDeleteClass))

typedef struct _ConfigDelete ConfigDelete;
typedef struct _ConfigDeleteClass ConfigDeleteClass;

#define TYPE_CONFIG_FOLDER_GROUP (config_folder_group_get_type ())
#define CONFIG_FOLDER_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_FOLDER_GROUP, ConfigFolderGroup))
#define CONFIG_FOLDER_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_FOLDER_GROUP, ConfigFolderGroupClass))
#define IS_CONFIG_FOLDER_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_FOLDER_GROUP))
#define IS_CONFIG_FOLDER_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_FOLDER_GROUP))
#define CONFIG_FOLDER_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_FOLDER_GROUP, ConfigFolderGroupClass))

typedef struct _ConfigFolderGroup ConfigFolderGroup;
typedef struct _ConfigFolderGroupClass ConfigFolderGroupClass;

#define TYPE_CONFIG_EXCLUDE_FOLDER_GROUP (config_exclude_folder_group_get_type ())
#define CONFIG_EXCLUDE_FOLDER_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_EXCLUDE_FOLDER_GROUP, ConfigExcludeFolderGroup))
#define CONFIG_EXCLUDE_FOLDER_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_EXCLUDE_FOLDER_GROUP, ConfigExcludeFolderGroupClass))
#define IS_CONFIG_EXCLUDE_FOLDER_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_EXCLUDE_FOLDER_GROUP))
#define IS_CONFIG_EXCLUDE_FOLDER_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_EXCLUDE_FOLDER_GROUP))
#define CONFIG_EXCLUDE_FOLDER_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_EXCLUDE_FOLDER_GROUP, ConfigExcludeFolderGroupClass))

typedef struct _ConfigExcludeFolderGroup ConfigExcludeFolderGroup;
typedef struct _ConfigExcludeFolderGroupClass ConfigExcludeFolderGroupClass;

#define TYPE_CONFIG_FOLDER_PAGE (config_folder_page_get_type ())
#define CONFIG_FOLDER_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_FOLDER_PAGE, ConfigFolderPage))
#define CONFIG_FOLDER_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_FOLDER_PAGE, ConfigFolderPageClass))
#define IS_CONFIG_FOLDER_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_FOLDER_PAGE))
#define IS_CONFIG_FOLDER_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_FOLDER_PAGE))
#define CONFIG_FOLDER_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_FOLDER_PAGE, ConfigFolderPageClass))

typedef struct _ConfigFolderPage ConfigFolderPage;
typedef struct _ConfigFolderPageClass ConfigFolderPageClass;

#define TYPE_CONFIG_INCLUDE_FOLDER_GROUP (config_include_folder_group_get_type ())
#define CONFIG_INCLUDE_FOLDER_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_INCLUDE_FOLDER_GROUP, ConfigIncludeFolderGroup))
#define CONFIG_INCLUDE_FOLDER_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_INCLUDE_FOLDER_GROUP, ConfigIncludeFolderGroupClass))
#define IS_CONFIG_INCLUDE_FOLDER_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_INCLUDE_FOLDER_GROUP))
#define IS_CONFIG_INCLUDE_FOLDER_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_INCLUDE_FOLDER_GROUP))
#define CONFIG_INCLUDE_FOLDER_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_INCLUDE_FOLDER_GROUP, ConfigIncludeFolderGroupClass))

typedef struct _ConfigIncludeFolderGroup ConfigIncludeFolderGroup;
typedef struct _ConfigIncludeFolderGroupClass ConfigIncludeFolderGroupClass;

#define TYPE_DYNAMIC_PREFERENCES_GROUP (dynamic_preferences_group_get_type ())
#define DYNAMIC_PREFERENCES_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DYNAMIC_PREFERENCES_GROUP, DynamicPreferencesGroup))
#define DYNAMIC_PREFERENCES_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DYNAMIC_PREFERENCES_GROUP, DynamicPreferencesGroupClass))
#define IS_DYNAMIC_PREFERENCES_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DYNAMIC_PREFERENCES_GROUP))
#define IS_DYNAMIC_PREFERENCES_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DYNAMIC_PREFERENCES_GROUP))
#define DYNAMIC_PREFERENCES_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DYNAMIC_PREFERENCES_GROUP, DynamicPreferencesGroupClass))

typedef struct _DynamicPreferencesGroup DynamicPreferencesGroup;
typedef struct _DynamicPreferencesGroupClass DynamicPreferencesGroupClass;

#define TYPE_CONFIG_LOCATION_GROUP (config_location_group_get_type ())
#define CONFIG_LOCATION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_LOCATION_GROUP, ConfigLocationGroup))
#define CONFIG_LOCATION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_LOCATION_GROUP, ConfigLocationGroupClass))
#define IS_CONFIG_LOCATION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_LOCATION_GROUP))
#define IS_CONFIG_LOCATION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_LOCATION_GROUP))
#define CONFIG_LOCATION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_LOCATION_GROUP, ConfigLocationGroupClass))

typedef struct _ConfigLocationGroup ConfigLocationGroup;
typedef struct _ConfigLocationGroupClass ConfigLocationGroupClass;

#define TYPE_CONFIG_LOCATION_ROW (config_location_row_get_type ())
#define CONFIG_LOCATION_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_LOCATION_ROW, ConfigLocationRow))
#define CONFIG_LOCATION_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_LOCATION_ROW, ConfigLocationRowClass))
#define IS_CONFIG_LOCATION_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_LOCATION_ROW))
#define IS_CONFIG_LOCATION_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_LOCATION_ROW))
#define CONFIG_LOCATION_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_LOCATION_ROW, ConfigLocationRowClass))

typedef struct _ConfigLocationRow ConfigLocationRow;
typedef struct _ConfigLocationRowClass ConfigLocationRowClass;

#define CONFIG_LOCATION_ROW_TYPE_ITEM (config_location_row_item_get_type ())
#define CONFIG_LOCATION_ROW_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_LOCATION_ROW_TYPE_ITEM, ConfigLocationRowItem))
#define CONFIG_LOCATION_ROW_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_LOCATION_ROW_TYPE_ITEM, ConfigLocationRowItemClass))
#define CONFIG_LOCATION_ROW_IS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_LOCATION_ROW_TYPE_ITEM))
#define CONFIG_LOCATION_ROW_IS_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_LOCATION_ROW_TYPE_ITEM))
#define CONFIG_LOCATION_ROW_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_LOCATION_ROW_TYPE_ITEM, ConfigLocationRowItemClass))

typedef struct _ConfigLocationRowItem ConfigLocationRowItem;
typedef struct _ConfigLocationRowItemClass ConfigLocationRowItemClass;

#define TYPE_CONFIG_PERIOD_ROW (config_period_row_get_type ())
#define CONFIG_PERIOD_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_PERIOD_ROW, ConfigPeriodRow))
#define CONFIG_PERIOD_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_PERIOD_ROW, ConfigPeriodRowClass))
#define IS_CONFIG_PERIOD_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_PERIOD_ROW))
#define IS_CONFIG_PERIOD_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_PERIOD_ROW))
#define CONFIG_PERIOD_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_PERIOD_ROW, ConfigPeriodRowClass))

typedef struct _ConfigPeriodRow ConfigPeriodRow;
typedef struct _ConfigPeriodRowClass ConfigPeriodRowClass;

#define TYPE_CONFIG_RESTIC_ROW (config_restic_row_get_type ())
#define CONFIG_RESTIC_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_RESTIC_ROW, ConfigResticRow))
#define CONFIG_RESTIC_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_RESTIC_ROW, ConfigResticRowClass))
#define IS_CONFIG_RESTIC_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_RESTIC_ROW))
#define IS_CONFIG_RESTIC_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_RESTIC_ROW))
#define CONFIG_RESTIC_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_RESTIC_ROW, ConfigResticRowClass))

typedef struct _ConfigResticRow ConfigResticRow;
typedef struct _ConfigResticRowClass ConfigResticRowClass;

#define TYPE_FOLDER_CHOOSER_BUTTON (folder_chooser_button_get_type ())
#define FOLDER_CHOOSER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FOLDER_CHOOSER_BUTTON, FolderChooserButton))
#define FOLDER_CHOOSER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FOLDER_CHOOSER_BUTTON, FolderChooserButtonClass))
#define IS_FOLDER_CHOOSER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FOLDER_CHOOSER_BUTTON))
#define IS_FOLDER_CHOOSER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FOLDER_CHOOSER_BUTTON))
#define FOLDER_CHOOSER_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FOLDER_CHOOSER_BUTTON, FolderChooserButtonClass))

typedef struct _FolderChooserButton FolderChooserButton;
typedef struct _FolderChooserButtonClass FolderChooserButtonClass;

#define TYPE_HELP_BUTTON (help_button_get_type ())
#define HELP_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HELP_BUTTON, HelpButton))
#define HELP_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HELP_BUTTON, HelpButtonClass))
#define IS_HELP_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HELP_BUTTON))
#define IS_HELP_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HELP_BUTTON))
#define HELP_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HELP_BUTTON, HelpButtonClass))

typedef struct _HelpButton HelpButton;
typedef struct _HelpButtonClass HelpButtonClass;

#define TYPE_OPERATION_BANNER (operation_banner_get_type ())
#define OPERATION_BANNER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OPERATION_BANNER, OperationBanner))
#define OPERATION_BANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_OPERATION_BANNER, OperationBannerClass))
#define IS_OPERATION_BANNER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OPERATION_BANNER))
#define IS_OPERATION_BANNER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_OPERATION_BANNER))
#define OPERATION_BANNER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_OPERATION_BANNER, OperationBannerClass))

typedef struct _OperationBanner OperationBanner;
typedef struct _OperationBannerClass OperationBannerClass;

#define TYPE_OPERATION_STATUS_PAGE (operation_status_page_get_type ())
#define OPERATION_STATUS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OPERATION_STATUS_PAGE, OperationStatusPage))
#define OPERATION_STATUS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_OPERATION_STATUS_PAGE, OperationStatusPageClass))
#define IS_OPERATION_STATUS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OPERATION_STATUS_PAGE))
#define IS_OPERATION_STATUS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_OPERATION_STATUS_PAGE))
#define OPERATION_STATUS_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_OPERATION_STATUS_PAGE, OperationStatusPageClass))

typedef struct _OperationStatusPage OperationStatusPage;
typedef struct _OperationStatusPageClass OperationStatusPageClass;

#define TYPE_OVERVIEW_PAGE (overview_page_get_type ())
#define OVERVIEW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OVERVIEW_PAGE, OverviewPage))
#define OVERVIEW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_OVERVIEW_PAGE, OverviewPageClass))
#define IS_OVERVIEW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OVERVIEW_PAGE))
#define IS_OVERVIEW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_OVERVIEW_PAGE))
#define OVERVIEW_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_OVERVIEW_PAGE, OverviewPageClass))

typedef struct _OverviewPage OverviewPage;
typedef struct _OverviewPageClass OverviewPageClass;

#define TYPE_PRIMARY_MENU_BUTTON (primary_menu_button_get_type ())
#define PRIMARY_MENU_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PRIMARY_MENU_BUTTON, PrimaryMenuButton))
#define PRIMARY_MENU_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PRIMARY_MENU_BUTTON, PrimaryMenuButtonClass))
#define IS_PRIMARY_MENU_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PRIMARY_MENU_BUTTON))
#define IS_PRIMARY_MENU_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PRIMARY_MENU_BUTTON))
#define PRIMARY_MENU_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PRIMARY_MENU_BUTTON, PrimaryMenuButtonClass))

typedef struct _PrimaryMenuButton PrimaryMenuButton;
typedef struct _PrimaryMenuButtonClass PrimaryMenuButtonClass;

#define TYPE_RECENT_BACKUP_ROW (recent_backup_row_get_type ())
#define RECENT_BACKUP_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RECENT_BACKUP_ROW, RecentBackupRow))
#define RECENT_BACKUP_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RECENT_BACKUP_ROW, RecentBackupRowClass))
#define IS_RECENT_BACKUP_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RECENT_BACKUP_ROW))
#define IS_RECENT_BACKUP_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RECENT_BACKUP_ROW))
#define RECENT_BACKUP_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RECENT_BACKUP_ROW, RecentBackupRowClass))

typedef struct _RecentBackupRow RecentBackupRow;
typedef struct _RecentBackupRowClass RecentBackupRowClass;

#define TYPE_RESTORE_TOOLBAR_VIEW (restore_toolbar_view_get_type ())
#define RESTORE_TOOLBAR_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RESTORE_TOOLBAR_VIEW, RestoreToolbarView))
#define RESTORE_TOOLBAR_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RESTORE_TOOLBAR_VIEW, RestoreToolbarViewClass))
#define IS_RESTORE_TOOLBAR_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RESTORE_TOOLBAR_VIEW))
#define IS_RESTORE_TOOLBAR_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RESTORE_TOOLBAR_VIEW))
#define RESTORE_TOOLBAR_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RESTORE_TOOLBAR_VIEW, RestoreToolbarViewClass))

typedef struct _RestoreToolbarView RestoreToolbarView;
typedef struct _RestoreToolbarViewClass RestoreToolbarViewClass;

#define TYPE_RESTORE_TARGET_WARNING_BUTTON (restore_target_warning_button_get_type ())
#define RESTORE_TARGET_WARNING_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RESTORE_TARGET_WARNING_BUTTON, RestoreTargetWarningButton))
#define RESTORE_TARGET_WARNING_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RESTORE_TARGET_WARNING_BUTTON, RestoreTargetWarningButtonClass))
#define IS_RESTORE_TARGET_WARNING_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RESTORE_TARGET_WARNING_BUTTON))
#define IS_RESTORE_TARGET_WARNING_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RESTORE_TARGET_WARNING_BUTTON))
#define RESTORE_TARGET_WARNING_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RESTORE_TARGET_WARNING_BUTTON, RestoreTargetWarningButtonClass))

typedef struct _RestoreTargetWarningButton RestoreTargetWarningButton;
typedef struct _RestoreTargetWarningButtonClass RestoreTargetWarningButtonClass;

#define TYPE_SAVE_PASSWORD_ROW (save_password_row_get_type ())
#define SAVE_PASSWORD_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVE_PASSWORD_ROW, SavePasswordRow))
#define SAVE_PASSWORD_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVE_PASSWORD_ROW, SavePasswordRowClass))
#define IS_SAVE_PASSWORD_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVE_PASSWORD_ROW))
#define IS_SAVE_PASSWORD_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVE_PASSWORD_ROW))
#define SAVE_PASSWORD_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVE_PASSWORD_ROW, SavePasswordRowClass))

typedef struct _SavePasswordRow SavePasswordRow;
typedef struct _SavePasswordRowClass SavePasswordRowClass;

#define TYPE_SERVER_ADDRESS_HELP (server_address_help_get_type ())
#define SERVER_ADDRESS_HELP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SERVER_ADDRESS_HELP, ServerAddressHelp))
#define SERVER_ADDRESS_HELP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SERVER_ADDRESS_HELP, ServerAddressHelpClass))
#define IS_SERVER_ADDRESS_HELP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SERVER_ADDRESS_HELP))
#define IS_SERVER_ADDRESS_HELP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SERVER_ADDRESS_HELP))
#define SERVER_ADDRESS_HELP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SERVER_ADDRESS_HELP, ServerAddressHelpClass))

typedef struct _ServerAddressHelp ServerAddressHelp;
typedef struct _ServerAddressHelpClass ServerAddressHelpClass;

#define TYPE_SNAPSHOTS_PAGE (snapshots_page_get_type ())
#define SNAPSHOTS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SNAPSHOTS_PAGE, SnapshotsPage))
#define SNAPSHOTS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SNAPSHOTS_PAGE, SnapshotsPageClass))
#define IS_SNAPSHOTS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SNAPSHOTS_PAGE))
#define IS_SNAPSHOTS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SNAPSHOTS_PAGE))
#define SNAPSHOTS_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SNAPSHOTS_PAGE, SnapshotsPageClass))

typedef struct _SnapshotsPage SnapshotsPage;
typedef struct _SnapshotsPageClass SnapshotsPageClass;

#define TYPE_TOOLTIP_BOX (tooltip_box_get_type ())
#define TOOLTIP_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOOLTIP_BOX, TooltipBox))
#define TOOLTIP_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOOLTIP_BOX, TooltipBoxClass))
#define IS_TOOLTIP_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOOLTIP_BOX))
#define IS_TOOLTIP_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOOLTIP_BOX))
#define TOOLTIP_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOOLTIP_BOX, TooltipBoxClass))

typedef struct _TooltipBox TooltipBox;
typedef struct _TooltipBoxClass TooltipBoxClass;

#define TYPE_WELCOME_PAGE (welcome_page_get_type ())
#define WELCOME_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WELCOME_PAGE, WelcomePage))
#define WELCOME_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WELCOME_PAGE, WelcomePageClass))
#define IS_WELCOME_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WELCOME_PAGE))
#define IS_WELCOME_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WELCOME_PAGE))
#define WELCOME_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WELCOME_PAGE, WelcomePageClass))

typedef struct _WelcomePage WelcomePage;
typedef struct _WelcomePageClass WelcomePageClass;

struct _DejaDupApp {
	AdwApplication parent_instance;
	DejaDupAppPrivate * priv;
};

struct _DejaDupAppClass {
	AdwApplicationClass parent_class;
};

struct _DejaDupAppPrivate {
	GWeakRef main_window;
	GSimpleAction* quit_action;
};

struct _OperationLauncher {
	GObject parent_instance;
	OperationLauncherPrivate * priv;
	DejaDupOperation* operation;
	OperationWrapper* wrapper;
};

struct _OperationLauncherClass {
	GObjectClass parent_class;
};

static gint DejaDupApp_private_offset;
static gpointer deja_dup_app_parent_class = NULL;
static DejaDupApp* deja_dup_app_instance;
static DejaDupApp* deja_dup_app_instance = NULL;

VALA_EXTERN GType deja_dup_app_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DejaDupApp, g_object_unref)
VALA_EXTERN void deja_dup_app_backup (DejaDupApp* self);
static void _deja_dup_app_backup_gsimple_action_activate_callback (GSimpleAction* action,
                                                            GVariant* parameter,
                                                            gpointer self);
VALA_EXTERN void deja_dup_app_backup_auto (DejaDupApp* self);
static void _deja_dup_app_backup_auto_gsimple_action_activate_callback (GSimpleAction* action,
                                                                 GVariant* parameter,
                                                                 gpointer self);
VALA_EXTERN void deja_dup_app_backup_auto_stop (DejaDupApp* self);
static void _deja_dup_app_backup_auto_stop_gsimple_action_activate_callback (GSimpleAction* action,
                                                                      GVariant* parameter,
                                                                      gpointer self);
static void deja_dup_app_prompt_ok (DejaDupApp* self);
static void _deja_dup_app_prompt_ok_gsimple_action_activate_callback (GSimpleAction* action,
                                                               GVariant* parameter,
                                                               gpointer self);
static void deja_dup_app_prompt_cancel (DejaDupApp* self);
static void _deja_dup_app_prompt_cancel_gsimple_action_activate_callback (GSimpleAction* action,
                                                                   GVariant* parameter,
                                                                   gpointer self);
VALA_EXTERN void deja_dup_app_delay (DejaDupApp* self,
                         GSimpleAction* action,
                         GVariant* parameter);
static void _deja_dup_app_delay_gsimple_action_activate_callback (GSimpleAction* action,
                                                           GVariant* parameter,
                                                           gpointer self);
static void deja_dup_app_help (DejaDupApp* self);
static void _deja_dup_app_help_gsimple_action_activate_callback (GSimpleAction* action,
                                                          GVariant* parameter,
                                                          gpointer self);
static void deja_dup_app_about (DejaDupApp* self);
static void _deja_dup_app_about_gsimple_action_activate_callback (GSimpleAction* action,
                                                           GVariant* parameter,
                                                           gpointer self);
static void deja_dup_app_close_window (DejaDupApp* self);
static void _deja_dup_app_close_window_gsimple_action_activate_callback (GSimpleAction* action,
                                                                  GVariant* parameter,
                                                                  gpointer self);
static void deja_dup_app_show (DejaDupApp* self);
static void _deja_dup_app_show_gsimple_action_activate_callback (GSimpleAction* action,
                                                          GVariant* parameter,
                                                          gpointer self);
VALA_EXTERN DejaDupApp* deja_dup_app_get_instance (void);
static DejaDupApp* deja_dup_app_new (void);
static DejaDupApp* deja_dup_app_construct (GType object_type);
static gint deja_dup_app_real_handle_local_options (GApplication* base,
                                             GVariantDict* options);
static gint deja_dup_app_real_command_line (GApplication* base,
                                     GApplicationCommandLine* command_line);
static void _vala_array_add3 (GFile** * array,
                       gint* length,
                       gint* size,
                       GFile* value);
static void deja_dup_app_backup_full (DejaDupApp* self,
                               gboolean automatic);
VALA_EXTERN void notifications_automatic_backup_delayed (const gchar* reason);
VALA_EXTERN void notifications_prompt (void);
static void deja_dup_app_ensure_app_window (DejaDupApp* self);
VALA_EXTERN GType main_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MainWindow, g_object_unref)
VALA_EXTERN MainWindow* deja_dup_app_get_app_window (DejaDupApp* self);
VALA_EXTERN MainWindow* main_window_new (void);
VALA_EXTERN MainWindow* main_window_construct (GType object_type);
static void deja_dup_app_real_activate (GApplication* base);
static void deja_dup_app_real_open (GApplication* base,
                             GFile** files,
                             gint files_length1,
                             const gchar* hint);
VALA_EXTERN GType operation_launcher_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OperationLauncher, g_object_unref)
VALA_EXTERN OperationLauncher* operation_launcher_get_instance (void);
VALA_EXTERN GType operation_wrapper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OperationWrapper, g_object_unref)
VALA_EXTERN gboolean deja_dup_app_is_focused (DejaDupApp* self);
static gboolean deja_dup_app_exit_cleanly (DejaDupApp* self);
static gboolean deja_dup_app_has_dark_gtk_theme (DejaDupApp* self);
static void deja_dup_app_real_startup (GApplication* base);
VALA_EXTERN void deja_dup_gui_initialize (void);
static gboolean _deja_dup_app_exit_cleanly_gsource_func (gpointer self);
static void deja_dup_app_real_shutdown (GApplication* base);
VALA_EXTERN void notifications_withdraw (void);
VALA_EXTERN gchar* debug_info_get_debug_info (void);
VALA_EXTERN void operation_launcher_start_backup (OperationLauncher* self,
                                      gboolean automatic);
static void deja_dup_app_finalize (GObject * obj);
static GType deja_dup_app_get_type_once (void);
static gint _vala_main (gchar** args,
                 gint args_length1);
VALA_EXTERN GType action_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ActionDialog, g_object_unref)
VALA_EXTERN GType basic_navigation_page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BasicNavigationPage, g_object_unref)
VALA_EXTERN GType browser_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Browser, g_object_unref)
VALA_EXTERN GType browser_page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BrowserPage, g_object_unref)
VALA_EXTERN GType switch_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwitchRow, g_object_unref)
VALA_EXTERN GType config_auto_backup_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigAutoBackupRow, g_object_unref)
VALA_EXTERN GType config_combo_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigComboRow, g_object_unref)
VALA_EXTERN GType config_delete_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigDelete, g_object_unref)
VALA_EXTERN GType config_folder_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigFolderGroup, g_object_unref)
VALA_EXTERN GType config_exclude_folder_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigExcludeFolderGroup, g_object_unref)
VALA_EXTERN GType config_folder_page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigFolderPage, g_object_unref)
VALA_EXTERN GType config_include_folder_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigIncludeFolderGroup, g_object_unref)
VALA_EXTERN GType dynamic_preferences_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DynamicPreferencesGroup, g_object_unref)
VALA_EXTERN GType config_location_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigLocationGroup, g_object_unref)
VALA_EXTERN GType config_location_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigLocationRow, g_object_unref)
VALA_EXTERN GType config_location_row_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigLocationRowItem, g_object_unref)
VALA_EXTERN GType config_period_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigPeriodRow, g_object_unref)
VALA_EXTERN GType config_restic_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConfigResticRow, g_object_unref)
VALA_EXTERN GType folder_chooser_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FolderChooserButton, g_object_unref)
VALA_EXTERN GType help_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (HelpButton, g_object_unref)
VALA_EXTERN GType operation_banner_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OperationBanner, g_object_unref)
VALA_EXTERN GType operation_status_page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OperationStatusPage, g_object_unref)
VALA_EXTERN GType overview_page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OverviewPage, g_object_unref)
VALA_EXTERN GType primary_menu_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PrimaryMenuButton, g_object_unref)
VALA_EXTERN GType recent_backup_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RecentBackupRow, g_object_unref)
VALA_EXTERN GType restore_toolbar_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RestoreToolbarView, g_object_unref)
VALA_EXTERN GType restore_target_warning_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RestoreTargetWarningButton, g_object_unref)
VALA_EXTERN GType save_password_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SavePasswordRow, g_object_unref)
VALA_EXTERN GType server_address_help_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ServerAddressHelp, g_object_unref)
VALA_EXTERN GType snapshots_page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SnapshotsPage, g_object_unref)
VALA_EXTERN GType tooltip_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TooltipBox, g_object_unref)
VALA_EXTERN GType welcome_page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (WelcomePage, g_object_unref)
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);

static const GOptionEntry DEJA_DUP_APP_OPTIONS[7] = {{"version", (gchar) 0, (gint) 0, G_OPTION_ARG_NONE, NULL, N_ ("Show version"), NULL}, {"backup", (gchar) 0, (gint) 0, G_OPTION_ARG_NONE, NULL, N_ ("Immediately start a backup"), NULL}, {"auto", (gchar) 0, (gint) G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, NULL, NULL, NULL}, {"delay", (gchar) 0, (gint) G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_STRING, NULL, NULL, NULL}, {"prompt", (gchar) 0, (gint) G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, NULL, NULL, NULL}, {"", (gchar) 0, (gint) 0, G_OPTION_ARG_FILENAME_ARRAY, NULL, NULL, NULL}, {NULL}};
static const GActionEntry DEJA_DUP_APP_ACTIONS[10] = {{"backup", _deja_dup_app_backup_gsimple_action_activate_callback}, {"backup-auto", _deja_dup_app_backup_auto_gsimple_action_activate_callback}, {"backup-auto-stop", _deja_dup_app_backup_auto_stop_gsimple_action_activate_callback}, {"prompt-ok", _deja_dup_app_prompt_ok_gsimple_action_activate_callback}, {"prompt-cancel", _deja_dup_app_prompt_cancel_gsimple_action_activate_callback}, {"delay", _deja_dup_app_delay_gsimple_action_activate_callback, "s"}, {"help", _deja_dup_app_help_gsimple_action_activate_callback}, {"about", _deja_dup_app_about_gsimple_action_activate_callback}, {"close", _deja_dup_app_close_window_gsimple_action_activate_callback}, {"show", _deja_dup_app_show_gsimple_action_activate_callback}};

static inline gpointer
deja_dup_app_get_instance_private (DejaDupApp* self)
{
	return G_STRUCT_MEMBER_P (self, DejaDupApp_private_offset);
}

static void
_deja_dup_app_backup_gsimple_action_activate_callback (GSimpleAction* action,
                                                       GVariant* parameter,
                                                       gpointer self)
{
	deja_dup_app_backup ((DejaDupApp*) self);
}

static void
_deja_dup_app_backup_auto_gsimple_action_activate_callback (GSimpleAction* action,
                                                            GVariant* parameter,
                                                            gpointer self)
{
	deja_dup_app_backup_auto ((DejaDupApp*) self);
}

static void
_deja_dup_app_backup_auto_stop_gsimple_action_activate_callback (GSimpleAction* action,
                                                                 GVariant* parameter,
                                                                 gpointer self)
{
	deja_dup_app_backup_auto_stop ((DejaDupApp*) self);
}

static void
_deja_dup_app_prompt_ok_gsimple_action_activate_callback (GSimpleAction* action,
                                                          GVariant* parameter,
                                                          gpointer self)
{
	deja_dup_app_prompt_ok ((DejaDupApp*) self);
}

static void
_deja_dup_app_prompt_cancel_gsimple_action_activate_callback (GSimpleAction* action,
                                                              GVariant* parameter,
                                                              gpointer self)
{
	deja_dup_app_prompt_cancel ((DejaDupApp*) self);
}

static void
_deja_dup_app_delay_gsimple_action_activate_callback (GSimpleAction* action,
                                                      GVariant* parameter,
                                                      gpointer self)
{
	deja_dup_app_delay ((DejaDupApp*) self, action, parameter);
}

static void
_deja_dup_app_help_gsimple_action_activate_callback (GSimpleAction* action,
                                                     GVariant* parameter,
                                                     gpointer self)
{
	deja_dup_app_help ((DejaDupApp*) self);
}

static void
_deja_dup_app_about_gsimple_action_activate_callback (GSimpleAction* action,
                                                      GVariant* parameter,
                                                      gpointer self)
{
	deja_dup_app_about ((DejaDupApp*) self);
}

static void
_deja_dup_app_close_window_gsimple_action_activate_callback (GSimpleAction* action,
                                                             GVariant* parameter,
                                                             gpointer self)
{
	deja_dup_app_close_window ((DejaDupApp*) self);
}

static void
_deja_dup_app_show_gsimple_action_activate_callback (GSimpleAction* action,
                                                     GVariant* parameter,
                                                     gpointer self)
{
	deja_dup_app_show ((DejaDupApp*) self);
}

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

DejaDupApp*
deja_dup_app_get_instance (void)
{
	DejaDupApp* _tmp0_;
	DejaDupApp* _tmp2_;
	DejaDupApp* _tmp3_;
	DejaDupApp* result;
	_tmp0_ = deja_dup_app_instance;
	if (_tmp0_ == NULL) {
		DejaDupApp* _tmp1_;
		_tmp1_ = deja_dup_app_new ();
		_g_object_unref0 (deja_dup_app_instance);
		deja_dup_app_instance = _tmp1_;
	}
	_tmp2_ = deja_dup_app_instance;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	result = _tmp3_;
	return result;
}

static DejaDupApp*
deja_dup_app_construct (GType object_type)
{
	DejaDupApp * self = NULL;
	self = (DejaDupApp*) g_object_new (object_type, "application-id", APPLICATION_ID, "flags", G_APPLICATION_HANDLES_COMMAND_LINE | G_APPLICATION_HANDLES_OPEN, NULL);
	g_application_add_main_option_entries ((GApplication*) self, DEJA_DUP_APP_OPTIONS);
	return self;
}

static DejaDupApp*
deja_dup_app_new (void)
{
	return deja_dup_app_construct (TYPE_DEJA_DUP_APP);
}

static gint
deja_dup_app_real_handle_local_options (GApplication* base,
                                        GVariantDict* options)
{
	DejaDupApp * self;
	gint result;
	self = (DejaDupApp*) base;
	g_return_val_if_fail (options != NULL, 0);
	if (g_variant_dict_contains (options, "version")) {
		g_print ("%s %s\n", "deja-dup", VERSION);
		result = 0;
		return result;
	}
	result = -1;
	return result;
}

static gpointer
_g_variant_dict_ref0 (gpointer self)
{
	return self ? g_variant_dict_ref (self) : NULL;
}

static void
_vala_array_add3 (GFile** * array,
                  gint* length,
                  gint* size,
                  GFile* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (GFile*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static gint
deja_dup_app_real_command_line (GApplication* base,
                                GApplicationCommandLine* command_line)
{
	DejaDupApp * self;
	GVariantDict* options = NULL;
	GVariantDict* _tmp0_;
	GVariantDict* _tmp1_;
	GFile** files = NULL;
	GFile** _tmp2_;
	gint files_length1;
	gint _files_size_;
	GVariantDict* _tmp3_;
	GVariantDict* _tmp12_;
	gint result;
	self = (DejaDupApp*) base;
	g_return_val_if_fail (command_line != NULL, 0);
	_tmp0_ = g_application_command_line_get_options_dict (command_line);
	_tmp1_ = _g_variant_dict_ref0 (_tmp0_);
	options = _tmp1_;
	_tmp2_ = g_new0 (GFile*, 0 + 1);
	files = _tmp2_;
	files_length1 = 0;
	_files_size_ = files_length1;
	_tmp3_ = options;
	if (g_variant_dict_contains (_tmp3_, "")) {
		GVariant* variant = NULL;
		GVariantDict* _tmp4_;
		const GVariantType* _tmp5_;
		GVariant* _tmp6_;
		GVariant* _tmp7_;
		gsize _tmp8_ = 0;
		const gchar** _tmp9_;
		_tmp4_ = options;
		_tmp5_ = G_VARIANT_TYPE_BYTESTRING_ARRAY;
		_tmp6_ = g_variant_dict_lookup_value (_tmp4_, "", _tmp5_);
		variant = _tmp6_;
		_tmp7_ = variant;
		_tmp9_ = g_variant_get_bytestring_array (_tmp7_, &_tmp8_);
		{
			const gchar** filename_collection = NULL;
			gint filename_collection_length1 = 0;
			gint _filename_collection_size_ = 0;
			gint filename_it = 0;
			filename_collection = _tmp9_;
			filename_collection_length1 = _tmp8_;
			for (filename_it = 0; filename_it < filename_collection_length1; filename_it = filename_it + 1) {
				const gchar* filename = NULL;
				filename = filename_collection[filename_it];
				{
					const gchar* _tmp10_;
					GFile* _tmp11_;
					_tmp10_ = filename;
					_tmp11_ = g_application_command_line_create_file_for_arg (command_line, _tmp10_);
					_vala_array_add3 (&files, &files_length1, &_files_size_, _tmp11_);
				}
			}
			filename_collection = (g_free (filename_collection), NULL);
		}
		_g_variant_unref0 (variant);
	}
	_tmp12_ = options;
	if (g_variant_dict_contains (_tmp12_, "backup")) {
		GVariantDict* _tmp13_;
		_tmp13_ = options;
		deja_dup_app_backup_full (self, g_variant_dict_contains (_tmp13_, "auto"));
	} else {
		GVariantDict* _tmp14_;
		_tmp14_ = options;
		if (g_variant_dict_contains (_tmp14_, "delay")) {
			gchar* reason = NULL;
			GVariantDict* _tmp15_;
			const gchar* _tmp16_;
			reason = NULL;
			_tmp15_ = options;
			g_variant_dict_lookup (_tmp15_, "delay", "s", &reason, NULL);
			_tmp16_ = reason;
			notifications_automatic_backup_delayed (_tmp16_);
			_g_free0 (reason);
		} else {
			GVariantDict* _tmp17_;
			_tmp17_ = options;
			if (g_variant_dict_contains (_tmp17_, "prompt")) {
				notifications_prompt ();
			} else {
				GFile** _tmp18_;
				gint _tmp18__length1;
				_tmp18_ = files;
				_tmp18__length1 = files_length1;
				if (_tmp18__length1 > 0) {
					GFile** _tmp19_;
					gint _tmp19__length1;
					_tmp19_ = files;
					_tmp19__length1 = files_length1;
					g_application_open ((GApplication*) self, _tmp19_, (gint) _tmp19__length1, "");
				} else {
					g_application_activate ((GApplication*) self);
				}
			}
		}
	}
	result = 0;
	files = (_vala_array_free (files, files_length1, (GDestroyNotify) g_object_unref), NULL);
	_g_variant_dict_unref0 (options);
	return result;
}

static void
deja_dup_app_ensure_app_window (DejaDupApp* self)
{
	MainWindow* _tmp0_;
	MainWindow* _tmp1_;
	gboolean _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = deja_dup_app_get_app_window (self);
	_tmp1_ = _tmp0_;
	_tmp2_ = _tmp1_ == NULL;
	_g_object_unref0 (_tmp1_);
	if (_tmp2_) {
		MainWindow* _tmp3_;
		MainWindow* _tmp4_;
		MainWindow* _tmp5_;
		MainWindow* _tmp6_;
		_tmp3_ = main_window_new ();
		g_object_ref_sink (_tmp3_);
		_tmp4_ = _tmp3_;
		g_weak_ref_set (&self->priv->main_window, (GObject*) _tmp4_);
		_g_object_unref0 (_tmp4_);
		_tmp5_ = deja_dup_app_get_app_window (self);
		_tmp6_ = _tmp5_;
		gtk_window_set_application ((GtkWindow*) _tmp6_, (GtkApplication*) self);
		_g_object_unref0 (_tmp6_);
	}
}

static void
deja_dup_app_real_activate (GApplication* base)
{
	DejaDupApp * self;
	MainWindow* _tmp0_;
	MainWindow* _tmp1_;
	self = (DejaDupApp*) base;
	G_APPLICATION_CLASS (deja_dup_app_parent_class)->activate ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, adw_application_get_type (), AdwApplication));
	deja_dup_app_ensure_app_window (self);
	_tmp0_ = deja_dup_app_get_app_window (self);
	_tmp1_ = _tmp0_;
	gtk_window_present ((GtkWindow*) _tmp1_);
	_g_object_unref0 (_tmp1_);
}

static void
deja_dup_app_real_open (GApplication* base,
                        GFile** files,
                        gint files_length1,
                        const gchar* hint)
{
	DejaDupApp * self;
	DejaDupOperation* operation = NULL;
	OperationLauncher* _tmp0_;
	OperationLauncher* _tmp1_;
	DejaDupOperation* _tmp2_;
	DejaDupOperation* _tmp3_;
	DejaDupOperation* _tmp4_;
	gboolean _tmp5_ = FALSE;
	self = (DejaDupApp*) base;
	g_return_if_fail (hint != NULL);
	_tmp0_ = operation_launcher_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = _tmp1_->operation;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp1_);
	operation = _tmp4_;
	if (files_length1 == 1) {
		DejaDupOperation* _tmp6_;
		_tmp6_ = operation;
		_tmp5_ = _tmp6_ != NULL;
	} else {
		_tmp5_ = FALSE;
	}
	if (_tmp5_) {
		gchar* provided_uri = NULL;
		GFile* _tmp7_;
		gchar* _tmp8_;
		DejaDupOperation* _tmp9_;
		const gchar* _tmp10_;
		_tmp7_ = files[0];
		_tmp8_ = g_file_get_uri (_tmp7_);
		provided_uri = _tmp8_;
		_tmp9_ = operation;
		_tmp10_ = provided_uri;
		if (deja_dup_operation_set_oauth_token (_tmp9_, _tmp10_)) {
			g_application_activate ((GApplication*) self);
			_g_free0 (provided_uri);
			_g_object_unref0 (operation);
			return;
		}
		_g_free0 (provided_uri);
	}
	{
		GFile** file_collection = NULL;
		gint file_collection_length1 = 0;
		gint _file_collection_size_ = 0;
		gint file_it = 0;
		file_collection = files;
		file_collection_length1 = files_length1;
		for (file_it = 0; file_it < file_collection_length1; file_it = file_it + 1) {
			GFile* _tmp11_;
			GFile* file = NULL;
			_tmp11_ = _g_object_ref0 (file_collection[file_it]);
			file = _tmp11_;
			{
				GFile* _tmp12_;
				gchar* _tmp13_;
				gchar* _tmp14_;
				_tmp12_ = file;
				_tmp13_ = g_file_get_parse_name (_tmp12_);
				_tmp14_ = _tmp13_;
				g_warning ("main.vala:138: Ignoring unexpected file: %s", _tmp14_);
				_g_free0 (_tmp14_);
				_g_object_unref0 (file);
			}
		}
	}
	_g_object_unref0 (operation);
}

MainWindow*
deja_dup_app_get_app_window (DejaDupApp* self)
{
	GObject* _tmp0_;
	MainWindow* _tmp1_;
	MainWindow* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_weak_ref_get (&self->priv->main_window);
	_tmp1_ = IS_MAIN_WINDOW (_tmp0_) ? ((MainWindow*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	result = _tmp1_;
	return result;
}

gboolean
deja_dup_app_is_focused (DejaDupApp* self)
{
	MainWindow* window = NULL;
	MainWindow* _tmp0_;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	MainWindow* _tmp3_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = deja_dup_app_get_app_window (self);
	window = _tmp0_;
	_tmp3_ = window;
	if (_tmp3_ != NULL) {
		MainWindow* _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
		_tmp4_ = window;
		g_object_get ((GtkWindow*) _tmp4_, "is-active", &_tmp5_, NULL);
		_tmp6_ = _tmp5_;
		_tmp2_ = _tmp6_;
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		MainWindow* _tmp7_;
		gboolean _tmp8_;
		gboolean _tmp9_;
		_tmp7_ = window;
		_tmp8_ = gtk_widget_get_visible ((GtkWidget*) _tmp7_);
		_tmp9_ = _tmp8_;
		_tmp1_ = _tmp9_;
	} else {
		_tmp1_ = FALSE;
	}
	result = _tmp1_;
	_g_object_unref0 (window);
	return result;
}

static void
deja_dup_app_show (DejaDupApp* self)
{
	g_return_if_fail (self != NULL);
	g_application_activate ((GApplication*) self);
}

static gboolean
deja_dup_app_exit_cleanly (DejaDupApp* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_signal_emit_by_name ((GApplication*) self, "shutdown");
	g_application_quit ((GApplication*) self);
	result = G_SOURCE_REMOVE;
	return result;
}

static void
deja_dup_app_close_window (DejaDupApp* self)
{
	MainWindow* window = NULL;
	MainWindow* _tmp0_;
	MainWindow* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = deja_dup_app_get_app_window (self);
	window = _tmp0_;
	_tmp1_ = window;
	if (_tmp1_ != NULL) {
		MainWindow* _tmp2_;
		_tmp2_ = window;
		gtk_window_close ((GtkWindow*) _tmp2_);
	}
	_g_object_unref0 (window);
}

static gboolean
deja_dup_app_has_dark_gtk_theme (DejaDupApp* self)
{
	gchar* theme_name = NULL;
	GtkSettings* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* dark_suffix = NULL;
	gchar* _tmp6_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	gtk_init ();
	_tmp0_ = gtk_settings_get_default ();
	g_object_get (_tmp0_, "gtk-theme-name", &_tmp1_, NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = _tmp2_;
	_tmp4_ = g_utf8_casefold (_tmp3_, (gssize) -1);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp3_);
	theme_name = _tmp5_;
	_tmp6_ = g_utf8_casefold ("-dark", (gssize) -1);
	dark_suffix = _tmp6_;
	result = g_str_has_suffix (theme_name, dark_suffix);
	_g_free0 (dark_suffix);
	_g_free0 (theme_name);
	return result;
}

static gboolean
_deja_dup_app_exit_cleanly_gsource_func (gpointer self)
{
	gboolean result;
	result = deja_dup_app_exit_cleanly ((DejaDupApp*) self);
	return result;
}

static void
deja_dup_app_real_startup (GApplication* base)
{
	DejaDupApp * self;
	gboolean dark_gtk_theme = FALSE;
	gchar* _tmp0_;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar** _tmp5_;
	gchar** _tmp6_;
	gint _tmp6__length1;
	gchar* _tmp7_;
	gchar** _tmp8_;
	gchar** _tmp9_;
	gint _tmp9__length1;
	gchar* _tmp10_;
	gchar** _tmp11_;
	gchar** _tmp12_;
	gint _tmp12__length1;
	gchar* _tmp13_;
	gchar** _tmp14_;
	gchar** _tmp15_;
	gint _tmp15__length1;
	GAction* _tmp16_;
	GSimpleAction* _tmp17_;
	GdkDisplay* display = NULL;
	GdkDisplay* _tmp18_;
	GdkDisplay* _tmp19_;
	AdwStyleManager* style_manager = NULL;
	GdkDisplay* _tmp20_;
	AdwStyleManager* _tmp21_;
	AdwStyleManager* _tmp22_;
	gboolean _tmp23_ = FALSE;
	AdwStyleManager* _tmp24_;
	gboolean _tmp25_;
	gboolean _tmp26_;
	self = (DejaDupApp*) base;
	dark_gtk_theme = deja_dup_app_has_dark_gtk_theme (self);
	G_APPLICATION_CLASS (deja_dup_app_parent_class)->startup ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, adw_application_get_type (), AdwApplication));
	deja_dup_gui_initialize ();
	_tmp0_ = g_strdup ("F1");
	_tmp1_ = g_new0 (gchar*, 1 + 1);
	_tmp1_[0] = _tmp0_;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.help", _tmp2_);
	_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
	_tmp3_ = g_strdup ("<Control>w");
	_tmp4_ = g_strdup ("<Control>q");
	_tmp5_ = g_new0 (gchar*, 2 + 1);
	_tmp5_[0] = _tmp3_;
	_tmp5_[1] = _tmp4_;
	_tmp6_ = _tmp5_;
	_tmp6__length1 = 2;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.close", _tmp6_);
	_tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
	_tmp7_ = g_strdup ("<Control>a");
	_tmp8_ = g_new0 (gchar*, 1 + 1);
	_tmp8_[0] = _tmp7_;
	_tmp9_ = _tmp8_;
	_tmp9__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "restore.select-all", _tmp9_);
	_tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
	_tmp10_ = g_strdup ("<Alt>Up");
	_tmp11_ = g_new0 (gchar*, 1 + 1);
	_tmp11_[0] = _tmp10_;
	_tmp12_ = _tmp11_;
	_tmp12__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "restore.go-up", _tmp12_);
	_tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
	_tmp13_ = g_strdup ("<Control>f");
	_tmp14_ = g_new0 (gchar*, 1 + 1);
	_tmp14_[0] = _tmp13_;
	_tmp15_ = _tmp14_;
	_tmp15__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "restore.search", _tmp15_);
	_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
	g_action_map_add_action_entries ((GActionMap*) self, DEJA_DUP_APP_ACTIONS, (gint) G_N_ELEMENTS (DEJA_DUP_APP_ACTIONS), self);
	_tmp16_ = g_action_map_lookup_action ((GActionMap*) self, "close");
	_tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, g_simple_action_get_type ()) ? ((GSimpleAction*) _tmp16_) : NULL);
	_g_object_unref0 (self->priv->quit_action);
	self->priv->quit_action = _tmp17_;
	g_unix_signal_add_full (G_PRIORITY_DEFAULT, (gint) SIGHUP, _deja_dup_app_exit_cleanly_gsource_func, g_object_ref (self), g_object_unref);
	g_unix_signal_add_full (G_PRIORITY_DEFAULT, (gint) SIGINT, _deja_dup_app_exit_cleanly_gsource_func, g_object_ref (self), g_object_unref);
	g_unix_signal_add_full (G_PRIORITY_DEFAULT, (gint) SIGTERM, _deja_dup_app_exit_cleanly_gsource_func, g_object_ref (self), g_object_unref);
	_tmp18_ = gdk_display_get_default ();
	_tmp19_ = _g_object_ref0 (_tmp18_);
	display = _tmp19_;
	_tmp20_ = display;
	_tmp21_ = adw_style_manager_get_for_display (_tmp20_);
	_tmp22_ = _g_object_ref0 (_tmp21_);
	style_manager = _tmp22_;
	_tmp24_ = style_manager;
	_tmp25_ = adw_style_manager_get_system_supports_color_schemes (_tmp24_);
	_tmp26_ = _tmp25_;
	if (!_tmp26_) {
		_tmp23_ = dark_gtk_theme;
	} else {
		_tmp23_ = FALSE;
	}
	if (_tmp23_) {
		AdwStyleManager* _tmp27_;
		_tmp27_ = style_manager;
		adw_style_manager_set_color_scheme (_tmp27_, ADW_COLOR_SCHEME_PREFER_DARK);
	}
	if (deja_dup_in_demo_mode ()) {
		GtkSettings* gtksettings = NULL;
		GdkDisplay* _tmp28_;
		GtkSettings* _tmp29_;
		GtkSettings* _tmp30_;
		GtkSettings* _tmp31_;
		GtkSettings* _tmp32_;
		GtkSettings* _tmp33_;
		_tmp28_ = display;
		_tmp29_ = gtk_settings_get_for_display (_tmp28_);
		_tmp30_ = _g_object_ref0 (_tmp29_);
		gtksettings = _tmp30_;
		_tmp31_ = gtksettings;
		g_object_set (_tmp31_, "gtk-decoration-layout", ":close", NULL);
		_tmp32_ = gtksettings;
		g_object_set (_tmp32_, "gtk-font-name", "Adwaita Sans 11", NULL);
		_tmp33_ = gtksettings;
		g_object_set (_tmp33_, "gtk-icon-theme-name", "Adwaita", NULL);
		_g_object_unref0 (gtksettings);
	}
	_g_object_unref0 (style_manager);
	_g_object_unref0 (display);
}

static void
deja_dup_app_real_shutdown (GApplication* base)
{
	DejaDupApp * self;
	DejaDupOperation* current_op = NULL;
	OperationLauncher* _tmp0_;
	OperationLauncher* _tmp1_;
	DejaDupOperation* _tmp2_;
	DejaDupOperation* _tmp3_;
	DejaDupOperation* _tmp4_;
	DejaDupOperation* _tmp5_;
	DejaDupMountManager* _tmp7_;
	DejaDupMountManager* _tmp8_;
	self = (DejaDupApp*) base;
	_tmp0_ = operation_launcher_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = _tmp1_->operation;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp1_);
	current_op = _tmp4_;
	_tmp5_ = current_op;
	if (_tmp5_ != NULL) {
		DejaDupOperation* _tmp6_;
		_tmp6_ = current_op;
		deja_dup_operation_stop (_tmp6_);
	}
	_tmp7_ = deja_dup_mount_manager_get_instance ();
	_tmp8_ = _tmp7_;
	deja_dup_mount_manager_unmount_all (_tmp8_);
	_g_object_unref0 (_tmp8_);
	notifications_withdraw ();
	G_APPLICATION_CLASS (deja_dup_app_parent_class)->shutdown ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, adw_application_get_type (), AdwApplication));
	_g_object_unref0 (current_op);
}

void
deja_dup_app_delay (DejaDupApp* self,
                    GSimpleAction* action,
                    GVariant* parameter)
{
	gchar* reason = NULL;
	const gchar* _tmp0_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action != NULL);
	reason = NULL;
	g_variant_get (parameter, "s", &reason, NULL);
	_tmp0_ = reason;
	notifications_automatic_backup_delayed (_tmp0_);
	_g_free0 (reason);
}

static void
deja_dup_app_help (DejaDupApp* self)
{
	GdkAppLaunchContext* context = NULL;
	GdkDisplay* _tmp0_;
	GdkAppLaunchContext* _tmp1_;
	gchar* uri = NULL;
	gchar* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = gdk_display_get_default ();
	_tmp1_ = gdk_display_get_app_launch_context (_tmp0_);
	context = _tmp1_;
	_tmp2_ = g_strdup ("help:" PACKAGE);
	uri = _tmp2_;
	g_app_info_launch_default_for_uri_async (uri, (GAppLaunchContext*) context, NULL, NULL, NULL);
	_g_free0 (uri);
	_g_object_unref0 (context);
}

static void
deja_dup_app_about (DejaDupApp* self)
{
	AdwAboutDialog* dialog = NULL;
	AdwAboutDialog* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar** _tmp4_;
	gchar** _tmp5_;
	gint _tmp5__length1;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar** _tmp9_;
	gchar** _tmp10_;
	gint _tmp10__length1;
	MainWindow* _tmp11_;
	MainWindow* _tmp12_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (AdwAboutDialog*) adw_about_dialog_new ();
	g_object_ref_sink (_tmp0_);
	dialog = _tmp0_;
	adw_about_dialog_set_application_icon (dialog, ICON_NAME);
	_tmp1_ = g_get_application_name ();
	adw_about_dialog_set_application_name (dialog, _tmp1_);
	_tmp2_ = g_strdup ("Barbara Muraus");
	_tmp3_ = g_strdup ("Jakub Steiner");
	_tmp4_ = g_new0 (gchar*, 2 + 1);
	_tmp4_[0] = _tmp2_;
	_tmp4_[1] = _tmp3_;
	_tmp5_ = _tmp4_;
	_tmp5__length1 = 2;
	adw_about_dialog_set_artists (dialog, _tmp5_);
	_tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_free), NULL);
	_tmp6_ = debug_info_get_debug_info ();
	_tmp7_ = _tmp6_;
	adw_about_dialog_set_debug_info (dialog, _tmp7_);
	_g_free0 (_tmp7_);
	adw_about_dialog_set_debug_info_filename (dialog, "deja-dup-debug.txt");
	_tmp8_ = g_strdup ("Michael Terry");
	_tmp9_ = g_new0 (gchar*, 1 + 1);
	_tmp9_[0] = _tmp8_;
	_tmp10_ = _tmp9_;
	_tmp10__length1 = 1;
	adw_about_dialog_set_developers (dialog, _tmp10_);
	_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
	adw_about_dialog_set_issue_url (dialog, "https://gitlab.gnome.org/World/deja-dup/-/issues/new");
	adw_about_dialog_set_license_type (dialog, GTK_LICENSE_GPL_3_0);
	adw_about_dialog_set_release_notes (dialog, "\n" \
"      <p>50.0</p>\n" \
"      <ul>\n" \
"        <li>If a network URL has an unrecognized scheme like `nope://`" \
", give a nicer error message</li>\n" \
"        <li>Explain that rest:// URLs are not supported, if you try to" \
" use one</li>\n" \
"        <li>Duplicity: fix a race condition between reading messages a" \
"nd it exiting</li>\n" \
"        <li>Restic: avoid backing up the restic repository, if local</" \
"li>\n" \
"        <li>Restic: when restoring using the flatpak release on Ubuntu" \
", fall back to the old in-app browser\n" \
"            if apparmor rejects our FUSE mount attempt</li>\n" \
"      </ul>\n" \
"    ");
	adw_about_dialog_set_support_url (dialog, "https://discourse.gnome.org/tags/c/applications/7/deja-dup");
	adw_about_dialog_set_translator_credits (dialog, _ ("translator-credits"));
	adw_about_dialog_set_version (dialog, VERSION);
	adw_about_dialog_set_website (dialog, "https://dejadup.org/");
	_tmp11_ = deja_dup_app_get_app_window (self);
	_tmp12_ = _tmp11_;
	adw_dialog_present ((AdwDialog*) dialog, (GtkWidget*) _tmp12_);
	_g_object_unref0 (_tmp12_);
	_g_object_unref0 (dialog);
}

void
deja_dup_app_backup (DejaDupApp* self)
{
	OperationLauncher* _tmp0_;
	OperationLauncher* _tmp1_;
	DejaDupOperation* _tmp2_;
	gboolean _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = operation_launcher_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = _tmp1_->operation;
	_tmp3_ = _tmp2_ != NULL;
	_g_object_unref0 (_tmp1_);
	if (_tmp3_) {
		g_application_activate ((GApplication*) self);
	} else {
		deja_dup_app_backup_full (self, FALSE);
	}
}

void
deja_dup_app_backup_auto (DejaDupApp* self)
{
	OperationLauncher* _tmp0_;
	OperationLauncher* _tmp1_;
	DejaDupOperation* _tmp2_;
	gboolean _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = operation_launcher_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = _tmp1_->operation;
	_tmp3_ = _tmp2_ == NULL;
	_g_object_unref0 (_tmp1_);
	if (_tmp3_) {
		deja_dup_app_backup_full (self, TRUE);
	}
}

void
deja_dup_app_backup_auto_stop (DejaDupApp* self)
{
	DejaDupOperation* op = NULL;
	OperationLauncher* _tmp0_;
	OperationLauncher* _tmp1_;
	DejaDupOperation* _tmp2_;
	DejaDupOperation* _tmp3_;
	DejaDupOperation* _tmp4_;
	DejaDupOperationBackup* backup_op = NULL;
	DejaDupOperation* _tmp5_;
	DejaDupOperationBackup* _tmp6_;
	gboolean _tmp7_ = FALSE;
	DejaDupOperationBackup* _tmp8_;
	g_return_if_fail (self != NULL);
	_tmp0_ = operation_launcher_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = _tmp1_->operation;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp1_);
	op = _tmp4_;
	_tmp5_ = op;
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, DEJA_DUP_TYPE_OPERATION_BACKUP) ? ((DejaDupOperationBackup*) _tmp5_) : NULL);
	backup_op = _tmp6_;
	_tmp8_ = backup_op;
	if (_tmp8_ != NULL) {
		DejaDupOperationBackup* _tmp9_;
		gboolean _tmp10_;
		gboolean _tmp11_;
		_tmp9_ = backup_op;
		_tmp10_ = deja_dup_operation_backup_get_automatic (_tmp9_);
		_tmp11_ = _tmp10_;
		_tmp7_ = _tmp11_;
	} else {
		_tmp7_ = FALSE;
	}
	if (_tmp7_) {
		DejaDupOperationBackup* _tmp12_;
		_tmp12_ = backup_op;
		deja_dup_operation_stop ((DejaDupOperation*) _tmp12_);
	}
	_g_object_unref0 (backup_op);
	_g_object_unref0 (op);
}

static void
deja_dup_app_backup_full (DejaDupApp* self,
                          gboolean automatic)
{
	OperationLauncher* _tmp0_;
	OperationLauncher* _tmp1_;
	g_return_if_fail (self != NULL);
	deja_dup_app_ensure_app_window (self);
	if (!automatic) {
		g_application_activate ((GApplication*) self);
	}
	_tmp0_ = operation_launcher_get_instance ();
	_tmp1_ = _tmp0_;
	operation_launcher_start_backup (_tmp1_, automatic);
	_g_object_unref0 (_tmp1_);
}

static void
deja_dup_app_prompt_ok (DejaDupApp* self)
{
	g_return_if_fail (self != NULL);
	deja_dup_app_prompt_cancel (self);
	g_application_activate ((GApplication*) self);
}

static void
deja_dup_app_prompt_cancel (DejaDupApp* self)
{
	g_return_if_fail (self != NULL);
	deja_dup_update_prompt_time (TRUE);
}

static void
deja_dup_app_class_init (DejaDupAppClass * klass,
                         gpointer klass_data)
{
	deja_dup_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &DejaDupApp_private_offset);
	((GApplicationClass *) klass)->handle_local_options = (gint (*) (GApplication*, GVariantDict*)) deja_dup_app_real_handle_local_options;
	((GApplicationClass *) klass)->command_line = (gint (*) (GApplication*, GApplicationCommandLine*)) deja_dup_app_real_command_line;
	((GApplicationClass *) klass)->activate = (void (*) (GApplication*)) deja_dup_app_real_activate;
	((GApplicationClass *) klass)->open = (void (*) (GApplication*, GFile**, gint, const gchar*)) deja_dup_app_real_open;
	((GApplicationClass *) klass)->startup = (void (*) (GApplication*)) deja_dup_app_real_startup;
	((GApplicationClass *) klass)->shutdown = (void (*) (GApplication*)) deja_dup_app_real_shutdown;
	G_OBJECT_CLASS (klass)->finalize = deja_dup_app_finalize;
}

static void
deja_dup_app_instance_init (DejaDupApp * self,
                            gpointer klass)
{
	self->priv = deja_dup_app_get_instance_private (self);
	self->priv->quit_action = NULL;
}

static void
deja_dup_app_finalize (GObject * obj)
{
	DejaDupApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DEJA_DUP_APP, DejaDupApp);
	g_weak_ref_clear (&self->priv->main_window);
	_g_object_unref0 (self->priv->quit_action);
	G_OBJECT_CLASS (deja_dup_app_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
deja_dup_app_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DejaDupAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupApp), 0, (GInstanceInitFunc) deja_dup_app_instance_init, NULL };
	GType deja_dup_app_type_id;
	deja_dup_app_type_id = g_type_register_static (adw_application_get_type (), "DejaDupApp", &g_define_type_info, 0);
	DejaDupApp_private_offset = g_type_add_instance_private (deja_dup_app_type_id, sizeof (DejaDupAppPrivate));
	return deja_dup_app_type_id;
}

GType
deja_dup_app_get_type (void)
{
	static gsize deja_dup_app_type_id__once = 0;
	if (g_once_init_enter (&deja_dup_app_type_id__once)) {
		GType deja_dup_app_type_id;
		deja_dup_app_type_id = deja_dup_app_get_type_once ();
		g_once_init_leave (&deja_dup_app_type_id__once, deja_dup_app_type_id);
	}
	return deja_dup_app_type_id__once;
}

static gint
_vala_main (gchar** args,
            gint args_length1)
{
	gchar* appname = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	DejaDupApp* _tmp2_;
	DejaDupApp* _tmp3_;
	gint _tmp4_;
	gint result;
	deja_dup_i18n_setup ();
	_tmp0_ = g_strdup (_ ("Déjà Dup Backups"));
	appname = _tmp0_;
	if (g_strcmp0 (PROFILE, "Devel") == 0) {
		g_setenv ("DEJA_DUP_DEBUG", "1", FALSE);
		g_setenv ("G_MESSAGES_DEBUG", "deja-dup", FALSE);
	}
	_tmp1_ = appname;
	g_set_application_name (_tmp1_);
	g_set_prgname (APPLICATION_ID);
	gtk_window_set_default_icon_name (ICON_NAME);
	g_type_ensure (TYPE_ACTION_DIALOG);
	g_type_ensure (TYPE_BASIC_NAVIGATION_PAGE);
	g_type_ensure (TYPE_BROWSER);
	g_type_ensure (TYPE_BROWSER_PAGE);
	g_type_ensure (TYPE_CONFIG_AUTO_BACKUP_ROW);
	g_type_ensure (TYPE_CONFIG_DELETE);
	g_type_ensure (TYPE_CONFIG_EXCLUDE_FOLDER_GROUP);
	g_type_ensure (TYPE_CONFIG_FOLDER_GROUP);
	g_type_ensure (TYPE_CONFIG_FOLDER_PAGE);
	g_type_ensure (TYPE_CONFIG_INCLUDE_FOLDER_GROUP);
	g_type_ensure (TYPE_CONFIG_LOCATION_GROUP);
	g_type_ensure (TYPE_CONFIG_LOCATION_ROW);
	g_type_ensure (CONFIG_LOCATION_ROW_TYPE_ITEM);
	g_type_ensure (TYPE_CONFIG_PERIOD_ROW);
	g_type_ensure (TYPE_CONFIG_RESTIC_ROW);
	g_type_ensure (TYPE_FOLDER_CHOOSER_BUTTON);
	g_type_ensure (TYPE_HELP_BUTTON);
	g_type_ensure (TYPE_OPERATION_BANNER);
	g_type_ensure (TYPE_OPERATION_STATUS_PAGE);
	g_type_ensure (TYPE_OVERVIEW_PAGE);
	g_type_ensure (TYPE_PRIMARY_MENU_BUTTON);
	g_type_ensure (TYPE_RECENT_BACKUP_ROW);
	g_type_ensure (TYPE_RESTORE_TOOLBAR_VIEW);
	g_type_ensure (TYPE_RESTORE_TARGET_WARNING_BUTTON);
	g_type_ensure (TYPE_SAVE_PASSWORD_ROW);
	g_type_ensure (TYPE_SERVER_ADDRESS_HELP);
	g_type_ensure (TYPE_SNAPSHOTS_PAGE);
	g_type_ensure (TYPE_TOOLTIP_BOX);
	g_type_ensure (TYPE_WELCOME_PAGE);
	_tmp2_ = deja_dup_app_get_instance ();
	_tmp3_ = _tmp2_;
	_tmp4_ = g_application_run ((GApplication*) _tmp3_, (gint) args_length1, args);
	_g_object_unref0 (_tmp3_);
	result = _tmp4_;
	_g_free0 (appname);
	return result;
}

int
main (int argc,
      char ** argv)
{
	return _vala_main (argv, argc);
}

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

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

