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

/* 
 *      Copyright 2011 Julien Lavergne <gilir@ubuntu.com>
 *
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
*/
/* 
   TODO packagekit handler (GUI and stuff) ?
   TODO Use wnck for managing launching applications ?
*/

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <signal.h>
#include <sys/types.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <glib/gi18n-lib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>


#define LXSESSION_TYPE_APP_OBJECT (lxsession_app_object_get_type ())
#define LXSESSION_APP_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_APP_OBJECT, LxsessionAppObject))
#define LXSESSION_APP_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_APP_OBJECT, LxsessionAppObjectClass))
#define LXSESSION_IS_APP_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_APP_OBJECT))
#define LXSESSION_IS_APP_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_APP_OBJECT))
#define LXSESSION_APP_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_APP_OBJECT, LxsessionAppObjectClass))

typedef struct _LxsessionAppObject LxsessionAppObject;
typedef struct _LxsessionAppObjectClass LxsessionAppObjectClass;
typedef struct _LxsessionAppObjectPrivate LxsessionAppObjectPrivate;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define LXSESSION_TYPE_SIMPLE_APP_OBJECT (lxsession_simple_app_object_get_type ())
#define LXSESSION_SIMPLE_APP_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_SIMPLE_APP_OBJECT, LxsessionSimpleAppObject))
#define LXSESSION_SIMPLE_APP_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_SIMPLE_APP_OBJECT, LxsessionSimpleAppObjectClass))
#define LXSESSION_IS_SIMPLE_APP_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_SIMPLE_APP_OBJECT))
#define LXSESSION_IS_SIMPLE_APP_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_SIMPLE_APP_OBJECT))
#define LXSESSION_SIMPLE_APP_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_SIMPLE_APP_OBJECT, LxsessionSimpleAppObjectClass))

typedef struct _LxsessionSimpleAppObject LxsessionSimpleAppObject;
typedef struct _LxsessionSimpleAppObjectClass LxsessionSimpleAppObjectClass;
typedef struct _LxsessionSimpleAppObjectPrivate LxsessionSimpleAppObjectPrivate;

#define LXSESSION_TYPE_GENERIC_APP_OBJECT (lxsession_generic_app_object_get_type ())
#define LXSESSION_GENERIC_APP_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_GENERIC_APP_OBJECT, LxsessionGenericAppObject))
#define LXSESSION_GENERIC_APP_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_GENERIC_APP_OBJECT, LxsessionGenericAppObjectClass))
#define LXSESSION_IS_GENERIC_APP_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_GENERIC_APP_OBJECT))
#define LXSESSION_IS_GENERIC_APP_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_GENERIC_APP_OBJECT))
#define LXSESSION_GENERIC_APP_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_GENERIC_APP_OBJECT, LxsessionGenericAppObjectClass))

typedef struct _LxsessionGenericAppObject LxsessionGenericAppObject;
typedef struct _LxsessionGenericAppObjectClass LxsessionGenericAppObjectClass;
typedef struct _LxsessionGenericAppObjectPrivate LxsessionGenericAppObjectPrivate;

#define LXSESSION_TYPE_APP_TYPE (lxsession_app_type_get_type ())
typedef struct _LxsessionAppType LxsessionAppType;

#define LXSESSION_TYPE_GENERIC_SIMPLE_APP (lxsession_generic_simple_app_get_type ())
#define LXSESSION_GENERIC_SIMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_GENERIC_SIMPLE_APP, LxsessionGenericSimpleApp))
#define LXSESSION_GENERIC_SIMPLE_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_GENERIC_SIMPLE_APP, LxsessionGenericSimpleAppClass))
#define LXSESSION_IS_GENERIC_SIMPLE_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_GENERIC_SIMPLE_APP))
#define LXSESSION_IS_GENERIC_SIMPLE_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_GENERIC_SIMPLE_APP))
#define LXSESSION_GENERIC_SIMPLE_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_GENERIC_SIMPLE_APP, LxsessionGenericSimpleAppClass))

typedef struct _LxsessionGenericSimpleApp LxsessionGenericSimpleApp;
typedef struct _LxsessionGenericSimpleAppClass LxsessionGenericSimpleAppClass;
typedef struct _LxsessionGenericSimpleAppPrivate LxsessionGenericSimpleAppPrivate;

#define LXSESSION_TYPE_WINDOWS_MANAGER_APP (lxsession_windows_manager_app_get_type ())
#define LXSESSION_WINDOWS_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_WINDOWS_MANAGER_APP, LxsessionWindowsManagerApp))
#define LXSESSION_WINDOWS_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_WINDOWS_MANAGER_APP, LxsessionWindowsManagerAppClass))
#define LXSESSION_IS_WINDOWS_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_WINDOWS_MANAGER_APP))
#define LXSESSION_IS_WINDOWS_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_WINDOWS_MANAGER_APP))
#define LXSESSION_WINDOWS_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_WINDOWS_MANAGER_APP, LxsessionWindowsManagerAppClass))

typedef struct _LxsessionWindowsManagerApp LxsessionWindowsManagerApp;
typedef struct _LxsessionWindowsManagerAppClass LxsessionWindowsManagerAppClass;
typedef struct _LxsessionWindowsManagerAppPrivate LxsessionWindowsManagerAppPrivate;

#define LXSESSION_TYPE_LXSESSION_CONFIG (lxsession_lxsession_config_get_type ())
#define LXSESSION_LXSESSION_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfig))
#define LXSESSION_LXSESSION_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfigClass))
#define LXSESSION_IS_LXSESSION_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_LXSESSION_CONFIG))
#define LXSESSION_IS_LXSESSION_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_LXSESSION_CONFIG))
#define LXSESSION_LXSESSION_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_LXSESSION_CONFIG, LxsessionLxsessionConfigClass))

typedef struct _LxsessionLxsessionConfig LxsessionLxsessionConfig;
typedef struct _LxsessionLxsessionConfigClass LxsessionLxsessionConfigClass;

#define LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE (lxsession_lxsession_config_key_file_get_type ())
#define LXSESSION_LXSESSION_CONFIG_KEY_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFile))
#define LXSESSION_LXSESSION_CONFIG_KEY_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFileClass))
#define LXSESSION_IS_LXSESSION_CONFIG_KEY_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE))
#define LXSESSION_IS_LXSESSION_CONFIG_KEY_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE))
#define LXSESSION_LXSESSION_CONFIG_KEY_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_LXSESSION_CONFIG_KEY_FILE, LxsessionLxsessionConfigKeyFileClass))

typedef struct _LxsessionLxsessionConfigKeyFile LxsessionLxsessionConfigKeyFile;
typedef struct _LxsessionLxsessionConfigKeyFileClass LxsessionLxsessionConfigKeyFileClass;
#define _g_array_unref0(var) ((var == NULL) ? NULL : (var = (g_array_unref (var), NULL)))

#define LXSESSION_TYPE_PANEL_APP (lxsession_panel_app_get_type ())
#define LXSESSION_PANEL_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_PANEL_APP, LxsessionPanelApp))
#define LXSESSION_PANEL_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_PANEL_APP, LxsessionPanelAppClass))
#define LXSESSION_IS_PANEL_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_PANEL_APP))
#define LXSESSION_IS_PANEL_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_PANEL_APP))
#define LXSESSION_PANEL_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_PANEL_APP, LxsessionPanelAppClass))

typedef struct _LxsessionPanelApp LxsessionPanelApp;
typedef struct _LxsessionPanelAppClass LxsessionPanelAppClass;
typedef struct _LxsessionPanelAppPrivate LxsessionPanelAppPrivate;

#define LXSESSION_TYPE_DOCK_APP (lxsession_dock_app_get_type ())
#define LXSESSION_DOCK_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_DOCK_APP, LxsessionDockApp))
#define LXSESSION_DOCK_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_DOCK_APP, LxsessionDockAppClass))
#define LXSESSION_IS_DOCK_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_DOCK_APP))
#define LXSESSION_IS_DOCK_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_DOCK_APP))
#define LXSESSION_DOCK_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_DOCK_APP, LxsessionDockAppClass))

typedef struct _LxsessionDockApp LxsessionDockApp;
typedef struct _LxsessionDockAppClass LxsessionDockAppClass;
typedef struct _LxsessionDockAppPrivate LxsessionDockAppPrivate;

#define LXSESSION_TYPE_SCREENSAVER_APP (lxsession_screensaver_app_get_type ())
#define LXSESSION_SCREENSAVER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_SCREENSAVER_APP, LxsessionScreensaverApp))
#define LXSESSION_SCREENSAVER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_SCREENSAVER_APP, LxsessionScreensaverAppClass))
#define LXSESSION_IS_SCREENSAVER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_SCREENSAVER_APP))
#define LXSESSION_IS_SCREENSAVER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_SCREENSAVER_APP))
#define LXSESSION_SCREENSAVER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_SCREENSAVER_APP, LxsessionScreensaverAppClass))

typedef struct _LxsessionScreensaverApp LxsessionScreensaverApp;
typedef struct _LxsessionScreensaverAppClass LxsessionScreensaverAppClass;
typedef struct _LxsessionScreensaverAppPrivate LxsessionScreensaverAppPrivate;

#define LXSESSION_TYPE_POWER_MANAGER_APP (lxsession_power_manager_app_get_type ())
#define LXSESSION_POWER_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_POWER_MANAGER_APP, LxsessionPowerManagerApp))
#define LXSESSION_POWER_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_POWER_MANAGER_APP, LxsessionPowerManagerAppClass))
#define LXSESSION_IS_POWER_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_POWER_MANAGER_APP))
#define LXSESSION_IS_POWER_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_POWER_MANAGER_APP))
#define LXSESSION_POWER_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_POWER_MANAGER_APP, LxsessionPowerManagerAppClass))

typedef struct _LxsessionPowerManagerApp LxsessionPowerManagerApp;
typedef struct _LxsessionPowerManagerAppClass LxsessionPowerManagerAppClass;
typedef struct _LxsessionPowerManagerAppPrivate LxsessionPowerManagerAppPrivate;

#define LXSESSION_TYPE_FILE_MANAGER_APP (lxsession_file_manager_app_get_type ())
#define LXSESSION_FILE_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_FILE_MANAGER_APP, LxsessionFileManagerApp))
#define LXSESSION_FILE_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_FILE_MANAGER_APP, LxsessionFileManagerAppClass))
#define LXSESSION_IS_FILE_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_FILE_MANAGER_APP))
#define LXSESSION_IS_FILE_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_FILE_MANAGER_APP))
#define LXSESSION_FILE_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_FILE_MANAGER_APP, LxsessionFileManagerAppClass))

typedef struct _LxsessionFileManagerApp LxsessionFileManagerApp;
typedef struct _LxsessionFileManagerAppClass LxsessionFileManagerAppClass;
typedef struct _LxsessionFileManagerAppPrivate LxsessionFileManagerAppPrivate;

#define LXSESSION_TYPE_DESKTOP_APP (lxsession_desktop_app_get_type ())
#define LXSESSION_DESKTOP_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_DESKTOP_APP, LxsessionDesktopApp))
#define LXSESSION_DESKTOP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_DESKTOP_APP, LxsessionDesktopAppClass))
#define LXSESSION_IS_DESKTOP_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_DESKTOP_APP))
#define LXSESSION_IS_DESKTOP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_DESKTOP_APP))
#define LXSESSION_DESKTOP_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_DESKTOP_APP, LxsessionDesktopAppClass))

typedef struct _LxsessionDesktopApp LxsessionDesktopApp;
typedef struct _LxsessionDesktopAppClass LxsessionDesktopAppClass;
typedef struct _LxsessionDesktopAppPrivate LxsessionDesktopAppPrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define LXSESSION_TYPE_POLKIT_APP (lxsession_polkit_app_get_type ())
#define LXSESSION_POLKIT_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_POLKIT_APP, LxsessionPolkitApp))
#define LXSESSION_POLKIT_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_POLKIT_APP, LxsessionPolkitAppClass))
#define LXSESSION_IS_POLKIT_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_POLKIT_APP))
#define LXSESSION_IS_POLKIT_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_POLKIT_APP))
#define LXSESSION_POLKIT_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_POLKIT_APP, LxsessionPolkitAppClass))

typedef struct _LxsessionPolkitApp LxsessionPolkitApp;
typedef struct _LxsessionPolkitAppClass LxsessionPolkitAppClass;
typedef struct _LxsessionPolkitAppPrivate LxsessionPolkitAppPrivate;

#define LXSESSION_TYPE_NETWORK_GUI_APP (lxsession_network_gui_app_get_type ())
#define LXSESSION_NETWORK_GUI_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_NETWORK_GUI_APP, LxsessionNetworkGuiApp))
#define LXSESSION_NETWORK_GUI_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_NETWORK_GUI_APP, LxsessionNetworkGuiAppClass))
#define LXSESSION_IS_NETWORK_GUI_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_NETWORK_GUI_APP))
#define LXSESSION_IS_NETWORK_GUI_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_NETWORK_GUI_APP))
#define LXSESSION_NETWORK_GUI_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_NETWORK_GUI_APP, LxsessionNetworkGuiAppClass))

typedef struct _LxsessionNetworkGuiApp LxsessionNetworkGuiApp;
typedef struct _LxsessionNetworkGuiAppClass LxsessionNetworkGuiAppClass;
typedef struct _LxsessionNetworkGuiAppPrivate LxsessionNetworkGuiAppPrivate;

#define LXSESSION_TYPE_AUDIO_MANAGER_APP (lxsession_audio_manager_app_get_type ())
#define LXSESSION_AUDIO_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_AUDIO_MANAGER_APP, LxsessionAudioManagerApp))
#define LXSESSION_AUDIO_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_AUDIO_MANAGER_APP, LxsessionAudioManagerAppClass))
#define LXSESSION_IS_AUDIO_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_AUDIO_MANAGER_APP))
#define LXSESSION_IS_AUDIO_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_AUDIO_MANAGER_APP))
#define LXSESSION_AUDIO_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_AUDIO_MANAGER_APP, LxsessionAudioManagerAppClass))

typedef struct _LxsessionAudioManagerApp LxsessionAudioManagerApp;
typedef struct _LxsessionAudioManagerAppClass LxsessionAudioManagerAppClass;
typedef struct _LxsessionAudioManagerAppPrivate LxsessionAudioManagerAppPrivate;

#define LXSESSION_TYPE_QUIT_MANAGER_APP (lxsession_quit_manager_app_get_type ())
#define LXSESSION_QUIT_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_QUIT_MANAGER_APP, LxsessionQuitManagerApp))
#define LXSESSION_QUIT_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_QUIT_MANAGER_APP, LxsessionQuitManagerAppClass))
#define LXSESSION_IS_QUIT_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_QUIT_MANAGER_APP))
#define LXSESSION_IS_QUIT_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_QUIT_MANAGER_APP))
#define LXSESSION_QUIT_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_QUIT_MANAGER_APP, LxsessionQuitManagerAppClass))

typedef struct _LxsessionQuitManagerApp LxsessionQuitManagerApp;
typedef struct _LxsessionQuitManagerAppClass LxsessionQuitManagerAppClass;
typedef struct _LxsessionQuitManagerAppPrivate LxsessionQuitManagerAppPrivate;

#define LXSESSION_TYPE_WORKSPACE_MANAGER_APP (lxsession_workspace_manager_app_get_type ())
#define LXSESSION_WORKSPACE_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_WORKSPACE_MANAGER_APP, LxsessionWorkspaceManagerApp))
#define LXSESSION_WORKSPACE_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_WORKSPACE_MANAGER_APP, LxsessionWorkspaceManagerAppClass))
#define LXSESSION_IS_WORKSPACE_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_WORKSPACE_MANAGER_APP))
#define LXSESSION_IS_WORKSPACE_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_WORKSPACE_MANAGER_APP))
#define LXSESSION_WORKSPACE_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_WORKSPACE_MANAGER_APP, LxsessionWorkspaceManagerAppClass))

typedef struct _LxsessionWorkspaceManagerApp LxsessionWorkspaceManagerApp;
typedef struct _LxsessionWorkspaceManagerAppClass LxsessionWorkspaceManagerAppClass;
typedef struct _LxsessionWorkspaceManagerAppPrivate LxsessionWorkspaceManagerAppPrivate;

#define LXSESSION_TYPE_LAUNCHER_MANAGER_APP (lxsession_launcher_manager_app_get_type ())
#define LXSESSION_LAUNCHER_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_LAUNCHER_MANAGER_APP, LxsessionLauncherManagerApp))
#define LXSESSION_LAUNCHER_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_LAUNCHER_MANAGER_APP, LxsessionLauncherManagerAppClass))
#define LXSESSION_IS_LAUNCHER_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_LAUNCHER_MANAGER_APP))
#define LXSESSION_IS_LAUNCHER_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_LAUNCHER_MANAGER_APP))
#define LXSESSION_LAUNCHER_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_LAUNCHER_MANAGER_APP, LxsessionLauncherManagerAppClass))

typedef struct _LxsessionLauncherManagerApp LxsessionLauncherManagerApp;
typedef struct _LxsessionLauncherManagerAppClass LxsessionLauncherManagerAppClass;
typedef struct _LxsessionLauncherManagerAppPrivate LxsessionLauncherManagerAppPrivate;

#define LXSESSION_TYPE_TERMINAL_MANAGER_APP (lxsession_terminal_manager_app_get_type ())
#define LXSESSION_TERMINAL_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_TERMINAL_MANAGER_APP, LxsessionTerminalManagerApp))
#define LXSESSION_TERMINAL_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_TERMINAL_MANAGER_APP, LxsessionTerminalManagerAppClass))
#define LXSESSION_IS_TERMINAL_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_TERMINAL_MANAGER_APP))
#define LXSESSION_IS_TERMINAL_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_TERMINAL_MANAGER_APP))
#define LXSESSION_TERMINAL_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_TERMINAL_MANAGER_APP, LxsessionTerminalManagerAppClass))

typedef struct _LxsessionTerminalManagerApp LxsessionTerminalManagerApp;
typedef struct _LxsessionTerminalManagerAppClass LxsessionTerminalManagerAppClass;
typedef struct _LxsessionTerminalManagerAppPrivate LxsessionTerminalManagerAppPrivate;

#define LXSESSION_TYPE_PROXY_MANAGER_APP (lxsession_proxy_manager_app_get_type ())
#define LXSESSION_PROXY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_PROXY_MANAGER_APP, LxsessionProxyManagerApp))
#define LXSESSION_PROXY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_PROXY_MANAGER_APP, LxsessionProxyManagerAppClass))
#define LXSESSION_IS_PROXY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_PROXY_MANAGER_APP))
#define LXSESSION_IS_PROXY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_PROXY_MANAGER_APP))
#define LXSESSION_PROXY_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_PROXY_MANAGER_APP, LxsessionProxyManagerAppClass))

typedef struct _LxsessionProxyManagerApp LxsessionProxyManagerApp;
typedef struct _LxsessionProxyManagerAppClass LxsessionProxyManagerAppClass;
typedef struct _LxsessionProxyManagerAppPrivate LxsessionProxyManagerAppPrivate;

#define LXSESSION_TYPE_A11Y_APP (lxsession_a11y_app_get_type ())
#define LXSESSION_A11Y_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_A11Y_APP, LxsessionA11yApp))
#define LXSESSION_A11Y_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_A11Y_APP, LxsessionA11yAppClass))
#define LXSESSION_IS_A11Y_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_A11Y_APP))
#define LXSESSION_IS_A11Y_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_A11Y_APP))
#define LXSESSION_A11Y_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_A11Y_APP, LxsessionA11yAppClass))

typedef struct _LxsessionA11yApp LxsessionA11yApp;
typedef struct _LxsessionA11yAppClass LxsessionA11yAppClass;
typedef struct _LxsessionA11yAppPrivate LxsessionA11yAppPrivate;

#define LXSESSION_TYPE_XRANDR_APP (lxsession_xrandr_app_get_type ())
#define LXSESSION_XRANDR_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_XRANDR_APP, LxsessionXrandrApp))
#define LXSESSION_XRANDR_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_XRANDR_APP, LxsessionXrandrAppClass))
#define LXSESSION_IS_XRANDR_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_XRANDR_APP))
#define LXSESSION_IS_XRANDR_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_XRANDR_APP))
#define LXSESSION_XRANDR_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_XRANDR_APP, LxsessionXrandrAppClass))

typedef struct _LxsessionXrandrApp LxsessionXrandrApp;
typedef struct _LxsessionXrandrAppClass LxsessionXrandrAppClass;
typedef struct _LxsessionXrandrAppPrivate LxsessionXrandrAppPrivate;

#define LXSESSION_TYPE_KEYRING_APP (lxsession_keyring_app_get_type ())
#define LXSESSION_KEYRING_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_KEYRING_APP, LxsessionKeyringApp))
#define LXSESSION_KEYRING_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_KEYRING_APP, LxsessionKeyringAppClass))
#define LXSESSION_IS_KEYRING_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_KEYRING_APP))
#define LXSESSION_IS_KEYRING_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_KEYRING_APP))
#define LXSESSION_KEYRING_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_KEYRING_APP, LxsessionKeyringAppClass))

typedef struct _LxsessionKeyringApp LxsessionKeyringApp;
typedef struct _LxsessionKeyringAppClass LxsessionKeyringAppClass;
typedef struct _LxsessionKeyringAppPrivate LxsessionKeyringAppPrivate;

#define LXSESSION_TYPE_SCREENSHOT_MANAGER_APP (lxsession_screenshot_manager_app_get_type ())
#define LXSESSION_SCREENSHOT_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_SCREENSHOT_MANAGER_APP, LxsessionScreenshotManagerApp))
#define LXSESSION_SCREENSHOT_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_SCREENSHOT_MANAGER_APP, LxsessionScreenshotManagerAppClass))
#define LXSESSION_IS_SCREENSHOT_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_SCREENSHOT_MANAGER_APP))
#define LXSESSION_IS_SCREENSHOT_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_SCREENSHOT_MANAGER_APP))
#define LXSESSION_SCREENSHOT_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_SCREENSHOT_MANAGER_APP, LxsessionScreenshotManagerAppClass))

typedef struct _LxsessionScreenshotManagerApp LxsessionScreenshotManagerApp;
typedef struct _LxsessionScreenshotManagerAppClass LxsessionScreenshotManagerAppClass;
typedef struct _LxsessionScreenshotManagerAppPrivate LxsessionScreenshotManagerAppPrivate;

#define LXSESSION_TYPE_UPDATES_MANAGER_APP (lxsession_updates_manager_app_get_type ())
#define LXSESSION_UPDATES_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_UPDATES_MANAGER_APP, LxsessionUpdatesManagerApp))
#define LXSESSION_UPDATES_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_UPDATES_MANAGER_APP, LxsessionUpdatesManagerAppClass))
#define LXSESSION_IS_UPDATES_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_UPDATES_MANAGER_APP))
#define LXSESSION_IS_UPDATES_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_UPDATES_MANAGER_APP))
#define LXSESSION_UPDATES_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_UPDATES_MANAGER_APP, LxsessionUpdatesManagerAppClass))

typedef struct _LxsessionUpdatesManagerApp LxsessionUpdatesManagerApp;
typedef struct _LxsessionUpdatesManagerAppClass LxsessionUpdatesManagerAppClass;
typedef struct _LxsessionUpdatesManagerAppPrivate LxsessionUpdatesManagerAppPrivate;

#define LXSESSION_TYPE_ICON_OBJECT (lxsession_icon_object_get_type ())
#define LXSESSION_ICON_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_ICON_OBJECT, LxsessionIconObject))
#define LXSESSION_ICON_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_ICON_OBJECT, LxsessionIconObjectClass))
#define LXSESSION_IS_ICON_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_ICON_OBJECT))
#define LXSESSION_IS_ICON_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_ICON_OBJECT))
#define LXSESSION_ICON_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_ICON_OBJECT, LxsessionIconObjectClass))

typedef struct _LxsessionIconObject LxsessionIconObject;
typedef struct _LxsessionIconObjectClass LxsessionIconObjectClass;

#define LXSESSION_TYPE_MENU_OBJECT (lxsession_menu_object_get_type ())
#define LXSESSION_MENU_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_MENU_OBJECT, LxsessionMenuObject))
#define LXSESSION_MENU_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_MENU_OBJECT, LxsessionMenuObjectClass))
#define LXSESSION_IS_MENU_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_MENU_OBJECT))
#define LXSESSION_IS_MENU_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_MENU_OBJECT))
#define LXSESSION_MENU_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_MENU_OBJECT, LxsessionMenuObjectClass))

typedef struct _LxsessionMenuObject LxsessionMenuObject;
typedef struct _LxsessionMenuObjectClass LxsessionMenuObjectClass;

#define LXSESSION_TYPE_SESSION_OBJECT (lxsession_session_object_get_type ())
#define LXSESSION_SESSION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_SESSION_OBJECT, LxsessionSessionObject))
#define LXSESSION_SESSION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_SESSION_OBJECT, LxsessionSessionObjectClass))
#define LXSESSION_IS_SESSION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_SESSION_OBJECT))
#define LXSESSION_IS_SESSION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_SESSION_OBJECT))
#define LXSESSION_SESSION_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_SESSION_OBJECT, LxsessionSessionObjectClass))

typedef struct _LxsessionSessionObject LxsessionSessionObject;
typedef struct _LxsessionSessionObjectClass LxsessionSessionObjectClass;

#define LXSESSION_TYPE_MENU_ITEM_OBJECT (lxsession_menu_item_object_get_type ())
#define LXSESSION_MENU_ITEM_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_MENU_ITEM_OBJECT, LxsessionMenuItemObject))
#define LXSESSION_MENU_ITEM_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_MENU_ITEM_OBJECT, LxsessionMenuItemObjectClass))
#define LXSESSION_IS_MENU_ITEM_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_MENU_ITEM_OBJECT))
#define LXSESSION_IS_MENU_ITEM_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_MENU_ITEM_OBJECT))
#define LXSESSION_MENU_ITEM_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_MENU_ITEM_OBJECT, LxsessionMenuItemObjectClass))

typedef struct _LxsessionMenuItemObject LxsessionMenuItemObject;
typedef struct _LxsessionMenuItemObjectClass LxsessionMenuItemObjectClass;
typedef struct _Block1Data Block1Data;

#define LXSESSION_TYPE_CRASH_MANAGER_APP (lxsession_crash_manager_app_get_type ())
#define LXSESSION_CRASH_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LXSESSION_TYPE_CRASH_MANAGER_APP, LxsessionCrashManagerApp))
#define LXSESSION_CRASH_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LXSESSION_TYPE_CRASH_MANAGER_APP, LxsessionCrashManagerAppClass))
#define LXSESSION_IS_CRASH_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LXSESSION_TYPE_CRASH_MANAGER_APP))
#define LXSESSION_IS_CRASH_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LXSESSION_TYPE_CRASH_MANAGER_APP))
#define LXSESSION_CRASH_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LXSESSION_TYPE_CRASH_MANAGER_APP, LxsessionCrashManagerAppClass))

typedef struct _LxsessionCrashManagerApp LxsessionCrashManagerApp;
typedef struct _LxsessionCrashManagerAppClass LxsessionCrashManagerAppClass;
typedef struct _LxsessionCrashManagerAppPrivate LxsessionCrashManagerAppPrivate;
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
#define __g_list_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_free0_ (var), NULL)))
typedef struct _Block2Data Block2Data;
typedef struct _Block3Data Block3Data;

struct _LxsessionAppObject {
	GObject parent_instance;
	LxsessionAppObjectPrivate * priv;
	GPid pid;
};

struct _LxsessionAppObjectClass {
	GObjectClass parent_class;
	void (*read_config_settings) (LxsessionAppObject* self);
	void (*read_settings) (LxsessionAppObject* self);
};

struct _LxsessionAppObjectPrivate {
	gchar* _name;
	gchar** _command;
	gint _command_length1;
	gint __command_size_;
	gboolean _guard;
	gchar* _application_type;
	gint _crash_count;
	gint _stop_reload;
};

struct _LxsessionSimpleAppObject {
	LxsessionAppObject parent_instance;
	LxsessionSimpleAppObjectPrivate * priv;
};

struct _LxsessionSimpleAppObjectClass {
	LxsessionAppObjectClass parent_class;
};

struct _LxsessionGenericAppObject {
	LxsessionAppObject parent_instance;
	LxsessionGenericAppObjectPrivate * priv;
};

struct _LxsessionGenericAppObjectClass {
	LxsessionAppObjectClass parent_class;
};

struct _LxsessionAppType {
	gchar* name;
	gchar** command;
	gint command_length1;
	gboolean guard;
	gchar* application_type;
};

struct _LxsessionGenericSimpleApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionGenericSimpleAppPrivate * priv;
};

struct _LxsessionGenericSimpleAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionGenericSimpleAppPrivate {
	gchar* _settings_command;
};

struct _LxsessionWindowsManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionWindowsManagerAppPrivate * priv;
};

struct _LxsessionWindowsManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionWindowsManagerAppPrivate {
	gchar* wm_command;
	gchar* mode;
	gchar* session;
	gchar* extras;
};

struct _LxsessionPanelApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionPanelAppPrivate * priv;
	gchar* panel_command;
	gchar* panel_session;
};

struct _LxsessionPanelAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionDockApp {
	LxsessionPanelApp parent_instance;
	LxsessionDockAppPrivate * priv;
};

struct _LxsessionDockAppClass {
	LxsessionPanelAppClass parent_class;
};

struct _LxsessionScreensaverApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionScreensaverAppPrivate * priv;
};

struct _LxsessionScreensaverAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionScreensaverAppPrivate {
	gchar* screensaver_command;
};

struct _LxsessionPowerManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionPowerManagerAppPrivate * priv;
};

struct _LxsessionPowerManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionPowerManagerAppPrivate {
	gchar* powermanager_command;
	gchar* laptop_mode;
};

struct _LxsessionFileManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionFileManagerAppPrivate * priv;
};

struct _LxsessionFileManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionFileManagerAppPrivate {
	gchar* filemanager_command;
	gchar* filemanager_session;
	gchar* filemanager_extras;
};

struct _LxsessionDesktopApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionDesktopAppPrivate * priv;
};

struct _LxsessionDesktopAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionDesktopAppPrivate {
	gchar* desktop_command;
	gchar* desktop_wallpaper;
};

struct _LxsessionPolkitApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionPolkitAppPrivate * priv;
};

struct _LxsessionPolkitAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionPolkitAppPrivate {
	gchar* polkit_command;
};

struct _LxsessionNetworkGuiApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionNetworkGuiAppPrivate * priv;
};

struct _LxsessionNetworkGuiAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionNetworkGuiAppPrivate {
	gchar* network_command;
	gchar* laptop_mode;
};

struct _LxsessionAudioManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionAudioManagerAppPrivate * priv;
};

struct _LxsessionAudioManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionAudioManagerAppPrivate {
	gchar* audiomanager_command;
};

struct _LxsessionQuitManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionQuitManagerAppPrivate * priv;
};

struct _LxsessionQuitManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionQuitManagerAppPrivate {
	gchar* quitmanager_command;
	gchar* quitmanager_image;
	gchar* quitmanager_layout;
};

struct _LxsessionWorkspaceManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionWorkspaceManagerAppPrivate * priv;
};

struct _LxsessionWorkspaceManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionWorkspaceManagerAppPrivate {
	gchar* workspacemanager_command;
};

struct _LxsessionLauncherManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionLauncherManagerAppPrivate * priv;
};

struct _LxsessionLauncherManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionLauncherManagerAppPrivate {
	gchar* launchermanager_command;
};

struct _LxsessionTerminalManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionTerminalManagerAppPrivate * priv;
};

struct _LxsessionTerminalManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionTerminalManagerAppPrivate {
	gchar* terminalmanager_command;
};

struct _LxsessionProxyManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionProxyManagerAppPrivate * priv;
};

struct _LxsessionProxyManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionProxyManagerAppPrivate {
	gchar* proxymanager_command;
	gchar* proxymanager_http;
};

struct _LxsessionA11yApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionA11yAppPrivate * priv;
};

struct _LxsessionA11yAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionA11yAppPrivate {
	gchar* a11y_command;
};

struct _LxsessionXrandrApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionXrandrAppPrivate * priv;
};

struct _LxsessionXrandrAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionXrandrAppPrivate {
	gchar* xrandr_command;
};

struct _LxsessionKeyringApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionKeyringAppPrivate * priv;
};

struct _LxsessionKeyringAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionKeyringAppPrivate {
	gchar* keyring_command;
	gchar* keyring_type;
};

struct _LxsessionScreenshotManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionScreenshotManagerAppPrivate * priv;
};

struct _LxsessionScreenshotManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionScreenshotManagerAppPrivate {
	gchar* screenshotmanager_command;
};

struct _LxsessionUpdatesManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionUpdatesManagerAppPrivate * priv;
};

struct _LxsessionUpdatesManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionUpdatesManagerAppPrivate {
	gchar* updatesmanager_command;
	LxsessionIconObject* updates_icon;
	LxsessionMenuObject* icon_menu;
	LxsessionIconObject* language_icon;
	LxsessionIconObject* reboot_icon;
	gchar* apt_update_path;
	GFile* apt_update_file;
	GFileMonitor* apt_update_monitor;
	gchar* dpkg_update_path;
	GFile* dpkg_update_file;
	GFileMonitor* dpkg_update_monitor;
	gchar* dpkg_run_path;
	GFile* dpkg_run_file;
	GFileMonitor* dpkg_run_monitor;
	gchar* apt_lists_update_path;
	GFile* apt_lists_update_file;
	GFileMonitor* apt_lists_update_monitor;
	gchar* reboot_path;
	GFile* reboot_file;
	GFileMonitor* reboot_monitor;
	gchar* dpkg_lock_file;
	gint lock_check;
};

typedef void (*LxsessionIconObjectActionCallback) (void* user_data);
struct _Block1Data {
	int _ref_count_;
	LxsessionUpdatesManagerApp* self;
	gchar* upgrade_manager_command;
};

struct _LxsessionCrashManagerApp {
	LxsessionSimpleAppObject parent_instance;
	LxsessionCrashManagerAppPrivate * priv;
};

struct _LxsessionCrashManagerAppClass {
	LxsessionSimpleAppObjectClass parent_class;
};

struct _LxsessionCrashManagerAppPrivate {
	gchar* crash_manager_command;
	LxsessionIconObject* crash_icon;
	gchar* crash_dir_path;
	GFile* crash_dir_file;
	GFileMonitor* crash_dir_monitor;
	gint lock_crash_check;
};

struct _Block2Data {
	int _ref_count_;
	LxsessionCrashManagerApp* self;
	gchar* command;
};

struct _Block3Data {
	int _ref_count_;
	LxsessionCrashManagerApp* self;
	gchar* remove_command;
};


static gpointer lxsession_app_object_parent_class = NULL;
static gpointer lxsession_simple_app_object_parent_class = NULL;
static gpointer lxsession_generic_app_object_parent_class = NULL;
static gpointer lxsession_generic_simple_app_parent_class = NULL;
static gpointer lxsession_windows_manager_app_parent_class = NULL;
extern LxsessionLxsessionConfigKeyFile* lxsession_global_settings;
static gpointer lxsession_panel_app_parent_class = NULL;
static gpointer lxsession_dock_app_parent_class = NULL;
static gpointer lxsession_screensaver_app_parent_class = NULL;
static gpointer lxsession_power_manager_app_parent_class = NULL;
static gpointer lxsession_file_manager_app_parent_class = NULL;
static gpointer lxsession_desktop_app_parent_class = NULL;
extern LxsessionFileManagerApp* lxsession_global_file_manager;
static gpointer lxsession_polkit_app_parent_class = NULL;
static gpointer lxsession_network_gui_app_parent_class = NULL;
static gpointer lxsession_audio_manager_app_parent_class = NULL;
static gpointer lxsession_quit_manager_app_parent_class = NULL;
static gpointer lxsession_workspace_manager_app_parent_class = NULL;
static gpointer lxsession_launcher_manager_app_parent_class = NULL;
static gpointer lxsession_terminal_manager_app_parent_class = NULL;
static gpointer lxsession_proxy_manager_app_parent_class = NULL;
static gpointer lxsession_a11y_app_parent_class = NULL;
static gpointer lxsession_xrandr_app_parent_class = NULL;
static gpointer lxsession_keyring_app_parent_class = NULL;
static gpointer lxsession_screenshot_manager_app_parent_class = NULL;
static gpointer lxsession_updates_manager_app_parent_class = NULL;
static gpointer lxsession_crash_manager_app_parent_class = NULL;

GType lxsession_app_object_get_type (void) G_GNUC_CONST;
#define LXSESSION_APP_OBJECT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_APP_OBJECT, LxsessionAppObjectPrivate))
enum  {
	LXSESSION_APP_OBJECT_DUMMY_PROPERTY,
	LXSESSION_APP_OBJECT_NAME,
	LXSESSION_APP_OBJECT_COMMAND,
	LXSESSION_APP_OBJECT_GUARD,
	LXSESSION_APP_OBJECT_APPLICATION_TYPE,
	LXSESSION_APP_OBJECT_CRASH_COUNT,
	LXSESSION_APP_OBJECT_STOP_RELOAD
};
LxsessionAppObject* lxsession_app_object_new (void);
LxsessionAppObject* lxsession_app_object_construct (GType object_type);
void lxsession_app_object_init (LxsessionAppObject* self);
void lxsession_app_object_launch (LxsessionAppObject* self);
void lxsession_app_object_generic_launch (LxsessionAppObject* self, const gchar* arg1);
const gchar* lxsession_app_object_get_name (LxsessionAppObject* self);
gchar** lxsession_app_object_get_command (LxsessionAppObject* self, int* result_length1);
static void lxsession_app_object_callback_pid (LxsessionAppObject* self, GPid pid, gint status);
static void _lxsession_app_object_callback_pid_gchild_watch_func (GPid pid, gint status, gpointer self);
void lxsession_app_object_read_config_settings (LxsessionAppObject* self);
static void lxsession_app_object_real_read_config_settings (LxsessionAppObject* self);
void lxsession_app_object_read_settings (LxsessionAppObject* self);
static void lxsession_app_object_real_read_settings (LxsessionAppObject* self);
void lxsession_app_object_stop (LxsessionAppObject* self);
void lxsession_app_object_reload (LxsessionAppObject* self);
gboolean lxsession_app_object_get_guard (LxsessionAppObject* self);
gint lxsession_app_object_get_crash_count (LxsessionAppObject* self);
void lxsession_app_object_set_crash_count (LxsessionAppObject* self, gint value);
gint lxsession_app_object_get_stop_reload (LxsessionAppObject* self);
void lxsession_app_object_set_name (LxsessionAppObject* self, const gchar* value);
void lxsession_app_object_set_command (LxsessionAppObject* self, gchar** value, int value_length1);
static gchar** _vala_array_dup1 (gchar** self, int length);
void lxsession_app_object_set_guard (LxsessionAppObject* self, gboolean value);
const gchar* lxsession_app_object_get_application_type (LxsessionAppObject* self);
void lxsession_app_object_set_application_type (LxsessionAppObject* self, const gchar* value);
void lxsession_app_object_set_stop_reload (LxsessionAppObject* self, gint value);
static void lxsession_app_object_finalize (GObject* obj);
static void _vala_lxsession_app_object_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_lxsession_app_object_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
GType lxsession_simple_app_object_get_type (void) G_GNUC_CONST;
enum  {
	LXSESSION_SIMPLE_APP_OBJECT_DUMMY_PROPERTY
};
LxsessionSimpleAppObject* lxsession_simple_app_object_new (void);
LxsessionSimpleAppObject* lxsession_simple_app_object_construct (GType object_type);
GType lxsession_generic_app_object_get_type (void) G_GNUC_CONST;
enum  {
	LXSESSION_GENERIC_APP_OBJECT_DUMMY_PROPERTY
};
GType lxsession_app_type_get_type (void) G_GNUC_CONST;
LxsessionAppType* lxsession_app_type_dup (const LxsessionAppType* self);
void lxsession_app_type_free (LxsessionAppType* self);
void lxsession_app_type_copy (const LxsessionAppType* self, LxsessionAppType* dest);
void lxsession_app_type_destroy (LxsessionAppType* self);
LxsessionGenericAppObject* lxsession_generic_app_object_new (LxsessionAppType* app_type);
LxsessionGenericAppObject* lxsession_generic_app_object_construct (GType object_type, LxsessionAppType* app_type);
GType lxsession_generic_simple_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_GENERIC_SIMPLE_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_GENERIC_SIMPLE_APP, LxsessionGenericSimpleAppPrivate))
enum  {
	LXSESSION_GENERIC_SIMPLE_APP_DUMMY_PROPERTY,
	LXSESSION_GENERIC_SIMPLE_APP_SETTINGS_COMMAND
};
LxsessionGenericSimpleApp* lxsession_generic_simple_app_new (const gchar* argument);
LxsessionGenericSimpleApp* lxsession_generic_simple_app_construct (GType object_type, const gchar* argument);
void lxsession_generic_simple_app_set_settings_command (LxsessionGenericSimpleApp* self, const gchar* value);
static void lxsession_generic_simple_app_real_read_settings (LxsessionAppObject* base);
const gchar* lxsession_generic_simple_app_get_settings_command (LxsessionGenericSimpleApp* self);
static void lxsession_generic_simple_app_finalize (GObject* obj);
static void _vala_lxsession_generic_simple_app_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_lxsession_generic_simple_app_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
GType lxsession_windows_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_WINDOWS_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_WINDOWS_MANAGER_APP, LxsessionWindowsManagerAppPrivate))
enum  {
	LXSESSION_WINDOWS_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionWindowsManagerApp* lxsession_windows_manager_app_new (void);
LxsessionWindowsManagerApp* lxsession_windows_manager_app_construct (GType object_type);
static void lxsession_windows_manager_app_real_read_settings (LxsessionAppObject* base);
GType lxsession_lxsession_config_get_type (void) G_GNUC_CONST;
GType lxsession_lxsession_config_key_file_get_type (void) G_GNUC_CONST;
gchar* lxsession_lxsession_config_get_item_string (LxsessionLxsessionConfig* self, const gchar* categorie, const gchar* key1, const gchar* key2);
static gchar* lxsession_windows_manager_app_find_window_manager (LxsessionWindowsManagerApp* self);
static void lxsession_windows_manager_app_callback_pid (LxsessionWindowsManagerApp* self, GPid pid, gint status);
void lxsession_lxsession_config_set_generic_default (LxsessionLxsessionConfig* self, const gchar* categorie, const gchar* key1, const gchar* key2, const gchar* type, const gchar* default_value);
void lxsession_windows_manager_app_launch (LxsessionWindowsManagerApp* self);
static void _lxsession_windows_manager_app_callback_pid_gchild_watch_func (GPid pid, gint status, gpointer self);
static void lxsession_windows_manager_app_finalize (GObject* obj);
GType lxsession_panel_app_get_type (void) G_GNUC_CONST;
enum  {
	LXSESSION_PANEL_APP_DUMMY_PROPERTY
};
LxsessionPanelApp* lxsession_panel_app_new (void);
LxsessionPanelApp* lxsession_panel_app_construct (GType object_type);
static void lxsession_panel_app_real_read_config_settings (LxsessionAppObject* base);
static void lxsession_panel_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_panel_app_finalize (GObject* obj);
GType lxsession_dock_app_get_type (void) G_GNUC_CONST;
enum  {
	LXSESSION_DOCK_APP_DUMMY_PROPERTY
};
LxsessionDockApp* lxsession_dock_app_new (void);
LxsessionDockApp* lxsession_dock_app_construct (GType object_type);
static void lxsession_dock_app_real_read_config_settings (LxsessionAppObject* base);
GType lxsession_screensaver_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_SCREENSAVER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_SCREENSAVER_APP, LxsessionScreensaverAppPrivate))
enum  {
	LXSESSION_SCREENSAVER_APP_DUMMY_PROPERTY
};
LxsessionScreensaverApp* lxsession_screensaver_app_new (void);
LxsessionScreensaverApp* lxsession_screensaver_app_construct (GType object_type);
static void lxsession_screensaver_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_screensaver_app_finalize (GObject* obj);
GType lxsession_power_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_POWER_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_POWER_MANAGER_APP, LxsessionPowerManagerAppPrivate))
enum  {
	LXSESSION_POWER_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionPowerManagerApp* lxsession_power_manager_app_new (void);
LxsessionPowerManagerApp* lxsession_power_manager_app_construct (GType object_type);
static void lxsession_power_manager_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_power_manager_app_finalize (GObject* obj);
GType lxsession_file_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_FILE_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_FILE_MANAGER_APP, LxsessionFileManagerAppPrivate))
enum  {
	LXSESSION_FILE_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionFileManagerApp* lxsession_file_manager_app_new (void);
LxsessionFileManagerApp* lxsession_file_manager_app_construct (GType object_type);
static void lxsession_file_manager_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_file_manager_app_finalize (GObject* obj);
GType lxsession_desktop_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_DESKTOP_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_DESKTOP_APP, LxsessionDesktopAppPrivate))
enum  {
	LXSESSION_DESKTOP_APP_DUMMY_PROPERTY
};
LxsessionDesktopApp* lxsession_desktop_app_new (void);
LxsessionDesktopApp* lxsession_desktop_app_construct (GType object_type);
static void lxsession_desktop_app_real_read_settings (LxsessionAppObject* base);
void lxsession_desktop_app_launch_settings (LxsessionDesktopApp* self);
static gchar** _vala_array_dup2 (gchar** self, int length);
static void lxsession_desktop_app_finalize (GObject* obj);
GType lxsession_polkit_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_POLKIT_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_POLKIT_APP, LxsessionPolkitAppPrivate))
enum  {
	LXSESSION_POLKIT_APP_DUMMY_PROPERTY
};
LxsessionPolkitApp* lxsession_polkit_app_new (void);
LxsessionPolkitApp* lxsession_polkit_app_construct (GType object_type);
static void lxsession_polkit_app_real_read_settings (LxsessionAppObject* base);
void lxsession_polkit_app_deactivate (LxsessionPolkitApp* self);
static void lxsession_polkit_app_finalize (GObject* obj);
GType lxsession_network_gui_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_NETWORK_GUI_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_NETWORK_GUI_APP, LxsessionNetworkGuiAppPrivate))
enum  {
	LXSESSION_NETWORK_GUI_APP_DUMMY_PROPERTY
};
LxsessionNetworkGuiApp* lxsession_network_gui_app_new (void);
LxsessionNetworkGuiApp* lxsession_network_gui_app_construct (GType object_type);
static void lxsession_network_gui_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_network_gui_app_finalize (GObject* obj);
GType lxsession_audio_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_AUDIO_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_AUDIO_MANAGER_APP, LxsessionAudioManagerAppPrivate))
enum  {
	LXSESSION_AUDIO_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionAudioManagerApp* lxsession_audio_manager_app_new (void);
LxsessionAudioManagerApp* lxsession_audio_manager_app_construct (GType object_type);
static void lxsession_audio_manager_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_audio_manager_app_finalize (GObject* obj);
GType lxsession_quit_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_QUIT_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_QUIT_MANAGER_APP, LxsessionQuitManagerAppPrivate))
enum  {
	LXSESSION_QUIT_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionQuitManagerApp* lxsession_quit_manager_app_new (void);
LxsessionQuitManagerApp* lxsession_quit_manager_app_construct (GType object_type);
static void lxsession_quit_manager_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_quit_manager_app_finalize (GObject* obj);
GType lxsession_workspace_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_WORKSPACE_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_WORKSPACE_MANAGER_APP, LxsessionWorkspaceManagerAppPrivate))
enum  {
	LXSESSION_WORKSPACE_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionWorkspaceManagerApp* lxsession_workspace_manager_app_new (void);
LxsessionWorkspaceManagerApp* lxsession_workspace_manager_app_construct (GType object_type);
static void lxsession_workspace_manager_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_workspace_manager_app_finalize (GObject* obj);
GType lxsession_launcher_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_LAUNCHER_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_LAUNCHER_MANAGER_APP, LxsessionLauncherManagerAppPrivate))
enum  {
	LXSESSION_LAUNCHER_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionLauncherManagerApp* lxsession_launcher_manager_app_new (void);
LxsessionLauncherManagerApp* lxsession_launcher_manager_app_construct (GType object_type);
static void lxsession_launcher_manager_app_real_read_settings (LxsessionAppObject* base);
void lxsession_launcher_manager_app_autostart_launch (LxsessionLauncherManagerApp* self);
void lxsession_lxsession_spawn_command_line_async (const gchar* command_line);
static void lxsession_launcher_manager_app_finalize (GObject* obj);
GType lxsession_terminal_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_TERMINAL_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_TERMINAL_MANAGER_APP, LxsessionTerminalManagerAppPrivate))
enum  {
	LXSESSION_TERMINAL_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionTerminalManagerApp* lxsession_terminal_manager_app_new (void);
LxsessionTerminalManagerApp* lxsession_terminal_manager_app_construct (GType object_type);
static void lxsession_terminal_manager_app_real_read_config_settings (LxsessionAppObject* base);
static void lxsession_terminal_manager_app_real_read_settings (LxsessionAppObject* base);
void lxsession_terminal_manager_app_launch (LxsessionTerminalManagerApp* self, const gchar* argument);
static void lxsession_terminal_manager_app_finalize (GObject* obj);
GType lxsession_proxy_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_PROXY_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_PROXY_MANAGER_APP, LxsessionProxyManagerAppPrivate))
enum  {
	LXSESSION_PROXY_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionProxyManagerApp* lxsession_proxy_manager_app_new (void);
LxsessionProxyManagerApp* lxsession_proxy_manager_app_construct (GType object_type);
static void lxsession_proxy_manager_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_proxy_manager_app_finalize (GObject* obj);
GType lxsession_a11y_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_A11Y_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_A11Y_APP, LxsessionA11yAppPrivate))
enum  {
	LXSESSION_A11Y_APP_DUMMY_PROPERTY
};
LxsessionA11yApp* lxsession_a11y_app_new (void);
LxsessionA11yApp* lxsession_a11y_app_construct (GType object_type);
static void lxsession_a11y_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_a11y_app_finalize (GObject* obj);
GType lxsession_xrandr_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_XRANDR_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_XRANDR_APP, LxsessionXrandrAppPrivate))
enum  {
	LXSESSION_XRANDR_APP_DUMMY_PROPERTY
};
LxsessionXrandrApp* lxsession_xrandr_app_new (void);
LxsessionXrandrApp* lxsession_xrandr_app_construct (GType object_type);
static void lxsession_xrandr_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_xrandr_app_finalize (GObject* obj);
GType lxsession_keyring_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_KEYRING_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_KEYRING_APP, LxsessionKeyringAppPrivate))
enum  {
	LXSESSION_KEYRING_APP_DUMMY_PROPERTY
};
LxsessionKeyringApp* lxsession_keyring_app_new (void);
LxsessionKeyringApp* lxsession_keyring_app_construct (GType object_type);
static void lxsession_keyring_app_real_read_settings (LxsessionAppObject* base);
static void lxsession_keyring_app_finalize (GObject* obj);
GType lxsession_screenshot_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_SCREENSHOT_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_SCREENSHOT_MANAGER_APP, LxsessionScreenshotManagerAppPrivate))
enum  {
	LXSESSION_SCREENSHOT_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionScreenshotManagerApp* lxsession_screenshot_manager_app_new (void);
LxsessionScreenshotManagerApp* lxsession_screenshot_manager_app_construct (GType object_type);
static void lxsession_screenshot_manager_app_real_read_settings (LxsessionAppObject* base);
void lxsession_screenshot_manager_app_window_launch (LxsessionScreenshotManagerApp* self);
static gchar** _vala_array_dup3 (gchar** self, int length);
static void lxsession_screenshot_manager_app_finalize (GObject* obj);
GType lxsession_updates_manager_app_get_type (void) G_GNUC_CONST;
GType lxsession_icon_object_get_type (void) G_GNUC_CONST;
GType lxsession_menu_object_get_type (void) G_GNUC_CONST;
#define LXSESSION_UPDATES_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_UPDATES_MANAGER_APP, LxsessionUpdatesManagerAppPrivate))
enum  {
	LXSESSION_UPDATES_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionUpdatesManagerApp* lxsession_updates_manager_app_new (void);
LxsessionUpdatesManagerApp* lxsession_updates_manager_app_construct (GType object_type);
static void lxsession_updates_manager_app_real_read_settings (LxsessionAppObject* base);
void lxsession_updates_manager_app_setup_apt_config (LxsessionUpdatesManagerApp* self);
void lxsession_updates_manager_app_setup_reboot_config (LxsessionUpdatesManagerApp* self);
void lxsession_updates_manager_app_run_check (LxsessionUpdatesManagerApp* self);
void lxsession_updates_manager_app_test_inactivate (LxsessionUpdatesManagerApp* self);
void lxsession_icon_object_inactivate (LxsessionIconObject* self);
void lxsession_updates_manager_app_test_activate (LxsessionUpdatesManagerApp* self);
void lxsession_icon_object_activate (LxsessionIconObject* self);
gboolean lxsession_updates_manager_app_check_lock_file (LxsessionUpdatesManagerApp* self, const gchar* check_file);
gboolean lxsession_updates_manager_app_on_apt_update_file_change (LxsessionUpdatesManagerApp* self);
static gboolean _lxsession_updates_manager_app_on_apt_update_file_change_gsource_func (gpointer self);
void lxsession_updates_manager_app_reboot_launch (LxsessionUpdatesManagerApp* self);
GType lxsession_session_object_get_type (void) G_GNUC_CONST;
LxsessionSessionObject* lxsession_session_object_new (void);
LxsessionSessionObject* lxsession_session_object_construct (GType object_type);
void lxsession_session_object_lxsession_restart (LxsessionSessionObject* self);
void lxsession_updates_manager_app_run_check_reboot (LxsessionUpdatesManagerApp* self);
LxsessionMenuObject* lxsession_menu_object_new (void);
LxsessionMenuObject* lxsession_menu_object_construct (GType object_type);
GType lxsession_menu_item_object_get_type (void) G_GNUC_CONST;
LxsessionMenuItemObject* lxsession_menu_item_object_new (void);
LxsessionMenuItemObject* lxsession_menu_item_object_construct (GType object_type);
static void ____lambda11_ (LxsessionUpdatesManagerApp* self);
static void _____lambda11__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
LxsessionIconObject* lxsession_icon_object_new (const gchar* name_param, const gchar* icon_name_param, const gchar* notification_param, LxsessionMenuObject* menu_param);
LxsessionIconObject* lxsession_icon_object_construct (GType object_type, const gchar* name_param, const gchar* icon_name_param, const gchar* notification_param, LxsessionMenuObject* menu_param);
void lxsession_icon_object_init (LxsessionIconObject* self);
void lxsession_icon_object_clear_actions (LxsessionIconObject* self);
void lxsession_icon_object_add_action (LxsessionIconObject* self, const gchar* action, const gchar* label, LxsessionIconObjectActionCallback callback, void* callback_target, GDestroyNotify callback_target_destroy_notify);
static void ____lambda12_ (LxsessionUpdatesManagerApp* self);
static void _____lambda12__lxsession_icon_object_action_callback (gpointer self);
void lxsession_updates_manager_app_language_launch (LxsessionUpdatesManagerApp* self);
void lxsession_updates_manager_app_check_language_support (LxsessionUpdatesManagerApp* self);
static void _____lambda9_ (LxsessionUpdatesManagerApp* self);
static void ______lambda9__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
static void _____lambda10_ (LxsessionUpdatesManagerApp* self);
static void ______lambda10__lxsession_icon_object_action_callback (gpointer self);
void lxsession_updates_manager_app_upgrade_launch (LxsessionUpdatesManagerApp* self, const gchar* upgrade_manager_command);
static Block1Data* block1_data_ref (Block1Data* _data1_);
static void block1_data_unref (void * _userdata_);
static void ____lambda5_ (Block1Data* _data1_);
static void _____lambda5__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
static void ____lambda6_ (Block1Data* _data1_);
static void _____lambda6__lxsession_icon_object_action_callback (gpointer self);
void lxsession_icon_object_set_notification_body (LxsessionIconObject* self, const gchar* text);
void lxsession_icon_object_set_icon (LxsessionIconObject* self, const gchar* param_icon_name);
static void ___lambda7_ (LxsessionUpdatesManagerApp* self);
static void ____lambda7__lxsession_icon_object_action_callback (gpointer self);
static void ___lambda8_ (LxsessionUpdatesManagerApp* self);
static void ____lambda8__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
void lxsession_icon_object_set_menu (LxsessionIconObject* self, LxsessionMenuObject* param_menu);
static void _lxsession_updates_manager_app_run_check_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self);
static void _lxsession_updates_manager_app_run_check_reboot_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self);
static void lxsession_updates_manager_app_finalize (GObject* obj);
GType lxsession_crash_manager_app_get_type (void) G_GNUC_CONST;
#define LXSESSION_CRASH_MANAGER_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LXSESSION_TYPE_CRASH_MANAGER_APP, LxsessionCrashManagerAppPrivate))
enum  {
	LXSESSION_CRASH_MANAGER_APP_DUMMY_PROPERTY
};
LxsessionCrashManagerApp* lxsession_crash_manager_app_new (void);
LxsessionCrashManagerApp* lxsession_crash_manager_app_construct (GType object_type);
static void lxsession_crash_manager_app_real_read_settings (LxsessionAppObject* base);
void lxsession_crash_manager_app_setup_crash_log_config (LxsessionCrashManagerApp* self);
void lxsession_crash_manager_app_run_crash_check (LxsessionCrashManagerApp* self);
void lxsession_crash_manager_app_test_activate (LxsessionCrashManagerApp* self);
void lxsession_crash_manager_app_test_inactivate (LxsessionCrashManagerApp* self);
static void _lxsession_crash_manager_app_run_crash_check_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self);
gboolean lxsession_crash_manager_app_on_crash_file_change (LxsessionCrashManagerApp* self);
static gboolean _lxsession_crash_manager_app_on_crash_file_change_gsource_func (gpointer self);
GList* lxsession_crash_manager_app_check_crash_file (LxsessionCrashManagerApp* self);
static void _vala_array_add1 (gchar*** array, int* length, int* size, gchar* value);
static void _g_free0_ (gpointer var);
static void _g_list_free__g_free0_ (GList* self);
static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle);
void lxsession_crash_manager_app_crash_report_launch (LxsessionCrashManagerApp* self, const gchar* command);
LxsessionMenuObject* lxsession_crash_manager_app_build_menu (LxsessionCrashManagerApp* self, GList* crash_list);
static Block2Data* block2_data_ref (Block2Data* _data2_);
static void block2_data_unref (void * _userdata_);
static void _____lambda13_ (Block2Data* _data2_);
static void ______lambda13__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
static Block3Data* block3_data_ref (Block3Data* _data3_);
static void block3_data_unref (void * _userdata_);
static void ____lambda14_ (Block3Data* _data3_);
static void _____lambda14__lxsession_icon_object_action_callback (gpointer self);
static void lxsession_crash_manager_app_finalize (GObject* obj);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
static gint _vala_array_length (gpointer array);


LxsessionAppObject* lxsession_app_object_construct (GType object_type) {
	LxsessionAppObject * self = NULL;
	self = (LxsessionAppObject*) g_object_new (object_type, NULL);
	lxsession_app_object_init (self);
	return self;
}


LxsessionAppObject* lxsession_app_object_new (void) {
	return lxsession_app_object_construct (LXSESSION_TYPE_APP_OBJECT);
}


void lxsession_app_object_launch (LxsessionAppObject* self) {
	g_return_if_fail (self != NULL);
	lxsession_app_object_generic_launch (self, NULL);
}


static void _lxsession_app_object_callback_pid_gchild_watch_func (GPid pid, gint status, gpointer self) {
	lxsession_app_object_callback_pid ((LxsessionAppObject*) self, pid, status);
}


void lxsession_app_object_generic_launch (LxsessionAppObject* self, const gchar* arg1) {
	const gchar* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_name;
	if (_tmp0_ != NULL) {
		const gchar* _tmp1_ = NULL;
		_tmp1_ = self->priv->_name;
		if (g_strcmp0 (_tmp1_, "") != 0) {
			{
				gchar** spawn_env = NULL;
				gchar** _tmp2_ = NULL;
				gchar** _tmp3_ = NULL;
				gint spawn_env_length1 = 0;
				gint _spawn_env_size_ = 0;
				const gchar* _tmp4_ = NULL;
				gchar** _tmp5_ = NULL;
				gint _tmp5__length1 = 0;
				gchar** _tmp6_ = NULL;
				gint _tmp6__length1 = 0;
				gchar** _tmp7_ = NULL;
				gint _tmp7__length1 = 0;
				GPid _tmp8_ = 0;
				GPid _tmp9_ = 0;
				const gchar* _tmp10_ = NULL;
				FILE* _tmp21_ = NULL;
				_tmp3_ = _tmp2_ = g_get_environ ();
				spawn_env = _tmp3_;
				spawn_env_length1 = _vala_array_length (_tmp2_);
				_spawn_env_size_ = spawn_env_length1;
				_tmp4_ = arg1;
				_tmp5_ = lxsession_app_object_get_command (self, &_tmp5__length1);
				_tmp6_ = _tmp5_;
				_tmp6__length1 = _tmp5__length1;
				_tmp7_ = spawn_env;
				_tmp7__length1 = spawn_env_length1;
				g_spawn_async (_tmp4_, _tmp6_, _tmp7_, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, &_tmp8_, &_inner_error_);
				self->pid = _tmp8_;
				if (G_UNLIKELY (_inner_error_ != NULL)) {
					spawn_env = (_vala_array_free (spawn_env, spawn_env_length1, (GDestroyNotify) g_free), NULL);
					if (_inner_error_->domain == G_SPAWN_ERROR) {
						goto __catch2_g_spawn_error;
					}
					spawn_env = (_vala_array_free (spawn_env, spawn_env_length1, (GDestroyNotify) g_free), NULL);
					g_critical ("file %s: line %d: unexpected 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;
				}
				_tmp9_ = self->pid;
				g_child_watch_add_full (G_PRIORITY_DEFAULT_IDLE, _tmp9_, _lxsession_app_object_callback_pid_gchild_watch_func, g_object_ref (self), g_object_unref);
				_tmp10_ = self->priv->_name;
				g_message ("app.vala:76: Launching %s ", _tmp10_);
				{
					gint a = 0;
					a = 0;
					{
						gboolean _tmp11_ = FALSE;
						_tmp11_ = TRUE;
						while (TRUE) {
							gint _tmp13_ = 0;
							gchar** _tmp14_ = NULL;
							gint _tmp14__length1 = 0;
							gchar** _tmp15_ = NULL;
							gint _tmp15__length1 = 0;
							FILE* _tmp16_ = NULL;
							gchar** _tmp17_ = NULL;
							gint _tmp17__length1 = 0;
							gchar** _tmp18_ = NULL;
							gint _tmp18__length1 = 0;
							gint _tmp19_ = 0;
							const gchar* _tmp20_ = NULL;
							if (!_tmp11_) {
								gint _tmp12_ = 0;
								_tmp12_ = a;
								a = _tmp12_ + 1;
							}
							_tmp11_ = FALSE;
							_tmp13_ = a;
							_tmp14_ = lxsession_app_object_get_command (self, &_tmp14__length1);
							_tmp15_ = _tmp14_;
							_tmp15__length1 = _tmp14__length1;
							if (!(_tmp13_ <= _tmp15__length1)) {
								break;
							}
							_tmp16_ = stdout;
							_tmp17_ = lxsession_app_object_get_command (self, &_tmp17__length1);
							_tmp18_ = _tmp17_;
							_tmp18__length1 = _tmp17__length1;
							_tmp19_ = a;
							_tmp20_ = _tmp18_[_tmp19_];
							fprintf (_tmp16_, "%s ", _tmp20_);
						}
					}
				}
				_tmp21_ = stdout;
				fprintf (_tmp21_, "\n");
				spawn_env = (_vala_array_free (spawn_env, spawn_env_length1, (GDestroyNotify) g_free), NULL);
			}
			goto __finally2;
			__catch2_g_spawn_error:
			{
				GError* err = NULL;
				GError* _tmp22_ = NULL;
				const gchar* _tmp23_ = NULL;
				const gchar* _tmp24_ = NULL;
				err = _inner_error_;
				_inner_error_ = NULL;
				_tmp22_ = err;
				_tmp23_ = _tmp22_->message;
				g_warning ("app.vala:86: %s", _tmp23_);
				_tmp24_ = self->priv->_name;
				g_warning ("app.vala:87: Error when launching %s", _tmp24_);
				_g_error_free0 (err);
			}
			__finally2:
			if (G_UNLIKELY (_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 void lxsession_app_object_real_read_config_settings (LxsessionAppObject* self) {
}


void lxsession_app_object_read_config_settings (LxsessionAppObject* self) {
	g_return_if_fail (self != NULL);
	LXSESSION_APP_OBJECT_GET_CLASS (self)->read_config_settings (self);
}


static void lxsession_app_object_real_read_settings (LxsessionAppObject* self) {
}


void lxsession_app_object_read_settings (LxsessionAppObject* self) {
	g_return_if_fail (self != NULL);
	LXSESSION_APP_OBJECT_GET_CLASS (self)->read_settings (self);
}


void lxsession_app_object_stop (LxsessionAppObject* self) {
	GPid _tmp0_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->pid;
	if (((gint) _tmp0_) != 0) {
		GPid _tmp1_ = 0;
		GPid _tmp2_ = 0;
		_tmp1_ = self->pid;
		g_message ("app.vala:107: Stopping process with pid %d", (gint) _tmp1_);
		_tmp2_ = self->pid;
		kill ((pid_t) ((gint) _tmp2_), 15);
	}
}


void lxsession_app_object_reload (LxsessionAppObject* self) {
	g_return_if_fail (self != NULL);
	g_message ("app.vala:114: Reloading process");
	lxsession_app_object_stop (self);
	lxsession_app_object_launch (self);
}


void lxsession_app_object_init (LxsessionAppObject* self) {
	g_return_if_fail (self != NULL);
	lxsession_app_object_read_config_settings (self);
	lxsession_app_object_read_settings (self);
}


static void lxsession_app_object_callback_pid (LxsessionAppObject* self, GPid pid, gint status) {
	const gchar* _tmp0_ = NULL;
	gint _tmp1_ = 0;
	GPid _tmp2_ = 0;
	gboolean _tmp3_ = FALSE;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_name;
	_tmp1_ = status;
	g_message ("app.vala:130: %s exit with this type of exit: %i", _tmp0_, _tmp1_);
	_tmp2_ = pid;
	g_spawn_close_pid (_tmp2_);
	_tmp3_ = self->priv->_guard;
	if (_tmp3_ == TRUE) {
		gint _tmp4_ = 0;
		_tmp4_ = status;
		switch (_tmp4_) {
			case 0:
			{
				g_message ("app.vala:139: Exit normal, don't reload");
				break;
			}
			case 15:
			{
				g_message ("app.vala:142: Exit by the user, don't reload");
				break;
			}
			case 256:
			{
				g_message ("app.vala:145: Exit normal, don't reload");
				break;
			}
			default:
			{
				gint _tmp5_ = 0;
				gint _tmp6_ = 0;
				gint _tmp7_ = 0;
				g_message ("app.vala:148: Exit not normal, try to reload");
				_tmp5_ = self->priv->_crash_count;
				lxsession_app_object_set_crash_count (self, _tmp5_ + 1);
				_tmp6_ = self->priv->_crash_count;
				_tmp7_ = self->priv->_stop_reload;
				if (_tmp6_ <= _tmp7_) {
					lxsession_app_object_launch (self);
				} else {
					g_message ("app.vala:156: Application crashed too much, stop reloading");
				}
				break;
			}
		}
	}
}


const gchar* lxsession_app_object_get_name (LxsessionAppObject* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_name;
	result = _tmp0_;
	return result;
}


void lxsession_app_object_set_name (LxsessionAppObject* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_name);
	self->priv->_name = _tmp1_;
	g_object_notify ((GObject *) self, "name");
}


gchar** lxsession_app_object_get_command (LxsessionAppObject* self, int* result_length1) {
	gchar** result;
	gchar** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	gchar** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_command;
	_tmp0__length1 = self->priv->_command_length1;
	_tmp1_ = _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	if (result_length1) {
		*result_length1 = _tmp1__length1;
	}
	result = _tmp1_;
	return result;
}


static gchar** _vala_array_dup1 (gchar** self, int length) {
	gchar** result;
	int i;
	result = g_new0 (gchar*, length + 1);
	for (i = 0; i < length; i++) {
		gchar* _tmp0_ = NULL;
		_tmp0_ = g_strdup (self[i]);
		result[i] = _tmp0_;
	}
	return result;
}


void lxsession_app_object_set_command (LxsessionAppObject* self, gchar** value, int value_length1) {
	gchar** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	gchar** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp0__length1 = value_length1;
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup1 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
	_tmp1__length1 = _tmp0__length1;
	self->priv->_command = (_vala_array_free (self->priv->_command, self->priv->_command_length1, (GDestroyNotify) g_free), NULL);
	self->priv->_command = _tmp1_;
	self->priv->_command_length1 = _tmp1__length1;
	self->priv->__command_size_ = self->priv->_command_length1;
	g_object_notify ((GObject *) self, "command");
}


gboolean lxsession_app_object_get_guard (LxsessionAppObject* self) {
	gboolean result;
	gboolean _tmp0_ = FALSE;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->_guard;
	result = _tmp0_;
	return result;
}


void lxsession_app_object_set_guard (LxsessionAppObject* self, gboolean value) {
	gboolean _tmp0_ = FALSE;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	self->priv->_guard = _tmp0_;
	g_object_notify ((GObject *) self, "guard");
}


const gchar* lxsession_app_object_get_application_type (LxsessionAppObject* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_application_type;
	result = _tmp0_;
	return result;
}


void lxsession_app_object_set_application_type (LxsessionAppObject* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_application_type);
	self->priv->_application_type = _tmp1_;
	g_object_notify ((GObject *) self, "application-type");
}


gint lxsession_app_object_get_crash_count (LxsessionAppObject* self) {
	gint result;
	gint _tmp0_ = 0;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->_crash_count;
	result = _tmp0_;
	return result;
}


void lxsession_app_object_set_crash_count (LxsessionAppObject* self, gint value) {
	gint _tmp0_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	self->priv->_crash_count = _tmp0_;
	g_object_notify ((GObject *) self, "crash-count");
}


gint lxsession_app_object_get_stop_reload (LxsessionAppObject* self) {
	gint result;
	gint _tmp0_ = 0;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->_stop_reload;
	result = _tmp0_;
	return result;
}


void lxsession_app_object_set_stop_reload (LxsessionAppObject* self, gint value) {
	gint _tmp0_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	self->priv->_stop_reload = _tmp0_;
	g_object_notify ((GObject *) self, "stop-reload");
}


static void lxsession_app_object_class_init (LxsessionAppObjectClass * klass) {
	lxsession_app_object_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionAppObjectPrivate));
	((LxsessionAppObjectClass *) klass)->read_config_settings = lxsession_app_object_real_read_config_settings;
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_app_object_real_read_settings;
	G_OBJECT_CLASS (klass)->get_property = _vala_lxsession_app_object_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_lxsession_app_object_set_property;
	G_OBJECT_CLASS (klass)->finalize = lxsession_app_object_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_APP_OBJECT_NAME, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_APP_OBJECT_COMMAND, g_param_spec_boxed ("command", "command", "command", G_TYPE_STRV, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_APP_OBJECT_GUARD, g_param_spec_boolean ("guard", "guard", "guard", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_APP_OBJECT_APPLICATION_TYPE, g_param_spec_string ("application-type", "application-type", "application-type", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_APP_OBJECT_CRASH_COUNT, g_param_spec_int ("crash-count", "crash-count", "crash-count", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_APP_OBJECT_STOP_RELOAD, g_param_spec_int ("stop-reload", "stop-reload", "stop-reload", G_MININT, G_MAXINT, 5, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}


static void lxsession_app_object_instance_init (LxsessionAppObject * self) {
	self->priv = LXSESSION_APP_OBJECT_GET_PRIVATE (self);
	self->priv->_guard = FALSE;
	self->priv->_crash_count = 0;
	self->priv->_stop_reload = 5;
}


static void lxsession_app_object_finalize (GObject* obj) {
	LxsessionAppObject * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_APP_OBJECT, LxsessionAppObject);
	_g_free0 (self->priv->_name);
	self->priv->_command = (_vala_array_free (self->priv->_command, self->priv->_command_length1, (GDestroyNotify) g_free), NULL);
	_g_free0 (self->priv->_application_type);
	G_OBJECT_CLASS (lxsession_app_object_parent_class)->finalize (obj);
}


GType lxsession_app_object_get_type (void) {
	static volatile gsize lxsession_app_object_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_app_object_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionAppObjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_app_object_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionAppObject), 0, (GInstanceInitFunc) lxsession_app_object_instance_init, NULL };
		GType lxsession_app_object_type_id;
		lxsession_app_object_type_id = g_type_register_static (G_TYPE_OBJECT, "LxsessionAppObject", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_app_object_type_id__volatile, lxsession_app_object_type_id);
	}
	return lxsession_app_object_type_id__volatile;
}


static void _vala_lxsession_app_object_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	LxsessionAppObject * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, LXSESSION_TYPE_APP_OBJECT, LxsessionAppObject);
	switch (property_id) {
		case LXSESSION_APP_OBJECT_NAME:
		g_value_set_string (value, lxsession_app_object_get_name (self));
		break;
		case LXSESSION_APP_OBJECT_COMMAND:
		{
			int length;
			g_value_set_boxed (value, lxsession_app_object_get_command (self, &length));
		}
		break;
		case LXSESSION_APP_OBJECT_GUARD:
		g_value_set_boolean (value, lxsession_app_object_get_guard (self));
		break;
		case LXSESSION_APP_OBJECT_APPLICATION_TYPE:
		g_value_set_string (value, lxsession_app_object_get_application_type (self));
		break;
		case LXSESSION_APP_OBJECT_CRASH_COUNT:
		g_value_set_int (value, lxsession_app_object_get_crash_count (self));
		break;
		case LXSESSION_APP_OBJECT_STOP_RELOAD:
		g_value_set_int (value, lxsession_app_object_get_stop_reload (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_lxsession_app_object_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	LxsessionAppObject * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, LXSESSION_TYPE_APP_OBJECT, LxsessionAppObject);
	switch (property_id) {
		case LXSESSION_APP_OBJECT_NAME:
		lxsession_app_object_set_name (self, g_value_get_string (value));
		break;
		case LXSESSION_APP_OBJECT_COMMAND:
		{
			gpointer boxed;
			boxed = g_value_get_boxed (value);
			lxsession_app_object_set_command (self, boxed, (boxed == NULL) ? 0 : g_strv_length (boxed));
		}
		break;
		case LXSESSION_APP_OBJECT_GUARD:
		lxsession_app_object_set_guard (self, g_value_get_boolean (value));
		break;
		case LXSESSION_APP_OBJECT_APPLICATION_TYPE:
		lxsession_app_object_set_application_type (self, g_value_get_string (value));
		break;
		case LXSESSION_APP_OBJECT_CRASH_COUNT:
		lxsession_app_object_set_crash_count (self, g_value_get_int (value));
		break;
		case LXSESSION_APP_OBJECT_STOP_RELOAD:
		lxsession_app_object_set_stop_reload (self, g_value_get_int (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


LxsessionSimpleAppObject* lxsession_simple_app_object_construct (GType object_type) {
	LxsessionSimpleAppObject * self = NULL;
	gchar* _tmp0_ = NULL;
	gchar** _tmp1_ = NULL;
	gchar** _tmp2_ = NULL;
	gint _tmp2__length1 = 0;
	self = (LxsessionSimpleAppObject*) lxsession_app_object_construct (object_type);
	lxsession_app_object_set_name ((LxsessionAppObject*) self, "");
	_tmp0_ = g_strdup ("");
	_tmp1_ = g_new0 (gchar*, 1 + 1);
	_tmp1_[0] = _tmp0_;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = 1;
	lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp2_, 1);
	_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
	lxsession_app_object_set_guard ((LxsessionAppObject*) self, FALSE);
	lxsession_app_object_set_application_type ((LxsessionAppObject*) self, "");
	return self;
}


LxsessionSimpleAppObject* lxsession_simple_app_object_new (void) {
	return lxsession_simple_app_object_construct (LXSESSION_TYPE_SIMPLE_APP_OBJECT);
}


static void lxsession_simple_app_object_class_init (LxsessionSimpleAppObjectClass * klass) {
	lxsession_simple_app_object_parent_class = g_type_class_peek_parent (klass);
}


static void lxsession_simple_app_object_instance_init (LxsessionSimpleAppObject * self) {
}


GType lxsession_simple_app_object_get_type (void) {
	static volatile gsize lxsession_simple_app_object_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_simple_app_object_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionSimpleAppObjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_simple_app_object_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionSimpleAppObject), 0, (GInstanceInitFunc) lxsession_simple_app_object_instance_init, NULL };
		GType lxsession_simple_app_object_type_id;
		lxsession_simple_app_object_type_id = g_type_register_static (LXSESSION_TYPE_APP_OBJECT, "LxsessionSimpleAppObject", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_simple_app_object_type_id__volatile, lxsession_simple_app_object_type_id);
	}
	return lxsession_simple_app_object_type_id__volatile;
}


LxsessionGenericAppObject* lxsession_generic_app_object_construct (GType object_type, LxsessionAppType* app_type) {
	LxsessionGenericAppObject * self = NULL;
	LxsessionAppType _tmp0_ = {0};
	const gchar* _tmp1_ = NULL;
	LxsessionAppType _tmp2_ = {0};
	gchar** _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	LxsessionAppType _tmp4_ = {0};
	gboolean _tmp5_ = FALSE;
	LxsessionAppType _tmp6_ = {0};
	const gchar* _tmp7_ = NULL;
	g_return_val_if_fail (app_type != NULL, NULL);
	self = (LxsessionGenericAppObject*) lxsession_app_object_construct (object_type);
	_tmp0_ = *app_type;
	_tmp1_ = _tmp0_.name;
	lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp1_);
	_tmp2_ = *app_type;
	_tmp3_ = _tmp2_.command;
	_tmp3__length1 = _tmp2_.command_length1;
	lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp3_, _tmp3__length1);
	_tmp4_ = *app_type;
	_tmp5_ = _tmp4_.guard;
	lxsession_app_object_set_guard ((LxsessionAppObject*) self, _tmp5_);
	_tmp6_ = *app_type;
	_tmp7_ = _tmp6_.application_type;
	lxsession_app_object_set_application_type ((LxsessionAppObject*) self, _tmp7_);
	return self;
}


LxsessionGenericAppObject* lxsession_generic_app_object_new (LxsessionAppType* app_type) {
	return lxsession_generic_app_object_construct (LXSESSION_TYPE_GENERIC_APP_OBJECT, app_type);
}


static void lxsession_generic_app_object_class_init (LxsessionGenericAppObjectClass * klass) {
	lxsession_generic_app_object_parent_class = g_type_class_peek_parent (klass);
}


static void lxsession_generic_app_object_instance_init (LxsessionGenericAppObject * self) {
}


GType lxsession_generic_app_object_get_type (void) {
	static volatile gsize lxsession_generic_app_object_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_generic_app_object_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionGenericAppObjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_generic_app_object_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionGenericAppObject), 0, (GInstanceInitFunc) lxsession_generic_app_object_instance_init, NULL };
		GType lxsession_generic_app_object_type_id;
		lxsession_generic_app_object_type_id = g_type_register_static (LXSESSION_TYPE_APP_OBJECT, "LxsessionGenericAppObject", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_generic_app_object_type_id__volatile, lxsession_generic_app_object_type_id);
	}
	return lxsession_generic_app_object_type_id__volatile;
}


LxsessionGenericSimpleApp* lxsession_generic_simple_app_construct (GType object_type, const gchar* argument) {
	LxsessionGenericSimpleApp * self = NULL;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (argument != NULL, NULL);
	self = (LxsessionGenericSimpleApp*) lxsession_simple_app_object_construct (object_type);
	_tmp0_ = argument;
	lxsession_generic_simple_app_set_settings_command (self, _tmp0_);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionGenericSimpleApp* lxsession_generic_simple_app_new (const gchar* argument) {
	return lxsession_generic_simple_app_construct (LXSESSION_TYPE_GENERIC_SIMPLE_APP, argument);
}


static void lxsession_generic_simple_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionGenericSimpleApp * self;
	gchar** create_command = NULL;
	const gchar* _tmp0_ = NULL;
	gchar** _tmp1_ = NULL;
	gchar** _tmp2_ = NULL;
	gint create_command_length1 = 0;
	gint _create_command_size_ = 0;
	const gchar* _tmp3_ = NULL;
	self = (LxsessionGenericSimpleApp*) base;
	_tmp0_ = self->priv->_settings_command;
	_tmp2_ = _tmp1_ = g_strsplit_set (_tmp0_, " ", 0);
	create_command = _tmp2_;
	create_command_length1 = _vala_array_length (_tmp1_);
	_create_command_size_ = create_command_length1;
	_tmp3_ = create_command[0];
	lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp3_);
	lxsession_app_object_set_command ((LxsessionAppObject*) self, create_command, create_command_length1);
	create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
}


const gchar* lxsession_generic_simple_app_get_settings_command (LxsessionGenericSimpleApp* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_settings_command;
	result = _tmp0_;
	return result;
}


void lxsession_generic_simple_app_set_settings_command (LxsessionGenericSimpleApp* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_settings_command);
	self->priv->_settings_command = _tmp1_;
	g_object_notify ((GObject *) self, "settings-command");
}


static void lxsession_generic_simple_app_class_init (LxsessionGenericSimpleAppClass * klass) {
	lxsession_generic_simple_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionGenericSimpleAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_generic_simple_app_real_read_settings;
	G_OBJECT_CLASS (klass)->get_property = _vala_lxsession_generic_simple_app_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_lxsession_generic_simple_app_set_property;
	G_OBJECT_CLASS (klass)->finalize = lxsession_generic_simple_app_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), LXSESSION_GENERIC_SIMPLE_APP_SETTINGS_COMMAND, g_param_spec_string ("settings-command", "settings-command", "settings-command", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}


static void lxsession_generic_simple_app_instance_init (LxsessionGenericSimpleApp * self) {
	gchar* _tmp0_ = NULL;
	self->priv = LXSESSION_GENERIC_SIMPLE_APP_GET_PRIVATE (self);
	_tmp0_ = g_strdup ("");
	self->priv->_settings_command = _tmp0_;
}


static void lxsession_generic_simple_app_finalize (GObject* obj) {
	LxsessionGenericSimpleApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_GENERIC_SIMPLE_APP, LxsessionGenericSimpleApp);
	_g_free0 (self->priv->_settings_command);
	G_OBJECT_CLASS (lxsession_generic_simple_app_parent_class)->finalize (obj);
}


GType lxsession_generic_simple_app_get_type (void) {
	static volatile gsize lxsession_generic_simple_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_generic_simple_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionGenericSimpleAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_generic_simple_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionGenericSimpleApp), 0, (GInstanceInitFunc) lxsession_generic_simple_app_instance_init, NULL };
		GType lxsession_generic_simple_app_type_id;
		lxsession_generic_simple_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionGenericSimpleApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_generic_simple_app_type_id__volatile, lxsession_generic_simple_app_type_id);
	}
	return lxsession_generic_simple_app_type_id__volatile;
}


static void _vala_lxsession_generic_simple_app_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	LxsessionGenericSimpleApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, LXSESSION_TYPE_GENERIC_SIMPLE_APP, LxsessionGenericSimpleApp);
	switch (property_id) {
		case LXSESSION_GENERIC_SIMPLE_APP_SETTINGS_COMMAND:
		g_value_set_string (value, lxsession_generic_simple_app_get_settings_command (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_lxsession_generic_simple_app_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	LxsessionGenericSimpleApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, LXSESSION_TYPE_GENERIC_SIMPLE_APP, LxsessionGenericSimpleApp);
	switch (property_id) {
		case LXSESSION_GENERIC_SIMPLE_APP_SETTINGS_COMMAND:
		lxsession_generic_simple_app_set_settings_command (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


LxsessionWindowsManagerApp* lxsession_windows_manager_app_construct (GType object_type) {
	LxsessionWindowsManagerApp * self = NULL;
	self = (LxsessionWindowsManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionWindowsManagerApp* lxsession_windows_manager_app_new (void) {
	return lxsession_windows_manager_app_construct (LXSESSION_TYPE_WINDOWS_MANAGER_APP);
}


static void lxsession_windows_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionWindowsManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gboolean _tmp3_ = FALSE;
	gchar* session_command = NULL;
	const gchar* _tmp16_ = NULL;
	self = (LxsessionWindowsManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "window_manager", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = _tmp2_ != NULL;
	_g_free0 (_tmp2_);
	if (_tmp3_) {
		gchar* _tmp4_ = NULL;
		LxsessionLxsessionConfigKeyFile* _tmp5_ = NULL;
		gchar* _tmp6_ = NULL;
		gchar* _tmp7_ = NULL;
		gchar* _tmp8_ = NULL;
		_tmp4_ = g_strdup ("simple");
		_g_free0 (self->priv->mode);
		self->priv->mode = _tmp4_;
		_tmp5_ = lxsession_global_settings;
		_tmp6_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp5_, "Session", "window_manager", NULL);
		_g_free0 (self->priv->wm_command);
		self->priv->wm_command = _tmp6_;
		_tmp7_ = g_strdup ("");
		_g_free0 (self->priv->session);
		self->priv->session = _tmp7_;
		_tmp8_ = g_strdup ("");
		_g_free0 (self->priv->extras);
		self->priv->extras = _tmp8_;
	} else {
		gchar* _tmp9_ = NULL;
		LxsessionLxsessionConfigKeyFile* _tmp10_ = NULL;
		gchar* _tmp11_ = NULL;
		LxsessionLxsessionConfigKeyFile* _tmp12_ = NULL;
		gchar* _tmp13_ = NULL;
		LxsessionLxsessionConfigKeyFile* _tmp14_ = NULL;
		gchar* _tmp15_ = NULL;
		_tmp9_ = g_strdup ("advanced");
		_g_free0 (self->priv->mode);
		self->priv->mode = _tmp9_;
		_tmp10_ = lxsession_global_settings;
		_tmp11_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp10_, "Session", "windows_manager", "command");
		_g_free0 (self->priv->wm_command);
		self->priv->wm_command = _tmp11_;
		_tmp12_ = lxsession_global_settings;
		_tmp13_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp12_, "Session", "windows_manager", "session");
		_g_free0 (self->priv->session);
		self->priv->session = _tmp13_;
		_tmp14_ = lxsession_global_settings;
		_tmp15_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp14_, "Session", "windows_manager", "extras");
		_g_free0 (self->priv->extras);
		self->priv->extras = _tmp15_;
	}
	_tmp16_ = self->priv->wm_command;
	if (g_strcmp0 (_tmp16_, "wm_safe") == 0) {
		gchar* _tmp17_ = NULL;
		gchar** _tmp18_ = NULL;
		gchar** _tmp19_ = NULL;
		gint _tmp19__length1 = 0;
		lxsession_app_object_set_name ((LxsessionAppObject*) self, "wm_safe");
		_tmp17_ = lxsession_windows_manager_app_find_window_manager (self);
		_tmp18_ = g_new0 (gchar*, 1 + 1);
		_tmp18_[0] = _tmp17_;
		_tmp19_ = _tmp18_;
		_tmp19__length1 = 1;
		lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp19_, 1);
		_tmp19_ = (_vala_array_free (_tmp19_, _tmp19__length1, (GDestroyNotify) g_free), NULL);
	} else {
		const gchar* _tmp20_ = NULL;
		_tmp20_ = self->priv->mode;
		if (g_strcmp0 (_tmp20_, "simple") == 0) {
			const gchar* _tmp21_ = NULL;
			const gchar* _tmp22_ = NULL;
			gchar* _tmp23_ = NULL;
			gchar** _tmp24_ = NULL;
			gchar** _tmp25_ = NULL;
			gint _tmp25__length1 = 0;
			_tmp21_ = self->priv->wm_command;
			lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp21_);
			_tmp22_ = self->priv->wm_command;
			_tmp23_ = g_strdup (_tmp22_);
			_tmp24_ = g_new0 (gchar*, 1 + 1);
			_tmp24_[0] = _tmp23_;
			_tmp25_ = _tmp24_;
			_tmp25__length1 = 1;
			lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp25_, 1);
			_tmp25_ = (_vala_array_free (_tmp25_, _tmp25__length1, (GDestroyNotify) g_free), NULL);
		} else {
			const gchar* _tmp26_ = NULL;
			gchar* create_command = NULL;
			gchar* xdg_config_env = NULL;
			const gchar* _tmp27_ = NULL;
			gchar* _tmp28_ = NULL;
			const gchar* _tmp29_ = NULL;
			const gchar* _tmp30_ = NULL;
			GQuark _tmp32_ = 0U;
			static GQuark _tmp31_label0 = 0;
			static GQuark _tmp31_label1 = 0;
			const gchar* _tmp52_ = NULL;
			const gchar* _tmp53_ = NULL;
			GQuark _tmp55_ = 0U;
			static GQuark _tmp54_label0 = 0;
			static GQuark _tmp54_label1 = 0;
			static GQuark _tmp54_label2 = 0;
			const gchar* _tmp73_ = NULL;
			gchar** _tmp74_ = NULL;
			gchar** _tmp75_ = NULL;
			gchar** _tmp76_ = NULL;
			gint _tmp76__length1 = 0;
			_tmp26_ = self->priv->wm_command;
			lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp26_);
			_tmp27_ = g_getenv ("XDG_CONFIG_HOME");
			_tmp28_ = g_strdup (_tmp27_);
			xdg_config_env = _tmp28_;
			_tmp29_ = self->priv->wm_command;
			_tmp30_ = _tmp29_;
			_tmp32_ = (NULL == _tmp30_) ? 0 : g_quark_from_string (_tmp30_);
			if (_tmp32_ == ((0 != _tmp31_label0) ? _tmp31_label0 : (_tmp31_label0 = g_quark_from_static_string ("openbox")))) {
				switch (0) {
					default:
					{
						const gchar* _tmp33_ = NULL;
						const gchar* _tmp34_ = NULL;
						GQuark _tmp36_ = 0U;
						static GQuark _tmp35_label0 = 0;
						static GQuark _tmp35_label1 = 0;
						_tmp33_ = self->priv->session;
						_tmp34_ = _tmp33_;
						_tmp36_ = (NULL == _tmp34_) ? 0 : g_quark_from_string (_tmp34_);
						if (_tmp36_ == ((0 != _tmp35_label0) ? _tmp35_label0 : (_tmp35_label0 = g_quark_from_static_string ("LXDE")))) {
							switch (0) {
								default:
								{
									const gchar* _tmp37_ = NULL;
									gchar* _tmp38_ = NULL;
									gchar* _tmp39_ = NULL;
									gchar* _tmp40_ = NULL;
									_tmp37_ = xdg_config_env;
									_tmp38_ = g_strconcat (" --config-file ", _tmp37_, NULL);
									_tmp39_ = _tmp38_;
									_tmp40_ = g_strconcat (_tmp39_, "/openbox/lxde-rc.xml", NULL);
									_g_free0 (session_command);
									session_command = _tmp40_;
									_g_free0 (_tmp39_);
									break;
								}
							}
						} else if (_tmp36_ == ((0 != _tmp35_label1) ? _tmp35_label1 : (_tmp35_label1 = g_quark_from_static_string ("Lubuntu")))) {
							switch (0) {
								default:
								{
									const gchar* _tmp41_ = NULL;
									gchar* _tmp42_ = NULL;
									gchar* _tmp43_ = NULL;
									gchar* _tmp44_ = NULL;
									_tmp41_ = xdg_config_env;
									_tmp42_ = g_strconcat (" --config-file ", _tmp41_, NULL);
									_tmp43_ = _tmp42_;
									_tmp44_ = g_strconcat (_tmp43_, "/openbox/lubuntu-rc.xml", NULL);
									_g_free0 (session_command);
									session_command = _tmp44_;
									_g_free0 (_tmp43_);
									break;
								}
							}
						} else {
							switch (0) {
								default:
								{
									gchar* _tmp45_ = NULL;
									_tmp45_ = g_strdup (" ");
									_g_free0 (session_command);
									session_command = _tmp45_;
									break;
								}
							}
						}
						break;
					}
				}
			} else if (_tmp32_ == ((0 != _tmp31_label1) ? _tmp31_label1 : (_tmp31_label1 = g_quark_from_static_string ("openbox-custom")))) {
				switch (0) {
					default:
					{
						const gchar* _tmp46_ = NULL;
						const gchar* _tmp47_ = NULL;
						GQuark _tmp49_ = 0U;
						_tmp46_ = self->priv->session;
						_tmp47_ = _tmp46_;
						_tmp49_ = (NULL == _tmp47_) ? 0 : g_quark_from_string (_tmp47_);
						switch (0) {
							default:
							{
								const gchar* _tmp50_ = NULL;
								gchar* _tmp51_ = NULL;
								_tmp50_ = self->priv->session;
								_tmp51_ = g_strconcat (" --config-file ", _tmp50_, NULL);
								_g_free0 (session_command);
								session_command = _tmp51_;
								break;
							}
						}
						break;
					}
				}
			} else {
				switch (0) {
					default:
					{
						_g_free0 (session_command);
						session_command = NULL;
						break;
					}
				}
			}
			_tmp52_ = self->priv->extras;
			_tmp53_ = _tmp52_;
			_tmp55_ = (NULL == _tmp53_) ? 0 : g_quark_from_string (_tmp53_);
			if (_tmp55_ == ((0 != _tmp54_label0) ? _tmp54_label0 : (_tmp54_label0 = g_quark_from_static_string (NULL)))) {
				switch (0) {
					default:
					{
						const gchar* _tmp56_ = NULL;
						const gchar* _tmp57_ = NULL;
						gchar* _tmp58_ = NULL;
						_tmp56_ = self->priv->wm_command;
						_tmp57_ = session_command;
						_tmp58_ = g_strconcat (_tmp56_, _tmp57_, NULL);
						_g_free0 (create_command);
						create_command = _tmp58_;
						break;
					}
				}
			} else if (_tmp55_ == ((0 != _tmp54_label1) ? _tmp54_label1 : (_tmp54_label1 = g_quark_from_static_string ("")))) {
				switch (0) {
					default:
					{
						const gchar* _tmp59_ = NULL;
						const gchar* _tmp60_ = NULL;
						gchar* _tmp61_ = NULL;
						_tmp59_ = self->priv->wm_command;
						_tmp60_ = session_command;
						_tmp61_ = g_strconcat (_tmp59_, _tmp60_, NULL);
						_g_free0 (create_command);
						create_command = _tmp61_;
						break;
					}
				}
			} else if (_tmp55_ == ((0 != _tmp54_label2) ? _tmp54_label2 : (_tmp54_label2 = g_quark_from_static_string (" ")))) {
				switch (0) {
					default:
					{
						const gchar* _tmp62_ = NULL;
						const gchar* _tmp63_ = NULL;
						gchar* _tmp64_ = NULL;
						_tmp62_ = self->priv->wm_command;
						_tmp63_ = session_command;
						_tmp64_ = g_strconcat (_tmp62_, _tmp63_, NULL);
						_g_free0 (create_command);
						create_command = _tmp64_;
						break;
					}
				}
			} else {
				switch (0) {
					default:
					{
						const gchar* _tmp65_ = NULL;
						const gchar* _tmp66_ = NULL;
						gchar* _tmp67_ = NULL;
						gchar* _tmp68_ = NULL;
						gchar* _tmp69_ = NULL;
						gchar* _tmp70_ = NULL;
						const gchar* _tmp71_ = NULL;
						gchar* _tmp72_ = NULL;
						_tmp65_ = self->priv->wm_command;
						_tmp66_ = session_command;
						_tmp67_ = g_strconcat (_tmp65_, _tmp66_, NULL);
						_tmp68_ = _tmp67_;
						_tmp69_ = g_strconcat (_tmp68_, " ", NULL);
						_tmp70_ = _tmp69_;
						_tmp71_ = self->priv->extras;
						_tmp72_ = g_strconcat (_tmp70_, _tmp71_, NULL);
						_g_free0 (create_command);
						create_command = _tmp72_;
						_g_free0 (_tmp70_);
						_g_free0 (_tmp68_);
						break;
					}
				}
			}
			_tmp73_ = create_command;
			_tmp75_ = _tmp74_ = g_strsplit_set (_tmp73_, " ", 0);
			_tmp76_ = _tmp75_;
			_tmp76__length1 = _vala_array_length (_tmp74_);
			lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp76_, _vala_array_length (_tmp74_));
			_tmp76_ = (_vala_array_free (_tmp76_, _tmp76__length1, (GDestroyNotify) g_free), NULL);
			_g_free0 (xdg_config_env);
			_g_free0 (create_command);
		}
	}
	lxsession_app_object_set_guard ((LxsessionAppObject*) self, TRUE);
	_g_free0 (session_command);
}


static gchar* lxsession_windows_manager_app_find_window_manager (LxsessionWindowsManagerApp* self) {
	gchar* result = NULL;
	GArray* wm_list = NULL;
	GArray* _tmp0_ = NULL;
	GArray* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	GArray* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	GArray* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	GArray* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	GArray* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	GArray* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	GArray* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	GArray* _tmp15_ = NULL;
	gchar* _tmp16_ = NULL;
	GArray* _tmp17_ = NULL;
	gchar* _tmp18_ = NULL;
	GArray* _tmp19_ = NULL;
	gchar* _tmp20_ = NULL;
	gchar* return_value = NULL;
	gchar* _tmp21_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_array_new (TRUE, TRUE, sizeof (gchar*));
	wm_list = _tmp0_;
	_tmp1_ = wm_list;
	_tmp2_ = g_strdup ("openbox-lxde");
	g_array_append_val (_tmp1_, _tmp2_);
	_tmp3_ = wm_list;
	_tmp4_ = g_strdup ("openbox-lubuntu");
	g_array_append_val (_tmp3_, _tmp4_);
	_tmp5_ = wm_list;
	_tmp6_ = g_strdup ("openbox");
	g_array_append_val (_tmp5_, _tmp6_);
	_tmp7_ = wm_list;
	_tmp8_ = g_strdup ("compiz");
	g_array_append_val (_tmp7_, _tmp8_);
	_tmp9_ = wm_list;
	_tmp10_ = g_strdup ("kwin");
	g_array_append_val (_tmp9_, _tmp10_);
	_tmp11_ = wm_list;
	_tmp12_ = g_strdup ("mutter");
	g_array_append_val (_tmp11_, _tmp12_);
	_tmp13_ = wm_list;
	_tmp14_ = g_strdup ("fluxbox");
	g_array_append_val (_tmp13_, _tmp14_);
	_tmp15_ = wm_list;
	_tmp16_ = g_strdup ("metacity");
	g_array_append_val (_tmp15_, _tmp16_);
	_tmp17_ = wm_list;
	_tmp18_ = g_strdup ("xfwin");
	g_array_append_val (_tmp17_, _tmp18_);
	_tmp19_ = wm_list;
	_tmp20_ = g_strdup ("matchbox");
	g_array_append_val (_tmp19_, _tmp20_);
	_tmp21_ = g_strdup ("");
	return_value = _tmp21_;
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp22_ = FALSE;
			_tmp22_ = TRUE;
			while (TRUE) {
				gint _tmp24_ = 0;
				GArray* _tmp25_ = NULL;
				guint _tmp26_ = 0U;
				const gchar* wm = NULL;
				GArray* _tmp27_ = NULL;
				gint _tmp28_ = 0;
				const gchar* _tmp29_ = NULL;
				gchar* test_wm = NULL;
				const gchar* _tmp30_ = NULL;
				gchar* _tmp31_ = NULL;
				const gchar* _tmp32_ = NULL;
				if (!_tmp22_) {
					gint _tmp23_ = 0;
					_tmp23_ = i;
					i = _tmp23_ + 1;
				}
				_tmp22_ = FALSE;
				_tmp24_ = i;
				_tmp25_ = wm_list;
				_tmp26_ = _tmp25_->len;
				if (!(((guint) _tmp24_) < _tmp26_)) {
					break;
				}
				_tmp27_ = wm_list;
				_tmp28_ = i;
				_tmp29_ = g_array_index (_tmp27_, gchar*, (guint) _tmp28_);
				wm = _tmp29_;
				_tmp30_ = wm;
				_tmp31_ = g_find_program_in_path (_tmp30_);
				test_wm = _tmp31_;
				_tmp32_ = test_wm;
				if (_tmp32_ != NULL) {
					const gchar* _tmp33_ = NULL;
					const gchar* _tmp34_ = NULL;
					gchar* _tmp35_ = NULL;
					_tmp33_ = wm;
					g_message ("app.vala:332: Finding %s", _tmp33_);
					_tmp34_ = wm;
					_tmp35_ = g_strdup (_tmp34_);
					_g_free0 (return_value);
					return_value = _tmp35_;
					_g_free0 (test_wm);
					break;
				}
				_g_free0 (test_wm);
			}
		}
	}
	result = return_value;
	_g_array_unref0 (wm_list);
	return result;
}


static void lxsession_windows_manager_app_callback_pid (LxsessionWindowsManagerApp* self, GPid pid, gint status) {
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	gint _tmp2_ = 0;
	gint _tmp3_ = 0;
	GPid _tmp8_ = 0;
	gboolean _tmp9_ = FALSE;
	gboolean _tmp10_ = FALSE;
	g_return_if_fail (self != NULL);
	_tmp0_ = lxsession_app_object_get_name ((LxsessionAppObject*) self);
	_tmp1_ = _tmp0_;
	_tmp2_ = status;
	g_message ("app.vala:347: %s exit with this type of exit: %i\n", _tmp1_, _tmp2_);
	_tmp3_ = status;
	if (_tmp3_ == -1) {
		gchar* _tmp4_ = NULL;
		gchar** _tmp5_ = NULL;
		gchar** _tmp6_ = NULL;
		gint _tmp6__length1 = 0;
		LxsessionLxsessionConfigKeyFile* _tmp7_ = NULL;
		lxsession_app_object_set_name ((LxsessionAppObject*) self, "wm_safe");
		_tmp4_ = lxsession_windows_manager_app_find_window_manager (self);
		_tmp5_ = g_new0 (gchar*, 1 + 1);
		_tmp5_[0] = _tmp4_;
		_tmp6_ = _tmp5_;
		_tmp6__length1 = 1;
		lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp6_, 1);
		_tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
		_tmp7_ = lxsession_global_settings;
		lxsession_lxsession_config_set_generic_default ((LxsessionLxsessionConfig*) _tmp7_, "Session", "windows_manager", "command", "string", "wm_safe");
	}
	_tmp8_ = pid;
	g_spawn_close_pid (_tmp8_);
	_tmp9_ = lxsession_app_object_get_guard ((LxsessionAppObject*) self);
	_tmp10_ = _tmp9_;
	if (_tmp10_ == TRUE) {
		gint _tmp11_ = 0;
		_tmp11_ = status;
		switch (_tmp11_) {
			case 0:
			{
				g_message ("app.vala:363: Exit normal, don't reload");
				break;
			}
			case 15:
			{
				g_message ("app.vala:366: Exit by the user, don't reload");
				break;
			}
			case 256:
			{
				g_message ("app.vala:369: Exit normal, don't reload");
				break;
			}
			default:
			{
				gint _tmp12_ = 0;
				gint _tmp13_ = 0;
				gint _tmp14_ = 0;
				gint _tmp15_ = 0;
				gint _tmp16_ = 0;
				gint _tmp17_ = 0;
				g_message ("app.vala:372: Exit not normal, try to reload");
				_tmp12_ = lxsession_app_object_get_crash_count ((LxsessionAppObject*) self);
				_tmp13_ = _tmp12_;
				lxsession_app_object_set_crash_count ((LxsessionAppObject*) self, _tmp13_ + 1);
				_tmp14_ = lxsession_app_object_get_crash_count ((LxsessionAppObject*) self);
				_tmp15_ = _tmp14_;
				_tmp16_ = lxsession_app_object_get_stop_reload ((LxsessionAppObject*) self);
				_tmp17_ = _tmp16_;
				if (_tmp15_ <= _tmp17_) {
					lxsession_windows_manager_app_launch (self);
				} else {
					g_message ("app.vala:380: Application crashed too much, stop reloading");
				}
				break;
			}
		}
	}
}


static void _lxsession_windows_manager_app_callback_pid_gchild_watch_func (GPid pid, gint status, gpointer self) {
	lxsession_windows_manager_app_callback_pid ((LxsessionWindowsManagerApp*) self, pid, status);
}


void lxsession_windows_manager_app_launch (LxsessionWindowsManagerApp* self) {
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	lxsession_app_object_read_config_settings ((LxsessionAppObject*) self);
	lxsession_app_object_read_settings ((LxsessionAppObject*) self);
	_tmp0_ = lxsession_app_object_get_name ((LxsessionAppObject*) self);
	_tmp1_ = _tmp0_;
	if (_tmp1_ != NULL) {
		{
			gchar** spawn_env = NULL;
			gchar** _tmp2_ = NULL;
			gchar** _tmp3_ = NULL;
			gint spawn_env_length1 = 0;
			gint _spawn_env_size_ = 0;
			gchar** _tmp4_ = NULL;
			gint _tmp4__length1 = 0;
			gchar** _tmp5_ = NULL;
			gint _tmp5__length1 = 0;
			gchar** _tmp6_ = NULL;
			gint _tmp6__length1 = 0;
			GPid _tmp7_ = 0;
			GPid _tmp8_ = 0;
			FILE* _tmp19_ = NULL;
			_tmp3_ = _tmp2_ = g_get_environ ();
			spawn_env = _tmp3_;
			spawn_env_length1 = _vala_array_length (_tmp2_);
			_spawn_env_size_ = spawn_env_length1;
			_tmp4_ = lxsession_app_object_get_command ((LxsessionAppObject*) self, &_tmp4__length1);
			_tmp5_ = _tmp4_;
			_tmp5__length1 = _tmp4__length1;
			_tmp6_ = spawn_env;
			_tmp6__length1 = spawn_env_length1;
			g_spawn_async (NULL, _tmp5_, _tmp6_, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, &_tmp7_, &_inner_error_);
			((LxsessionAppObject*) self)->pid = _tmp7_;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				spawn_env = (_vala_array_free (spawn_env, spawn_env_length1, (GDestroyNotify) g_free), NULL);
				if (_inner_error_->domain == G_SPAWN_ERROR) {
					goto __catch3_g_spawn_error;
				}
				spawn_env = (_vala_array_free (spawn_env, spawn_env_length1, (GDestroyNotify) g_free), NULL);
				g_critical ("file %s: line %d: unexpected 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;
			}
			_tmp8_ = ((LxsessionAppObject*) self)->pid;
			g_child_watch_add_full (G_PRIORITY_DEFAULT_IDLE, _tmp8_, _lxsession_windows_manager_app_callback_pid_gchild_watch_func, g_object_ref (self), g_object_unref);
			{
				gint a = 0;
				a = 0;
				{
					gboolean _tmp9_ = FALSE;
					_tmp9_ = TRUE;
					while (TRUE) {
						gint _tmp11_ = 0;
						gchar** _tmp12_ = NULL;
						gint _tmp12__length1 = 0;
						gchar** _tmp13_ = NULL;
						gint _tmp13__length1 = 0;
						FILE* _tmp14_ = NULL;
						gchar** _tmp15_ = NULL;
						gint _tmp15__length1 = 0;
						gchar** _tmp16_ = NULL;
						gint _tmp16__length1 = 0;
						gint _tmp17_ = 0;
						const gchar* _tmp18_ = NULL;
						if (!_tmp9_) {
							gint _tmp10_ = 0;
							_tmp10_ = a;
							a = _tmp10_ + 1;
						}
						_tmp9_ = FALSE;
						_tmp11_ = a;
						_tmp12_ = lxsession_app_object_get_command ((LxsessionAppObject*) self, &_tmp12__length1);
						_tmp13_ = _tmp12_;
						_tmp13__length1 = _tmp12__length1;
						if (!(_tmp11_ <= _tmp13__length1)) {
							break;
						}
						_tmp14_ = stdout;
						_tmp15_ = lxsession_app_object_get_command ((LxsessionAppObject*) self, &_tmp15__length1);
						_tmp16_ = _tmp15_;
						_tmp16__length1 = _tmp15__length1;
						_tmp17_ = a;
						_tmp18_ = _tmp16_[_tmp17_];
						fprintf (_tmp14_, "%s ", _tmp18_);
					}
				}
			}
			_tmp19_ = stdout;
			fprintf (_tmp19_, "\n");
			spawn_env = (_vala_array_free (spawn_env, spawn_env_length1, (GDestroyNotify) g_free), NULL);
		}
		goto __finally3;
		__catch3_g_spawn_error:
		{
			GError* err = NULL;
			GError* _tmp20_ = NULL;
			const gchar* _tmp21_ = NULL;
			err = _inner_error_;
			_inner_error_ = NULL;
			_tmp20_ = err;
			_tmp21_ = _tmp20_->message;
			g_warning ("app.vala:415: %s", _tmp21_);
			_g_error_free0 (err);
		}
		__finally3:
		if (G_UNLIKELY (_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 void lxsession_windows_manager_app_class_init (LxsessionWindowsManagerAppClass * klass) {
	lxsession_windows_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionWindowsManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_windows_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_windows_manager_app_finalize;
}


static void lxsession_windows_manager_app_instance_init (LxsessionWindowsManagerApp * self) {
	self->priv = LXSESSION_WINDOWS_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_windows_manager_app_finalize (GObject* obj) {
	LxsessionWindowsManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_WINDOWS_MANAGER_APP, LxsessionWindowsManagerApp);
	_g_free0 (self->priv->wm_command);
	_g_free0 (self->priv->mode);
	_g_free0 (self->priv->session);
	_g_free0 (self->priv->extras);
	G_OBJECT_CLASS (lxsession_windows_manager_app_parent_class)->finalize (obj);
}


GType lxsession_windows_manager_app_get_type (void) {
	static volatile gsize lxsession_windows_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_windows_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionWindowsManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_windows_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionWindowsManagerApp), 0, (GInstanceInitFunc) lxsession_windows_manager_app_instance_init, NULL };
		GType lxsession_windows_manager_app_type_id;
		lxsession_windows_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionWindowsManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_windows_manager_app_type_id__volatile, lxsession_windows_manager_app_type_id);
	}
	return lxsession_windows_manager_app_type_id__volatile;
}


LxsessionPanelApp* lxsession_panel_app_construct (GType object_type) {
	LxsessionPanelApp * self = NULL;
	self = (LxsessionPanelApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionPanelApp* lxsession_panel_app_new (void) {
	return lxsession_panel_app_construct (LXSESSION_TYPE_PANEL_APP);
}


static void lxsession_panel_app_real_read_config_settings (LxsessionAppObject* base) {
	LxsessionPanelApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	self = (LxsessionPanelApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "panel", "command");
	_g_free0 (self->panel_command);
	self->panel_command = _tmp1_;
	_tmp2_ = lxsession_global_settings;
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp2_, "Session", "panel", "session");
	_g_free0 (self->panel_session);
	self->panel_session = _tmp3_;
}


static void lxsession_panel_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionPanelApp * self;
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	self = (LxsessionPanelApp*) base;
	_tmp0_ = self->panel_command;
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("lxpanel")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp4_ = NULL;
				const gchar* _tmp5_ = NULL;
				_tmp4_ = self->panel_command;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp4_);
				_tmp5_ = self->panel_session;
				if (_tmp5_ != NULL) {
					gchar* create_command = NULL;
					const gchar* _tmp6_ = NULL;
					gchar* _tmp7_ = NULL;
					const gchar* _tmp8_ = NULL;
					gchar** _tmp9_ = NULL;
					gchar** _tmp10_ = NULL;
					gchar** _tmp11_ = NULL;
					gint _tmp11__length1 = 0;
					_tmp6_ = self->panel_session;
					_tmp7_ = g_strconcat ("lxpanel --profile ", _tmp6_, NULL);
					create_command = _tmp7_;
					_tmp8_ = create_command;
					_tmp10_ = _tmp9_ = g_strsplit_set (_tmp8_, " ", 0);
					_tmp11_ = _tmp10_;
					_tmp11__length1 = _vala_array_length (_tmp9_);
					lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp11_, _vala_array_length (_tmp9_));
					_tmp11_ = (_vala_array_free (_tmp11_, _tmp11__length1, (GDestroyNotify) g_free), NULL);
					_g_free0 (create_command);
				} else {
					const gchar* _tmp12_ = NULL;
					gchar* _tmp13_ = NULL;
					gchar** _tmp14_ = NULL;
					gchar** _tmp15_ = NULL;
					gint _tmp15__length1 = 0;
					_tmp12_ = self->panel_command;
					_tmp13_ = g_strdup (_tmp12_);
					_tmp14_ = g_new0 (gchar*, 1 + 1);
					_tmp14_[0] = _tmp13_;
					_tmp15_ = _tmp14_;
					_tmp15__length1 = 1;
					lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp15_, 1);
					_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
				}
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("awn")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp16_ = NULL;
				gchar* create_command = NULL;
				gchar* _tmp17_ = NULL;
				const gchar* _tmp18_ = NULL;
				gchar** _tmp19_ = NULL;
				gchar** _tmp20_ = NULL;
				gchar** _tmp21_ = NULL;
				gint _tmp21__length1 = 0;
				_tmp16_ = self->panel_command;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp16_);
				_tmp17_ = g_strdup ("avant-window-navigator");
				create_command = _tmp17_;
				_tmp18_ = create_command;
				_tmp20_ = _tmp19_ = g_strsplit_set (_tmp18_, " ", 0);
				_tmp21_ = _tmp20_;
				_tmp21__length1 = _vala_array_length (_tmp19_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp21_, _vala_array_length (_tmp19_));
				_tmp21_ = (_vala_array_free (_tmp21_, _tmp21__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp22_ = NULL;
				gchar** _tmp23_ = NULL;
				gchar** _tmp24_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp25_ = NULL;
				gint _tmp25__length1 = 0;
				const gchar* _tmp26_ = NULL;
				gchar** _tmp27_ = NULL;
				gint _tmp27__length1 = 0;
				_tmp22_ = self->panel_command;
				_tmp24_ = _tmp23_ = g_strsplit_set (_tmp22_, " ", 0);
				create_command = _tmp24_;
				create_command_length1 = _vala_array_length (_tmp23_);
				_create_command_size_ = create_command_length1;
				_tmp25_ = create_command;
				_tmp25__length1 = create_command_length1;
				_tmp26_ = _tmp25_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp26_);
				_tmp27_ = create_command;
				_tmp27__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp27_, _tmp27__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
	lxsession_app_object_set_guard ((LxsessionAppObject*) self, TRUE);
}


static void lxsession_panel_app_class_init (LxsessionPanelAppClass * klass) {
	lxsession_panel_app_parent_class = g_type_class_peek_parent (klass);
	((LxsessionAppObjectClass *) klass)->read_config_settings = lxsession_panel_app_real_read_config_settings;
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_panel_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_panel_app_finalize;
}


static void lxsession_panel_app_instance_init (LxsessionPanelApp * self) {
}


static void lxsession_panel_app_finalize (GObject* obj) {
	LxsessionPanelApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_PANEL_APP, LxsessionPanelApp);
	_g_free0 (self->panel_command);
	_g_free0 (self->panel_session);
	G_OBJECT_CLASS (lxsession_panel_app_parent_class)->finalize (obj);
}


GType lxsession_panel_app_get_type (void) {
	static volatile gsize lxsession_panel_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_panel_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionPanelAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_panel_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionPanelApp), 0, (GInstanceInitFunc) lxsession_panel_app_instance_init, NULL };
		GType lxsession_panel_app_type_id;
		lxsession_panel_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionPanelApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_panel_app_type_id__volatile, lxsession_panel_app_type_id);
	}
	return lxsession_panel_app_type_id__volatile;
}


LxsessionDockApp* lxsession_dock_app_construct (GType object_type) {
	LxsessionDockApp * self = NULL;
	self = (LxsessionDockApp*) lxsession_panel_app_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionDockApp* lxsession_dock_app_new (void) {
	return lxsession_dock_app_construct (LXSESSION_TYPE_DOCK_APP);
}


static void lxsession_dock_app_real_read_config_settings (LxsessionAppObject* base) {
	LxsessionDockApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	self = (LxsessionDockApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "dock", "command");
	_g_free0 (((LxsessionPanelApp*) self)->panel_command);
	((LxsessionPanelApp*) self)->panel_command = _tmp1_;
	_tmp2_ = lxsession_global_settings;
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp2_, "Session", "dock", "session");
	_g_free0 (((LxsessionPanelApp*) self)->panel_session);
	((LxsessionPanelApp*) self)->panel_session = _tmp3_;
}


static void lxsession_dock_app_class_init (LxsessionDockAppClass * klass) {
	lxsession_dock_app_parent_class = g_type_class_peek_parent (klass);
	((LxsessionAppObjectClass *) klass)->read_config_settings = lxsession_dock_app_real_read_config_settings;
}


static void lxsession_dock_app_instance_init (LxsessionDockApp * self) {
}


GType lxsession_dock_app_get_type (void) {
	static volatile gsize lxsession_dock_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_dock_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionDockAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_dock_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionDockApp), 0, (GInstanceInitFunc) lxsession_dock_app_instance_init, NULL };
		GType lxsession_dock_app_type_id;
		lxsession_dock_app_type_id = g_type_register_static (LXSESSION_TYPE_PANEL_APP, "LxsessionDockApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_dock_app_type_id__volatile, lxsession_dock_app_type_id);
	}
	return lxsession_dock_app_type_id__volatile;
}


LxsessionScreensaverApp* lxsession_screensaver_app_construct (GType object_type) {
	LxsessionScreensaverApp * self = NULL;
	self = (LxsessionScreensaverApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionScreensaverApp* lxsession_screensaver_app_new (void) {
	return lxsession_screensaver_app_construct (LXSESSION_TYPE_SCREENSAVER_APP);
}


static void lxsession_screensaver_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionScreensaverApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	self = (LxsessionScreensaverApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "screensaver", "command");
	_g_free0 (self->priv->screensaver_command);
	self->priv->screensaver_command = _tmp1_;
	_tmp2_ = self->priv->screensaver_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("xscreensaver")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp6_ = NULL;
				gchar* create_command = NULL;
				gchar* _tmp7_ = NULL;
				const gchar* _tmp8_ = NULL;
				gchar** _tmp9_ = NULL;
				gchar** _tmp10_ = NULL;
				gchar** _tmp11_ = NULL;
				gint _tmp11__length1 = 0;
				_tmp6_ = self->priv->screensaver_command;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp6_);
				_tmp7_ = g_strdup ("xscreensaver -no-splash");
				create_command = _tmp7_;
				_tmp8_ = create_command;
				_tmp10_ = _tmp9_ = g_strsplit_set (_tmp8_, " ", 0);
				_tmp11_ = _tmp10_;
				_tmp11__length1 = _vala_array_length (_tmp9_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp11_, _vala_array_length (_tmp9_));
				_tmp11_ = (_vala_array_free (_tmp11_, _tmp11__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp12_ = NULL;
				gchar** _tmp13_ = NULL;
				gchar** _tmp14_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp15_ = NULL;
				gint _tmp15__length1 = 0;
				const gchar* _tmp16_ = NULL;
				gchar** _tmp17_ = NULL;
				gint _tmp17__length1 = 0;
				_tmp12_ = self->priv->screensaver_command;
				_tmp14_ = _tmp13_ = g_strsplit_set (_tmp12_, " ", 0);
				create_command = _tmp14_;
				create_command_length1 = _vala_array_length (_tmp13_);
				_create_command_size_ = create_command_length1;
				_tmp15_ = create_command;
				_tmp15__length1 = create_command_length1;
				_tmp16_ = _tmp15_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp16_);
				_tmp17_ = create_command;
				_tmp17__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp17_, _tmp17__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
	lxsession_app_object_set_guard ((LxsessionAppObject*) self, TRUE);
}


static void lxsession_screensaver_app_class_init (LxsessionScreensaverAppClass * klass) {
	lxsession_screensaver_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionScreensaverAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_screensaver_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_screensaver_app_finalize;
}


static void lxsession_screensaver_app_instance_init (LxsessionScreensaverApp * self) {
	self->priv = LXSESSION_SCREENSAVER_APP_GET_PRIVATE (self);
}


static void lxsession_screensaver_app_finalize (GObject* obj) {
	LxsessionScreensaverApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_SCREENSAVER_APP, LxsessionScreensaverApp);
	_g_free0 (self->priv->screensaver_command);
	G_OBJECT_CLASS (lxsession_screensaver_app_parent_class)->finalize (obj);
}


GType lxsession_screensaver_app_get_type (void) {
	static volatile gsize lxsession_screensaver_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_screensaver_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionScreensaverAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_screensaver_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionScreensaverApp), 0, (GInstanceInitFunc) lxsession_screensaver_app_instance_init, NULL };
		GType lxsession_screensaver_app_type_id;
		lxsession_screensaver_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionScreensaverApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_screensaver_app_type_id__volatile, lxsession_screensaver_app_type_id);
	}
	return lxsession_screensaver_app_type_id__volatile;
}


LxsessionPowerManagerApp* lxsession_power_manager_app_construct (GType object_type) {
	LxsessionPowerManagerApp * self = NULL;
	self = (LxsessionPowerManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionPowerManagerApp* lxsession_power_manager_app_new (void) {
	return lxsession_power_manager_app_construct (LXSESSION_TYPE_POWER_MANAGER_APP);
}


static void lxsession_power_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionPowerManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	GQuark _tmp7_ = 0U;
	static GQuark _tmp6_label0 = 0;
	static GQuark _tmp6_label1 = 0;
	self = (LxsessionPowerManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "power_manager", "command");
	_g_free0 (self->priv->powermanager_command);
	self->priv->powermanager_command = _tmp1_;
	_tmp2_ = lxsession_global_settings;
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp2_, "State", "laptop_mode", NULL);
	_g_free0 (self->priv->laptop_mode);
	self->priv->laptop_mode = _tmp3_;
	_tmp4_ = self->priv->powermanager_command;
	_tmp5_ = _tmp4_;
	_tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
	if (_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("auto")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp8_ = NULL;
				_tmp8_ = self->priv->laptop_mode;
				if (g_strcmp0 (_tmp8_, "yes") == 0) {
					gchar* create_command = NULL;
					gchar* _tmp9_ = NULL;
					const gchar* _tmp10_ = NULL;
					gchar** _tmp11_ = NULL;
					gchar** _tmp12_ = NULL;
					gchar** _tmp13_ = NULL;
					gint _tmp13__length1 = 0;
					_tmp9_ = g_strdup ("xfce4-power-manager");
					create_command = _tmp9_;
					lxsession_app_object_set_name ((LxsessionAppObject*) self, "xfce4-power-manager");
					_tmp10_ = create_command;
					_tmp12_ = _tmp11_ = g_strsplit_set (_tmp10_, " ", 0);
					_tmp13_ = _tmp12_;
					_tmp13__length1 = _vala_array_length (_tmp11_);
					lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp13_, _vala_array_length (_tmp11_));
					_tmp13_ = (_vala_array_free (_tmp13_, _tmp13__length1, (GDestroyNotify) g_free), NULL);
					_g_free0 (create_command);
				}
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label1) ? _tmp6_label1 : (_tmp6_label1 = g_quark_from_static_string ("no")))) {
		switch (0) {
			default:
			{
				lxsession_app_object_set_name ((LxsessionAppObject*) self, "power_manager_off");
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp14_ = NULL;
				gchar** _tmp15_ = NULL;
				gchar** _tmp16_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp17_ = NULL;
				gint _tmp17__length1 = 0;
				const gchar* _tmp18_ = NULL;
				gchar** _tmp19_ = NULL;
				gint _tmp19__length1 = 0;
				_tmp14_ = self->priv->powermanager_command;
				_tmp16_ = _tmp15_ = g_strsplit_set (_tmp14_, " ", 0);
				create_command = _tmp16_;
				create_command_length1 = _vala_array_length (_tmp15_);
				_create_command_size_ = create_command_length1;
				_tmp17_ = create_command;
				_tmp17__length1 = create_command_length1;
				_tmp18_ = _tmp17_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp18_);
				_tmp19_ = create_command;
				_tmp19__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp19_, _tmp19__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
	lxsession_app_object_set_guard ((LxsessionAppObject*) self, TRUE);
}


static void lxsession_power_manager_app_class_init (LxsessionPowerManagerAppClass * klass) {
	lxsession_power_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionPowerManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_power_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_power_manager_app_finalize;
}


static void lxsession_power_manager_app_instance_init (LxsessionPowerManagerApp * self) {
	self->priv = LXSESSION_POWER_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_power_manager_app_finalize (GObject* obj) {
	LxsessionPowerManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_POWER_MANAGER_APP, LxsessionPowerManagerApp);
	_g_free0 (self->priv->powermanager_command);
	_g_free0 (self->priv->laptop_mode);
	G_OBJECT_CLASS (lxsession_power_manager_app_parent_class)->finalize (obj);
}


GType lxsession_power_manager_app_get_type (void) {
	static volatile gsize lxsession_power_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_power_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionPowerManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_power_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionPowerManagerApp), 0, (GInstanceInitFunc) lxsession_power_manager_app_instance_init, NULL };
		GType lxsession_power_manager_app_type_id;
		lxsession_power_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionPowerManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_power_manager_app_type_id__volatile, lxsession_power_manager_app_type_id);
	}
	return lxsession_power_manager_app_type_id__volatile;
}


LxsessionFileManagerApp* lxsession_file_manager_app_construct (GType object_type) {
	LxsessionFileManagerApp * self = NULL;
	self = (LxsessionFileManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionFileManagerApp* lxsession_file_manager_app_new (void) {
	return lxsession_file_manager_app_construct (LXSESSION_TYPE_FILE_MANAGER_APP);
}


static void lxsession_file_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionFileManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	const gchar* _tmp7_ = NULL;
	GQuark _tmp9_ = 0U;
	static GQuark _tmp8_label0 = 0;
	static GQuark _tmp8_label1 = 0;
	static GQuark _tmp8_label2 = 0;
	self = (LxsessionFileManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "file_manager", "command");
	_g_free0 (self->priv->filemanager_command);
	self->priv->filemanager_command = _tmp1_;
	_tmp2_ = lxsession_global_settings;
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp2_, "Session", "file_manager", "session");
	_g_free0 (self->priv->filemanager_session);
	self->priv->filemanager_session = _tmp3_;
	_tmp4_ = lxsession_global_settings;
	_tmp5_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp4_, "Session", "file_manager", "extras");
	_g_free0 (self->priv->filemanager_extras);
	self->priv->filemanager_extras = _tmp5_;
	_tmp6_ = self->priv->filemanager_command;
	_tmp7_ = _tmp6_;
	_tmp9_ = (NULL == _tmp7_) ? 0 : g_quark_from_string (_tmp7_);
	if (_tmp9_ == ((0 != _tmp8_label0) ? _tmp8_label0 : (_tmp8_label0 = g_quark_from_static_string ("pcmanfm")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp10_ = NULL;
				const gchar* _tmp11_ = NULL;
				_tmp10_ = self->priv->filemanager_command;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp10_);
				_tmp11_ = self->priv->filemanager_session;
				if (_tmp11_ != NULL) {
					gchar* create_command = NULL;
					const gchar* _tmp12_ = NULL;
					gchar* _tmp13_ = NULL;
					gchar* _tmp14_ = NULL;
					const gchar* _tmp15_ = NULL;
					gchar* _tmp16_ = NULL;
					gchar* _tmp17_ = NULL;
					const gchar* _tmp18_ = NULL;
					gchar** _tmp19_ = NULL;
					gchar** _tmp20_ = NULL;
					gchar** _tmp21_ = NULL;
					gint _tmp21__length1 = 0;
					_tmp12_ = self->priv->filemanager_session;
					_tmp13_ = g_strconcat ("pcmanfm --profile ", _tmp12_, NULL);
					_tmp14_ = _tmp13_;
					_tmp15_ = self->priv->filemanager_extras;
					_tmp16_ = g_strconcat (_tmp14_, _tmp15_, NULL);
					_tmp17_ = _tmp16_;
					_g_free0 (_tmp14_);
					create_command = _tmp17_;
					_tmp18_ = create_command;
					_tmp20_ = _tmp19_ = g_strsplit_set (_tmp18_, " ", 0);
					_tmp21_ = _tmp20_;
					_tmp21__length1 = _vala_array_length (_tmp19_);
					lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp21_, _vala_array_length (_tmp19_));
					_tmp21_ = (_vala_array_free (_tmp21_, _tmp21__length1, (GDestroyNotify) g_free), NULL);
					_g_free0 (create_command);
				} else {
					const gchar* _tmp22_ = NULL;
					gchar* _tmp23_ = NULL;
					gchar** _tmp24_ = NULL;
					gchar** _tmp25_ = NULL;
					gint _tmp25__length1 = 0;
					_tmp22_ = self->priv->filemanager_command;
					_tmp23_ = g_strdup (_tmp22_);
					_tmp24_ = g_new0 (gchar*, 1 + 1);
					_tmp24_[0] = _tmp23_;
					_tmp25_ = _tmp24_;
					_tmp25__length1 = 1;
					lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp25_, 1);
					_tmp25_ = (_vala_array_free (_tmp25_, _tmp25__length1, (GDestroyNotify) g_free), NULL);
				}
				break;
			}
		}
	} else if (_tmp9_ == ((0 != _tmp8_label1) ? _tmp8_label1 : (_tmp8_label1 = g_quark_from_static_string ("pcmanfm-qt")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp26_ = NULL;
				const gchar* _tmp27_ = NULL;
				_tmp26_ = self->priv->filemanager_command;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp26_);
				_tmp27_ = self->priv->filemanager_session;
				if (_tmp27_ != NULL) {
					gchar* create_command = NULL;
					const gchar* _tmp28_ = NULL;
					gchar* _tmp29_ = NULL;
					gchar* _tmp30_ = NULL;
					const gchar* _tmp31_ = NULL;
					gchar* _tmp32_ = NULL;
					gchar* _tmp33_ = NULL;
					const gchar* _tmp34_ = NULL;
					gchar** _tmp35_ = NULL;
					gchar** _tmp36_ = NULL;
					gchar** _tmp37_ = NULL;
					gint _tmp37__length1 = 0;
					_tmp28_ = self->priv->filemanager_session;
					_tmp29_ = g_strconcat ("pcmanfm-qt --profile ", _tmp28_, NULL);
					_tmp30_ = _tmp29_;
					_tmp31_ = self->priv->filemanager_extras;
					_tmp32_ = g_strconcat (_tmp30_, _tmp31_, NULL);
					_tmp33_ = _tmp32_;
					_g_free0 (_tmp30_);
					create_command = _tmp33_;
					_tmp34_ = create_command;
					_tmp36_ = _tmp35_ = g_strsplit_set (_tmp34_, " ", 0);
					_tmp37_ = _tmp36_;
					_tmp37__length1 = _vala_array_length (_tmp35_);
					lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp37_, _vala_array_length (_tmp35_));
					_tmp37_ = (_vala_array_free (_tmp37_, _tmp37__length1, (GDestroyNotify) g_free), NULL);
					_g_free0 (create_command);
				} else {
					const gchar* _tmp38_ = NULL;
					gchar* _tmp39_ = NULL;
					gchar** _tmp40_ = NULL;
					gchar** _tmp41_ = NULL;
					gint _tmp41__length1 = 0;
					_tmp38_ = self->priv->filemanager_command;
					_tmp39_ = g_strdup (_tmp38_);
					_tmp40_ = g_new0 (gchar*, 1 + 1);
					_tmp40_[0] = _tmp39_;
					_tmp41_ = _tmp40_;
					_tmp41__length1 = 1;
					lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp41_, 1);
					_tmp41_ = (_vala_array_free (_tmp41_, _tmp41__length1, (GDestroyNotify) g_free), NULL);
				}
				break;
			}
		}
	} else if (_tmp9_ == ((0 != _tmp8_label2) ? _tmp8_label2 : (_tmp8_label2 = g_quark_from_static_string ("nautilus")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp42_ = NULL;
				gchar* create_command = NULL;
				const gchar* _tmp43_ = NULL;
				gchar* _tmp44_ = NULL;
				const gchar* _tmp45_ = NULL;
				gchar** _tmp46_ = NULL;
				gchar** _tmp47_ = NULL;
				gchar** _tmp48_ = NULL;
				gint _tmp48__length1 = 0;
				_tmp42_ = self->priv->filemanager_command;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp42_);
				_tmp43_ = self->priv->filemanager_extras;
				_tmp44_ = g_strconcat ("nautilus" " -n ", _tmp43_, NULL);
				create_command = _tmp44_;
				_tmp45_ = create_command;
				_tmp47_ = _tmp46_ = g_strsplit_set (_tmp45_, " ", 0);
				_tmp48_ = _tmp47_;
				_tmp48__length1 = _vala_array_length (_tmp46_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp48_, _vala_array_length (_tmp46_));
				_tmp48_ = (_vala_array_free (_tmp48_, _tmp48__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp49_ = NULL;
				gchar** _tmp50_ = NULL;
				gchar** _tmp51_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp52_ = NULL;
				gint _tmp52__length1 = 0;
				const gchar* _tmp53_ = NULL;
				gchar** _tmp54_ = NULL;
				gint _tmp54__length1 = 0;
				_tmp49_ = self->priv->filemanager_command;
				_tmp51_ = _tmp50_ = g_strsplit_set (_tmp49_, " ", 0);
				create_command = _tmp51_;
				create_command_length1 = _vala_array_length (_tmp50_);
				_create_command_size_ = create_command_length1;
				_tmp52_ = create_command;
				_tmp52__length1 = create_command_length1;
				_tmp53_ = _tmp52_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp53_);
				_tmp54_ = create_command;
				_tmp54__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp54_, _tmp54__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


static void lxsession_file_manager_app_class_init (LxsessionFileManagerAppClass * klass) {
	lxsession_file_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionFileManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_file_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_file_manager_app_finalize;
}


static void lxsession_file_manager_app_instance_init (LxsessionFileManagerApp * self) {
	self->priv = LXSESSION_FILE_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_file_manager_app_finalize (GObject* obj) {
	LxsessionFileManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_FILE_MANAGER_APP, LxsessionFileManagerApp);
	_g_free0 (self->priv->filemanager_command);
	_g_free0 (self->priv->filemanager_session);
	_g_free0 (self->priv->filemanager_extras);
	G_OBJECT_CLASS (lxsession_file_manager_app_parent_class)->finalize (obj);
}


GType lxsession_file_manager_app_get_type (void) {
	static volatile gsize lxsession_file_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_file_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionFileManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_file_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionFileManagerApp), 0, (GInstanceInitFunc) lxsession_file_manager_app_instance_init, NULL };
		GType lxsession_file_manager_app_type_id;
		lxsession_file_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionFileManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_file_manager_app_type_id__volatile, lxsession_file_manager_app_type_id);
	}
	return lxsession_file_manager_app_type_id__volatile;
}


LxsessionDesktopApp* lxsession_desktop_app_construct (GType object_type) {
	LxsessionDesktopApp * self = NULL;
	self = (LxsessionDesktopApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionDesktopApp* lxsession_desktop_app_new (void) {
	return lxsession_desktop_app_construct (LXSESSION_TYPE_DESKTOP_APP);
}


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


static void lxsession_desktop_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionDesktopApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	GQuark _tmp7_ = 0U;
	static GQuark _tmp6_label0 = 0;
	static GQuark _tmp6_label1 = 0;
	self = (LxsessionDesktopApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "desktop_manager", "command");
	_g_free0 (self->priv->desktop_command);
	self->priv->desktop_command = _tmp1_;
	_tmp2_ = lxsession_global_settings;
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp2_, "Session", "desktop_manager", "wallpaper");
	_g_free0 (self->priv->desktop_wallpaper);
	self->priv->desktop_wallpaper = _tmp3_;
	_tmp4_ = self->priv->desktop_command;
	_tmp5_ = _tmp4_;
	_tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
	if (_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("filemanager")))) {
		switch (0) {
			default:
			{
				gchar* filemanager_session = NULL;
				LxsessionLxsessionConfigKeyFile* _tmp8_ = NULL;
				gchar* _tmp9_ = NULL;
				gchar* filemanager_extras = NULL;
				LxsessionLxsessionConfigKeyFile* _tmp10_ = NULL;
				gchar* _tmp11_ = NULL;
				LxsessionFileManagerApp* _tmp12_ = NULL;
				LxsessionLxsessionConfigKeyFile* _tmp16_ = NULL;
				gchar* _tmp17_ = NULL;
				gchar* _tmp18_ = NULL;
				GQuark _tmp20_ = 0U;
				static GQuark _tmp19_label0 = 0;
				static GQuark _tmp19_label1 = 0;
				static GQuark _tmp19_label2 = 0;
				_tmp8_ = lxsession_global_settings;
				_tmp9_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp8_, "Session", "file_manager", "session");
				filemanager_session = _tmp9_;
				_tmp10_ = lxsession_global_settings;
				_tmp11_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp10_, "Session", "file_manager", "extras");
				filemanager_extras = _tmp11_;
				_tmp12_ = lxsession_global_file_manager;
				if (_tmp12_ != NULL) {
					LxsessionFileManagerApp* filemanager = NULL;
					LxsessionFileManagerApp* _tmp13_ = NULL;
					LxsessionFileManagerApp* _tmp14_ = NULL;
					LxsessionFileManagerApp* _tmp15_ = NULL;
					g_message ("app.vala:637: File manager needed for desktop manager but doesn't exis" \
"t, creating it");
					_tmp13_ = lxsession_file_manager_app_new ();
					filemanager = _tmp13_;
					_tmp14_ = filemanager;
					_tmp15_ = _g_object_ref0 (_tmp14_);
					_g_object_unref0 (lxsession_global_file_manager);
					lxsession_global_file_manager = _tmp15_;
					_g_object_unref0 (filemanager);
				}
				_tmp16_ = lxsession_global_settings;
				_tmp17_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp16_, "Session", "file_manager", "command");
				_tmp18_ = _tmp17_;
				_tmp20_ = (NULL == _tmp18_) ? 0 : g_quark_from_string (_tmp18_);
				g_free (_tmp18_);
				if (_tmp20_ == ((0 != _tmp19_label0) ? _tmp19_label0 : (_tmp19_label0 = g_quark_from_static_string ("pcmanfm")))) {
					switch (0) {
						default:
						{
							LxsessionLxsessionConfigKeyFile* _tmp21_ = NULL;
							gchar* _tmp22_ = NULL;
							gchar* _tmp23_ = NULL;
							gchar* create_command = NULL;
							const gchar* _tmp24_ = NULL;
							gchar* _tmp25_ = NULL;
							gchar* _tmp26_ = NULL;
							const gchar* _tmp27_ = NULL;
							gchar* _tmp28_ = NULL;
							gchar* _tmp29_ = NULL;
							const gchar* _tmp30_ = NULL;
							gchar** _tmp31_ = NULL;
							gchar** _tmp32_ = NULL;
							gchar** _tmp33_ = NULL;
							gint _tmp33__length1 = 0;
							_tmp21_ = lxsession_global_settings;
							_tmp22_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp21_, "Session", "file_manager", "command");
							_tmp23_ = _tmp22_;
							lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp23_);
							_g_free0 (_tmp23_);
							_tmp24_ = filemanager_session;
							_tmp25_ = g_strconcat ("pcmanfm --desktop --profile ", _tmp24_, NULL);
							_tmp26_ = _tmp25_;
							_tmp27_ = filemanager_extras;
							_tmp28_ = g_strconcat (_tmp26_, _tmp27_, NULL);
							_tmp29_ = _tmp28_;
							_g_free0 (_tmp26_);
							create_command = _tmp29_;
							_tmp30_ = create_command;
							_tmp32_ = _tmp31_ = g_strsplit_set (_tmp30_, " ", 0);
							_tmp33_ = _tmp32_;
							_tmp33__length1 = _vala_array_length (_tmp31_);
							lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp33_, _vala_array_length (_tmp31_));
							_tmp33_ = (_vala_array_free (_tmp33_, _tmp33__length1, (GDestroyNotify) g_free), NULL);
							_g_free0 (create_command);
							break;
						}
					}
				} else if (_tmp20_ == ((0 != _tmp19_label1) ? _tmp19_label1 : (_tmp19_label1 = g_quark_from_static_string ("pcmanfm-qt")))) {
					switch (0) {
						default:
						{
							LxsessionLxsessionConfigKeyFile* _tmp34_ = NULL;
							gchar* _tmp35_ = NULL;
							gchar* _tmp36_ = NULL;
							gchar* create_command = NULL;
							const gchar* _tmp37_ = NULL;
							gchar* _tmp38_ = NULL;
							gchar* _tmp39_ = NULL;
							const gchar* _tmp40_ = NULL;
							gchar* _tmp41_ = NULL;
							gchar* _tmp42_ = NULL;
							const gchar* _tmp43_ = NULL;
							gchar** _tmp44_ = NULL;
							gchar** _tmp45_ = NULL;
							gchar** _tmp46_ = NULL;
							gint _tmp46__length1 = 0;
							_tmp34_ = lxsession_global_settings;
							_tmp35_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp34_, "Session", "file_manager", "command");
							_tmp36_ = _tmp35_;
							lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp36_);
							_g_free0 (_tmp36_);
							_tmp37_ = filemanager_session;
							_tmp38_ = g_strconcat ("pcmanfm-qt --desktop --profile ", _tmp37_, NULL);
							_tmp39_ = _tmp38_;
							_tmp40_ = filemanager_extras;
							_tmp41_ = g_strconcat (_tmp39_, _tmp40_, NULL);
							_tmp42_ = _tmp41_;
							_g_free0 (_tmp39_);
							create_command = _tmp42_;
							_tmp43_ = create_command;
							_tmp45_ = _tmp44_ = g_strsplit_set (_tmp43_, " ", 0);
							_tmp46_ = _tmp45_;
							_tmp46__length1 = _vala_array_length (_tmp44_);
							lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp46_, _vala_array_length (_tmp44_));
							_tmp46_ = (_vala_array_free (_tmp46_, _tmp46__length1, (GDestroyNotify) g_free), NULL);
							_g_free0 (create_command);
							break;
						}
					}
				} else if (_tmp20_ == ((0 != _tmp19_label2) ? _tmp19_label2 : (_tmp19_label2 = g_quark_from_static_string ("nautilus")))) {
					switch (0) {
						default:
						{
							LxsessionLxsessionConfigKeyFile* _tmp47_ = NULL;
							gchar* _tmp48_ = NULL;
							gchar* _tmp49_ = NULL;
							gchar* create_command = NULL;
							const gchar* _tmp50_ = NULL;
							gchar* _tmp51_ = NULL;
							const gchar* _tmp52_ = NULL;
							gchar** _tmp53_ = NULL;
							gchar** _tmp54_ = NULL;
							gchar** _tmp55_ = NULL;
							gint _tmp55__length1 = 0;
							_tmp47_ = lxsession_global_settings;
							_tmp48_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp47_, "Session", "file_manager", "command");
							_tmp49_ = _tmp48_;
							lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp49_);
							_g_free0 (_tmp49_);
							_tmp50_ = filemanager_extras;
							_tmp51_ = g_strconcat ("nautilus" " -n ", _tmp50_, NULL);
							create_command = _tmp51_;
							_tmp52_ = create_command;
							_tmp54_ = _tmp53_ = g_strsplit_set (_tmp52_, " ", 0);
							_tmp55_ = _tmp54_;
							_tmp55__length1 = _vala_array_length (_tmp53_);
							lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp55_, _vala_array_length (_tmp53_));
							_tmp55_ = (_vala_array_free (_tmp55_, _tmp55__length1, (GDestroyNotify) g_free), NULL);
							_g_free0 (create_command);
							break;
						}
					}
				}
				_g_free0 (filemanager_extras);
				_g_free0 (filemanager_session);
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label1) ? _tmp6_label1 : (_tmp6_label1 = g_quark_from_static_string ("feh")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp56_ = NULL;
				gchar* create_command = NULL;
				const gchar* _tmp57_ = NULL;
				gchar* _tmp58_ = NULL;
				const gchar* _tmp59_ = NULL;
				gchar** _tmp60_ = NULL;
				gchar** _tmp61_ = NULL;
				gchar** _tmp62_ = NULL;
				gint _tmp62__length1 = 0;
				_tmp56_ = self->priv->desktop_command;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp56_);
				_tmp57_ = self->priv->desktop_wallpaper;
				_tmp58_ = g_strconcat ("feh" " --bg-scale ", _tmp57_, NULL);
				create_command = _tmp58_;
				_tmp59_ = create_command;
				_tmp61_ = _tmp60_ = g_strsplit_set (_tmp59_, " ", 0);
				_tmp62_ = _tmp61_;
				_tmp62__length1 = _vala_array_length (_tmp60_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp62_, _vala_array_length (_tmp60_));
				_tmp62_ = (_vala_array_free (_tmp62_, _tmp62__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp63_ = NULL;
				gchar** _tmp64_ = NULL;
				gchar** _tmp65_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp66_ = NULL;
				gint _tmp66__length1 = 0;
				const gchar* _tmp67_ = NULL;
				gchar** _tmp68_ = NULL;
				gint _tmp68__length1 = 0;
				_tmp63_ = self->priv->desktop_command;
				_tmp65_ = _tmp64_ = g_strsplit_set (_tmp63_, " ", 0);
				create_command = _tmp65_;
				create_command_length1 = _vala_array_length (_tmp64_);
				_create_command_size_ = create_command_length1;
				_tmp66_ = create_command;
				_tmp66__length1 = create_command_length1;
				_tmp67_ = _tmp66_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp67_);
				_tmp68_ = create_command;
				_tmp68__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp68_, _tmp68__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
	lxsession_app_object_set_guard ((LxsessionAppObject*) self, TRUE);
}


static gchar** _vala_array_dup2 (gchar** self, int length) {
	gchar** result;
	int i;
	result = g_new0 (gchar*, length + 1);
	for (i = 0; i < length; i++) {
		gchar* _tmp0_ = NULL;
		_tmp0_ = g_strdup (self[i]);
		result[i] = _tmp0_;
	}
	return result;
}


void lxsession_desktop_app_launch_settings (LxsessionDesktopApp* self) {
	gchar** backup_command = NULL;
	gchar** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	gchar** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
	gchar** _tmp2_ = NULL;
	gint _tmp2__length1 = 0;
	gint backup_command_length1 = 0;
	gint _backup_command_size_ = 0;
	const gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	GQuark _tmp7_ = 0U;
	static GQuark _tmp6_label0 = 0;
	gchar** _tmp13_ = NULL;
	gint _tmp13__length1 = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = lxsession_app_object_get_command ((LxsessionAppObject*) self, &_tmp0__length1);
	_tmp1_ = _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	_tmp2_ = (_tmp1_ != NULL) ? _vala_array_dup2 (_tmp1_, _tmp1__length1) : ((gpointer) _tmp1_);
	_tmp2__length1 = _tmp1__length1;
	backup_command = _tmp2_;
	backup_command_length1 = _tmp2__length1;
	_backup_command_size_ = backup_command_length1;
	_tmp3_ = lxsession_app_object_get_name ((LxsessionAppObject*) self);
	_tmp4_ = _tmp3_;
	_tmp5_ = _tmp4_;
	_tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
	if (_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("pcmanfm")))) {
		switch (0) {
			default:
			{
				gchar* create_settings_command = NULL;
				gchar* _tmp8_ = NULL;
				const gchar* _tmp9_ = NULL;
				gchar** _tmp10_ = NULL;
				gchar** _tmp11_ = NULL;
				gchar** _tmp12_ = NULL;
				gint _tmp12__length1 = 0;
				_tmp8_ = g_strdup ("pcmanfm --desktop-pref");
				create_settings_command = _tmp8_;
				_tmp9_ = create_settings_command;
				_tmp11_ = _tmp10_ = g_strsplit_set (_tmp9_, " ", 0);
				_tmp12_ = _tmp11_;
				_tmp12__length1 = _vala_array_length (_tmp10_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp12_, _vala_array_length (_tmp10_));
				_tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_settings_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				break;
			}
		}
	}
	lxsession_app_object_launch ((LxsessionAppObject*) self);
	_tmp13_ = backup_command;
	_tmp13__length1 = backup_command_length1;
	lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp13_, _tmp13__length1);
	backup_command = (_vala_array_free (backup_command, backup_command_length1, (GDestroyNotify) g_free), NULL);
}


static void lxsession_desktop_app_class_init (LxsessionDesktopAppClass * klass) {
	lxsession_desktop_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionDesktopAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_desktop_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_desktop_app_finalize;
}


static void lxsession_desktop_app_instance_init (LxsessionDesktopApp * self) {
	self->priv = LXSESSION_DESKTOP_APP_GET_PRIVATE (self);
}


static void lxsession_desktop_app_finalize (GObject* obj) {
	LxsessionDesktopApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_DESKTOP_APP, LxsessionDesktopApp);
	_g_free0 (self->priv->desktop_command);
	_g_free0 (self->priv->desktop_wallpaper);
	G_OBJECT_CLASS (lxsession_desktop_app_parent_class)->finalize (obj);
}


GType lxsession_desktop_app_get_type (void) {
	static volatile gsize lxsession_desktop_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_desktop_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionDesktopAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_desktop_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionDesktopApp), 0, (GInstanceInitFunc) lxsession_desktop_app_instance_init, NULL };
		GType lxsession_desktop_app_type_id;
		lxsession_desktop_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionDesktopApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_desktop_app_type_id__volatile, lxsession_desktop_app_type_id);
	}
	return lxsession_desktop_app_type_id__volatile;
}


LxsessionPolkitApp* lxsession_polkit_app_construct (GType object_type) {
	LxsessionPolkitApp * self = NULL;
	self = (LxsessionPolkitApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionPolkitApp* lxsession_polkit_app_new (void) {
	return lxsession_polkit_app_construct (LXSESSION_TYPE_POLKIT_APP);
}


static void lxsession_polkit_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionPolkitApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	static GQuark _tmp4_label1 = 0;
	static GQuark _tmp4_label2 = 0;
	self = (LxsessionPolkitApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "polkit", "command");
	_g_free0 (self->priv->polkit_command);
	self->priv->polkit_command = _tmp1_;
	_tmp2_ = self->priv->polkit_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("gnome")))) {
		switch (0) {
			default:
			{
				gchar* create_command = NULL;
				gchar* _tmp6_ = NULL;
				const gchar* _tmp7_ = NULL;
				gchar** _tmp8_ = NULL;
				gchar** _tmp9_ = NULL;
				gchar** _tmp10_ = NULL;
				gint _tmp10__length1 = 0;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, "polkit-gnome-authentication-agent-1");
				_tmp6_ = g_strdup ("/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1");
				create_command = _tmp6_;
				_tmp7_ = create_command;
				_tmp9_ = _tmp8_ = g_strsplit_set (_tmp7_, " ", 0);
				_tmp10_ = _tmp9_;
				_tmp10__length1 = _vala_array_length (_tmp8_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp10_, _vala_array_length (_tmp8_));
				_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("razorqt")))) {
		switch (0) {
			default:
			{
				gchar* create_command = NULL;
				gchar* _tmp11_ = NULL;
				const gchar* _tmp12_ = NULL;
				gchar** _tmp13_ = NULL;
				gchar** _tmp14_ = NULL;
				gchar** _tmp15_ = NULL;
				gint _tmp15__length1 = 0;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, "razor-policykit-agent");
				_tmp11_ = g_strdup ("/usr/bin/razor-policykit-agent");
				create_command = _tmp11_;
				_tmp12_ = create_command;
				_tmp14_ = _tmp13_ = g_strsplit_set (_tmp12_, " ", 0);
				_tmp15_ = _tmp14_;
				_tmp15__length1 = _vala_array_length (_tmp13_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp15_, _vala_array_length (_tmp13_));
				_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("lxpolkit")))) {
		switch (0) {
			default:
			{
				gchar* create_command = NULL;
				gchar* _tmp16_ = NULL;
				const gchar* _tmp17_ = NULL;
				gchar** _tmp18_ = NULL;
				gchar** _tmp19_ = NULL;
				gchar** _tmp20_ = NULL;
				gint _tmp20__length1 = 0;
				g_message ("app.vala:721: polkit separate");
				lxsession_app_object_set_name ((LxsessionAppObject*) self, "lxpolkit");
				_tmp16_ = g_strdup ("lxpolkit");
				create_command = _tmp16_;
				_tmp17_ = create_command;
				_tmp19_ = _tmp18_ = g_strsplit_set (_tmp17_, " ", 0);
				_tmp20_ = _tmp19_;
				_tmp20__length1 = _vala_array_length (_tmp18_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp20_, _vala_array_length (_tmp18_));
				_tmp20_ = (_vala_array_free (_tmp20_, _tmp20__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	}
	lxsession_app_object_set_guard ((LxsessionAppObject*) self, TRUE);
}


void lxsession_polkit_app_deactivate (LxsessionPolkitApp* self) {
	g_return_if_fail (self != NULL);
}


static void lxsession_polkit_app_class_init (LxsessionPolkitAppClass * klass) {
	lxsession_polkit_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionPolkitAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_polkit_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_polkit_app_finalize;
}


static void lxsession_polkit_app_instance_init (LxsessionPolkitApp * self) {
	self->priv = LXSESSION_POLKIT_APP_GET_PRIVATE (self);
}


static void lxsession_polkit_app_finalize (GObject* obj) {
	LxsessionPolkitApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_POLKIT_APP, LxsessionPolkitApp);
	_g_free0 (self->priv->polkit_command);
	G_OBJECT_CLASS (lxsession_polkit_app_parent_class)->finalize (obj);
}


GType lxsession_polkit_app_get_type (void) {
	static volatile gsize lxsession_polkit_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_polkit_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionPolkitAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_polkit_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionPolkitApp), 0, (GInstanceInitFunc) lxsession_polkit_app_instance_init, NULL };
		GType lxsession_polkit_app_type_id;
		lxsession_polkit_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionPolkitApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_polkit_app_type_id__volatile, lxsession_polkit_app_type_id);
	}
	return lxsession_polkit_app_type_id__volatile;
}


LxsessionNetworkGuiApp* lxsession_network_gui_app_construct (GType object_type) {
	LxsessionNetworkGuiApp * self = NULL;
	self = (LxsessionNetworkGuiApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionNetworkGuiApp* lxsession_network_gui_app_new (void) {
	return lxsession_network_gui_app_construct (LXSESSION_TYPE_NETWORK_GUI_APP);
}


static void lxsession_network_gui_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionNetworkGuiApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	GQuark _tmp7_ = 0U;
	static GQuark _tmp6_label0 = 0;
	static GQuark _tmp6_label1 = 0;
	self = (LxsessionNetworkGuiApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "network_gui", "command");
	_g_free0 (self->priv->network_command);
	self->priv->network_command = _tmp1_;
	_tmp2_ = lxsession_global_settings;
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp2_, "State", "laptop_mode", NULL);
	_g_free0 (self->priv->laptop_mode);
	self->priv->laptop_mode = _tmp3_;
	_tmp4_ = self->priv->network_command;
	_tmp5_ = _tmp4_;
	_tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
	if (_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("no")))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label1) ? _tmp6_label1 : (_tmp6_label1 = g_quark_from_static_string ("auto")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp8_ = NULL;
				_tmp8_ = self->priv->laptop_mode;
				if (g_strcmp0 (_tmp8_, "yes") == 0) {
					gchar* test_nm_applet = NULL;
					gchar* _tmp9_ = NULL;
					const gchar* _tmp10_ = NULL;
					_tmp9_ = g_find_program_in_path ("nm-applet");
					test_nm_applet = _tmp9_;
					_tmp10_ = test_nm_applet;
					if (_tmp10_ != NULL) {
						gchar* create_command = NULL;
						gchar* _tmp11_ = NULL;
						const gchar* _tmp12_ = NULL;
						gchar** _tmp13_ = NULL;
						gchar** _tmp14_ = NULL;
						gchar** _tmp15_ = NULL;
						gint _tmp15__length1 = 0;
						lxsession_app_object_set_name ((LxsessionAppObject*) self, "nm-applet");
						_tmp11_ = g_strdup ("nm-applet");
						create_command = _tmp11_;
						_tmp12_ = create_command;
						_tmp14_ = _tmp13_ = g_strsplit_set (_tmp12_, " ", 0);
						_tmp15_ = _tmp14_;
						_tmp15__length1 = _vala_array_length (_tmp13_);
						lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp15_, _vala_array_length (_tmp13_));
						_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
						_g_free0 (create_command);
						_g_free0 (test_nm_applet);
						break;
					} else {
						gchar* test_wicd = NULL;
						gchar* _tmp16_ = NULL;
						const gchar* _tmp17_ = NULL;
						_tmp16_ = g_find_program_in_path ("wicd");
						test_wicd = _tmp16_;
						_tmp17_ = test_wicd;
						if (_tmp17_ != NULL) {
							gchar* create_command = NULL;
							gchar* _tmp18_ = NULL;
							const gchar* _tmp19_ = NULL;
							gchar** _tmp20_ = NULL;
							gchar** _tmp21_ = NULL;
							gchar** _tmp22_ = NULL;
							gint _tmp22__length1 = 0;
							lxsession_app_object_set_name ((LxsessionAppObject*) self, "wicd");
							_tmp18_ = g_strdup ("wicd");
							create_command = _tmp18_;
							_tmp19_ = create_command;
							_tmp21_ = _tmp20_ = g_strsplit_set (_tmp19_, " ", 0);
							_tmp22_ = _tmp21_;
							_tmp22__length1 = _vala_array_length (_tmp20_);
							lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp22_, _vala_array_length (_tmp20_));
							_tmp22_ = (_vala_array_free (_tmp22_, _tmp22__length1, (GDestroyNotify) g_free), NULL);
							_g_free0 (create_command);
							_g_free0 (test_wicd);
							_g_free0 (test_nm_applet);
							break;
						}
						_g_free0 (test_wicd);
					}
					_g_free0 (test_nm_applet);
				}
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp23_ = NULL;
				gchar** _tmp24_ = NULL;
				gchar** _tmp25_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp26_ = NULL;
				gint _tmp26__length1 = 0;
				const gchar* _tmp27_ = NULL;
				gchar** _tmp28_ = NULL;
				gint _tmp28__length1 = 0;
				_tmp23_ = self->priv->network_command;
				_tmp25_ = _tmp24_ = g_strsplit_set (_tmp23_, " ", 0);
				create_command = _tmp25_;
				create_command_length1 = _vala_array_length (_tmp24_);
				_create_command_size_ = create_command_length1;
				_tmp26_ = create_command;
				_tmp26__length1 = create_command_length1;
				_tmp27_ = _tmp26_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp27_);
				_tmp28_ = create_command;
				_tmp28__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp28_, _tmp28__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
	lxsession_app_object_set_guard ((LxsessionAppObject*) self, TRUE);
}


static void lxsession_network_gui_app_class_init (LxsessionNetworkGuiAppClass * klass) {
	lxsession_network_gui_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionNetworkGuiAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_network_gui_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_network_gui_app_finalize;
}


static void lxsession_network_gui_app_instance_init (LxsessionNetworkGuiApp * self) {
	self->priv = LXSESSION_NETWORK_GUI_APP_GET_PRIVATE (self);
}


static void lxsession_network_gui_app_finalize (GObject* obj) {
	LxsessionNetworkGuiApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_NETWORK_GUI_APP, LxsessionNetworkGuiApp);
	_g_free0 (self->priv->network_command);
	_g_free0 (self->priv->laptop_mode);
	G_OBJECT_CLASS (lxsession_network_gui_app_parent_class)->finalize (obj);
}


GType lxsession_network_gui_app_get_type (void) {
	static volatile gsize lxsession_network_gui_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_network_gui_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionNetworkGuiAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_network_gui_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionNetworkGuiApp), 0, (GInstanceInitFunc) lxsession_network_gui_app_instance_init, NULL };
		GType lxsession_network_gui_app_type_id;
		lxsession_network_gui_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionNetworkGuiApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_network_gui_app_type_id__volatile, lxsession_network_gui_app_type_id);
	}
	return lxsession_network_gui_app_type_id__volatile;
}


LxsessionAudioManagerApp* lxsession_audio_manager_app_construct (GType object_type) {
	LxsessionAudioManagerApp * self = NULL;
	self = (LxsessionAudioManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionAudioManagerApp* lxsession_audio_manager_app_new (void) {
	return lxsession_audio_manager_app_construct (LXSESSION_TYPE_AUDIO_MANAGER_APP);
}


static void lxsession_audio_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionAudioManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	self = (LxsessionAudioManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "audio_manager", "command");
	_g_free0 (self->priv->audiomanager_command);
	self->priv->audiomanager_command = _tmp1_;
	_tmp2_ = self->priv->audiomanager_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("alsamixer")))) {
		switch (0) {
			default:
			{
				gchar* create_command = NULL;
				gchar* _tmp6_ = NULL;
				const gchar* _tmp7_ = NULL;
				gchar** _tmp8_ = NULL;
				gchar** _tmp9_ = NULL;
				gchar** _tmp10_ = NULL;
				gint _tmp10__length1 = 0;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, "alsamixer");
				_tmp6_ = g_strdup ("xterm -e alsamixer");
				create_command = _tmp6_;
				_tmp7_ = create_command;
				_tmp9_ = _tmp8_ = g_strsplit_set (_tmp7_, " ", 0);
				_tmp10_ = _tmp9_;
				_tmp10__length1 = _vala_array_length (_tmp8_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp10_, _vala_array_length (_tmp8_));
				_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp11_ = NULL;
				gchar** _tmp12_ = NULL;
				gchar** _tmp13_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp14_ = NULL;
				gint _tmp14__length1 = 0;
				const gchar* _tmp15_ = NULL;
				gchar** _tmp16_ = NULL;
				gint _tmp16__length1 = 0;
				_tmp11_ = self->priv->audiomanager_command;
				_tmp13_ = _tmp12_ = g_strsplit_set (_tmp11_, " ", 0);
				create_command = _tmp13_;
				create_command_length1 = _vala_array_length (_tmp12_);
				_create_command_size_ = create_command_length1;
				_tmp14_ = create_command;
				_tmp14__length1 = create_command_length1;
				_tmp15_ = _tmp14_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp15_);
				_tmp16_ = create_command;
				_tmp16__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp16_, _tmp16__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


static void lxsession_audio_manager_app_class_init (LxsessionAudioManagerAppClass * klass) {
	lxsession_audio_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionAudioManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_audio_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_audio_manager_app_finalize;
}


static void lxsession_audio_manager_app_instance_init (LxsessionAudioManagerApp * self) {
	self->priv = LXSESSION_AUDIO_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_audio_manager_app_finalize (GObject* obj) {
	LxsessionAudioManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_AUDIO_MANAGER_APP, LxsessionAudioManagerApp);
	_g_free0 (self->priv->audiomanager_command);
	G_OBJECT_CLASS (lxsession_audio_manager_app_parent_class)->finalize (obj);
}


GType lxsession_audio_manager_app_get_type (void) {
	static volatile gsize lxsession_audio_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_audio_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionAudioManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_audio_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionAudioManagerApp), 0, (GInstanceInitFunc) lxsession_audio_manager_app_instance_init, NULL };
		GType lxsession_audio_manager_app_type_id;
		lxsession_audio_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionAudioManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_audio_manager_app_type_id__volatile, lxsession_audio_manager_app_type_id);
	}
	return lxsession_audio_manager_app_type_id__volatile;
}


LxsessionQuitManagerApp* lxsession_quit_manager_app_construct (GType object_type) {
	LxsessionQuitManagerApp * self = NULL;
	self = (LxsessionQuitManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionQuitManagerApp* lxsession_quit_manager_app_new (void) {
	return lxsession_quit_manager_app_construct (LXSESSION_TYPE_QUIT_MANAGER_APP);
}


static void lxsession_quit_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionQuitManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	const gchar* _tmp7_ = NULL;
	GQuark _tmp9_ = 0U;
	static GQuark _tmp8_label0 = 0;
	self = (LxsessionQuitManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "quit_manager", "command");
	_g_free0 (self->priv->quitmanager_command);
	self->priv->quitmanager_command = _tmp1_;
	_tmp2_ = lxsession_global_settings;
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp2_, "Session", "quit_manager", "image");
	_g_free0 (self->priv->quitmanager_image);
	self->priv->quitmanager_image = _tmp3_;
	_tmp4_ = lxsession_global_settings;
	_tmp5_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp4_, "Session", "quit_manager", "layout");
	_g_free0 (self->priv->quitmanager_layout);
	self->priv->quitmanager_layout = _tmp5_;
	_tmp6_ = self->priv->quitmanager_command;
	_tmp7_ = _tmp6_;
	_tmp9_ = (NULL == _tmp7_) ? 0 : g_quark_from_string (_tmp7_);
	if (_tmp9_ == ((0 != _tmp8_label0) ? _tmp8_label0 : (_tmp8_label0 = g_quark_from_static_string ("lxsession-logout")))) {
		switch (0) {
			default:
			{
				gchar* create_command = NULL;
				const gchar* _tmp10_ = NULL;
				gchar* _tmp11_ = NULL;
				gchar* _tmp12_ = NULL;
				gchar* _tmp13_ = NULL;
				gchar* _tmp14_ = NULL;
				const gchar* _tmp15_ = NULL;
				gchar* _tmp16_ = NULL;
				gchar* _tmp17_ = NULL;
				const gchar* _tmp18_ = NULL;
				gchar** _tmp19_ = NULL;
				gchar** _tmp20_ = NULL;
				gchar** _tmp21_ = NULL;
				gint _tmp21__length1 = 0;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, "lxsession-logout");
				_tmp10_ = self->priv->quitmanager_image;
				_tmp11_ = g_strconcat ("lxsession-logout --banner ", _tmp10_, NULL);
				_tmp12_ = _tmp11_;
				_tmp13_ = g_strconcat (_tmp12_, " --side=", NULL);
				_tmp14_ = _tmp13_;
				_tmp15_ = self->priv->quitmanager_layout;
				_tmp16_ = g_strconcat (_tmp14_, _tmp15_, NULL);
				_tmp17_ = _tmp16_;
				_g_free0 (_tmp14_);
				_g_free0 (_tmp12_);
				create_command = _tmp17_;
				_tmp18_ = create_command;
				_tmp20_ = _tmp19_ = g_strsplit_set (_tmp18_, " ", 0);
				_tmp21_ = _tmp20_;
				_tmp21__length1 = _vala_array_length (_tmp19_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp21_, _vala_array_length (_tmp19_));
				_tmp21_ = (_vala_array_free (_tmp21_, _tmp21__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp22_ = NULL;
				gchar** _tmp23_ = NULL;
				gchar** _tmp24_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp25_ = NULL;
				gint _tmp25__length1 = 0;
				const gchar* _tmp26_ = NULL;
				gchar** _tmp27_ = NULL;
				gint _tmp27__length1 = 0;
				_tmp22_ = self->priv->quitmanager_command;
				_tmp24_ = _tmp23_ = g_strsplit_set (_tmp22_, " ", 0);
				create_command = _tmp24_;
				create_command_length1 = _vala_array_length (_tmp23_);
				_create_command_size_ = create_command_length1;
				_tmp25_ = create_command;
				_tmp25__length1 = create_command_length1;
				_tmp26_ = _tmp25_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp26_);
				_tmp27_ = create_command;
				_tmp27__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp27_, _tmp27__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


static void lxsession_quit_manager_app_class_init (LxsessionQuitManagerAppClass * klass) {
	lxsession_quit_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionQuitManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_quit_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_quit_manager_app_finalize;
}


static void lxsession_quit_manager_app_instance_init (LxsessionQuitManagerApp * self) {
	self->priv = LXSESSION_QUIT_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_quit_manager_app_finalize (GObject* obj) {
	LxsessionQuitManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_QUIT_MANAGER_APP, LxsessionQuitManagerApp);
	_g_free0 (self->priv->quitmanager_command);
	_g_free0 (self->priv->quitmanager_image);
	_g_free0 (self->priv->quitmanager_layout);
	G_OBJECT_CLASS (lxsession_quit_manager_app_parent_class)->finalize (obj);
}


GType lxsession_quit_manager_app_get_type (void) {
	static volatile gsize lxsession_quit_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_quit_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionQuitManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_quit_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionQuitManagerApp), 0, (GInstanceInitFunc) lxsession_quit_manager_app_instance_init, NULL };
		GType lxsession_quit_manager_app_type_id;
		lxsession_quit_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionQuitManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_quit_manager_app_type_id__volatile, lxsession_quit_manager_app_type_id);
	}
	return lxsession_quit_manager_app_type_id__volatile;
}


LxsessionWorkspaceManagerApp* lxsession_workspace_manager_app_construct (GType object_type) {
	LxsessionWorkspaceManagerApp * self = NULL;
	self = (LxsessionWorkspaceManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionWorkspaceManagerApp* lxsession_workspace_manager_app_new (void) {
	return lxsession_workspace_manager_app_construct (LXSESSION_TYPE_WORKSPACE_MANAGER_APP);
}


static void lxsession_workspace_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionWorkspaceManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	self = (LxsessionWorkspaceManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "workspace_manager", "command");
	_g_free0 (self->priv->workspacemanager_command);
	self->priv->workspacemanager_command = _tmp1_;
	_tmp2_ = self->priv->workspacemanager_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("obconf")))) {
		switch (0) {
			default:
			{
				gchar* create_command = NULL;
				gchar* _tmp6_ = NULL;
				const gchar* _tmp7_ = NULL;
				gchar** _tmp8_ = NULL;
				gchar** _tmp9_ = NULL;
				gchar** _tmp10_ = NULL;
				gint _tmp10__length1 = 0;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, "obconf");
				_tmp6_ = g_strdup ("obconf --tab 6");
				create_command = _tmp6_;
				_tmp7_ = create_command;
				_tmp9_ = _tmp8_ = g_strsplit_set (_tmp7_, " ", 0);
				_tmp10_ = _tmp9_;
				_tmp10__length1 = _vala_array_length (_tmp8_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp10_, _vala_array_length (_tmp8_));
				_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp11_ = NULL;
				gchar** _tmp12_ = NULL;
				gchar** _tmp13_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp14_ = NULL;
				gint _tmp14__length1 = 0;
				const gchar* _tmp15_ = NULL;
				gchar** _tmp16_ = NULL;
				gint _tmp16__length1 = 0;
				_tmp11_ = self->priv->workspacemanager_command;
				_tmp13_ = _tmp12_ = g_strsplit_set (_tmp11_, " ", 0);
				create_command = _tmp13_;
				create_command_length1 = _vala_array_length (_tmp12_);
				_create_command_size_ = create_command_length1;
				_tmp14_ = create_command;
				_tmp14__length1 = create_command_length1;
				_tmp15_ = _tmp14_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp15_);
				_tmp16_ = create_command;
				_tmp16__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp16_, _tmp16__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


static void lxsession_workspace_manager_app_class_init (LxsessionWorkspaceManagerAppClass * klass) {
	lxsession_workspace_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionWorkspaceManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_workspace_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_workspace_manager_app_finalize;
}


static void lxsession_workspace_manager_app_instance_init (LxsessionWorkspaceManagerApp * self) {
	self->priv = LXSESSION_WORKSPACE_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_workspace_manager_app_finalize (GObject* obj) {
	LxsessionWorkspaceManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_WORKSPACE_MANAGER_APP, LxsessionWorkspaceManagerApp);
	_g_free0 (self->priv->workspacemanager_command);
	G_OBJECT_CLASS (lxsession_workspace_manager_app_parent_class)->finalize (obj);
}


GType lxsession_workspace_manager_app_get_type (void) {
	static volatile gsize lxsession_workspace_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_workspace_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionWorkspaceManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_workspace_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionWorkspaceManagerApp), 0, (GInstanceInitFunc) lxsession_workspace_manager_app_instance_init, NULL };
		GType lxsession_workspace_manager_app_type_id;
		lxsession_workspace_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionWorkspaceManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_workspace_manager_app_type_id__volatile, lxsession_workspace_manager_app_type_id);
	}
	return lxsession_workspace_manager_app_type_id__volatile;
}


LxsessionLauncherManagerApp* lxsession_launcher_manager_app_construct (GType object_type) {
	LxsessionLauncherManagerApp * self = NULL;
	self = (LxsessionLauncherManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionLauncherManagerApp* lxsession_launcher_manager_app_new (void) {
	return lxsession_launcher_manager_app_construct (LXSESSION_TYPE_LAUNCHER_MANAGER_APP);
}


static void lxsession_launcher_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionLauncherManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	self = (LxsessionLauncherManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "launcher_manager", "command");
	_g_free0 (self->priv->launchermanager_command);
	self->priv->launchermanager_command = _tmp1_;
	_tmp2_ = self->priv->launchermanager_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("lxpanelctl")))) {
		switch (0) {
			default:
			{
				gchar* create_command = NULL;
				gchar* _tmp6_ = NULL;
				const gchar* _tmp7_ = NULL;
				gchar** _tmp8_ = NULL;
				gchar** _tmp9_ = NULL;
				gchar** _tmp10_ = NULL;
				gint _tmp10__length1 = 0;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, "lxpanelctl");
				_tmp6_ = g_strdup ("lxpanelctl run");
				create_command = _tmp6_;
				_tmp7_ = create_command;
				_tmp9_ = _tmp8_ = g_strsplit_set (_tmp7_, " ", 0);
				_tmp10_ = _tmp9_;
				_tmp10__length1 = _vala_array_length (_tmp8_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp10_, _vala_array_length (_tmp8_));
				_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp11_ = NULL;
				gchar** _tmp12_ = NULL;
				gchar** _tmp13_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp14_ = NULL;
				gint _tmp14__length1 = 0;
				const gchar* _tmp15_ = NULL;
				gchar** _tmp16_ = NULL;
				gint _tmp16__length1 = 0;
				_tmp11_ = self->priv->launchermanager_command;
				_tmp13_ = _tmp12_ = g_strsplit_set (_tmp11_, " ", 0);
				create_command = _tmp13_;
				create_command_length1 = _vala_array_length (_tmp12_);
				_create_command_size_ = create_command_length1;
				_tmp14_ = create_command;
				_tmp14__length1 = create_command_length1;
				_tmp15_ = _tmp14_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp15_);
				_tmp16_ = create_command;
				_tmp16__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp16_, _tmp16__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


void lxsession_launcher_manager_app_autostart_launch (LxsessionLauncherManagerApp* self) {
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->launchermanager_command;
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("synapse")))) {
		switch (0) {
			default:
			{
				gchar* create_autostart_command = NULL;
				gchar* _tmp4_ = NULL;
				const gchar* _tmp5_ = NULL;
				_tmp4_ = g_strdup ("synapse --startup");
				create_autostart_command = _tmp4_;
				_tmp5_ = create_autostart_command;
				lxsession_lxsession_spawn_command_line_async (_tmp5_);
				_g_free0 (create_autostart_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				lxsession_app_object_launch ((LxsessionAppObject*) self);
				break;
			}
		}
	}
}


static void lxsession_launcher_manager_app_class_init (LxsessionLauncherManagerAppClass * klass) {
	lxsession_launcher_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionLauncherManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_launcher_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_launcher_manager_app_finalize;
}


static void lxsession_launcher_manager_app_instance_init (LxsessionLauncherManagerApp * self) {
	self->priv = LXSESSION_LAUNCHER_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_launcher_manager_app_finalize (GObject* obj) {
	LxsessionLauncherManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_LAUNCHER_MANAGER_APP, LxsessionLauncherManagerApp);
	_g_free0 (self->priv->launchermanager_command);
	G_OBJECT_CLASS (lxsession_launcher_manager_app_parent_class)->finalize (obj);
}


GType lxsession_launcher_manager_app_get_type (void) {
	static volatile gsize lxsession_launcher_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_launcher_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionLauncherManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_launcher_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionLauncherManagerApp), 0, (GInstanceInitFunc) lxsession_launcher_manager_app_instance_init, NULL };
		GType lxsession_launcher_manager_app_type_id;
		lxsession_launcher_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionLauncherManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_launcher_manager_app_type_id__volatile, lxsession_launcher_manager_app_type_id);
	}
	return lxsession_launcher_manager_app_type_id__volatile;
}


LxsessionTerminalManagerApp* lxsession_terminal_manager_app_construct (GType object_type) {
	LxsessionTerminalManagerApp * self = NULL;
	self = (LxsessionTerminalManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionTerminalManagerApp* lxsession_terminal_manager_app_new (void) {
	return lxsession_terminal_manager_app_construct (LXSESSION_TYPE_TERMINAL_MANAGER_APP);
}


static void lxsession_terminal_manager_app_real_read_config_settings (LxsessionAppObject* base) {
	LxsessionTerminalManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	self = (LxsessionTerminalManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "terminal_manager", "command");
	_g_free0 (self->priv->terminalmanager_command);
	self->priv->terminalmanager_command = _tmp1_;
}


static void lxsession_terminal_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionTerminalManagerApp * self;
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	self = (LxsessionTerminalManagerApp*) base;
	_tmp0_ = self->priv->terminalmanager_command;
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("lxterminal")))) {
		switch (0) {
			default:
			{
				gchar* create_command = NULL;
				gchar* _tmp4_ = NULL;
				const gchar* _tmp5_ = NULL;
				gchar** _tmp6_ = NULL;
				gchar** _tmp7_ = NULL;
				gchar** _tmp8_ = NULL;
				gint _tmp8__length1 = 0;
				lxsession_app_object_set_name ((LxsessionAppObject*) self, "lxterminal");
				_tmp4_ = g_strdup ("lxterminal -e");
				create_command = _tmp4_;
				_tmp5_ = create_command;
				_tmp7_ = _tmp6_ = g_strsplit_set (_tmp5_, " ", 0);
				_tmp8_ = _tmp7_;
				_tmp8__length1 = _vala_array_length (_tmp6_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp8_, _vala_array_length (_tmp6_));
				_tmp8_ = (_vala_array_free (_tmp8_, _tmp8__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp9_ = NULL;
				gchar** _tmp10_ = NULL;
				gchar** _tmp11_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp12_ = NULL;
				gint _tmp12__length1 = 0;
				const gchar* _tmp13_ = NULL;
				gchar** _tmp14_ = NULL;
				gint _tmp14__length1 = 0;
				_tmp9_ = self->priv->terminalmanager_command;
				_tmp11_ = _tmp10_ = g_strsplit_set (_tmp9_, " ", 0);
				create_command = _tmp11_;
				create_command_length1 = _vala_array_length (_tmp10_);
				_create_command_size_ = create_command_length1;
				_tmp12_ = create_command;
				_tmp12__length1 = create_command_length1;
				_tmp13_ = _tmp12_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp13_);
				_tmp14_ = create_command;
				_tmp14__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp14_, _tmp14__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


void lxsession_terminal_manager_app_launch (LxsessionTerminalManagerApp* self, const gchar* argument) {
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (argument != NULL);
	_tmp0_ = argument;
	if (g_strcmp0 (_tmp0_, "") == 0) {
		argument = NULL;
	}
	_tmp1_ = argument;
	lxsession_app_object_generic_launch ((LxsessionAppObject*) self, _tmp1_);
}


static void lxsession_terminal_manager_app_class_init (LxsessionTerminalManagerAppClass * klass) {
	lxsession_terminal_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionTerminalManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_config_settings = lxsession_terminal_manager_app_real_read_config_settings;
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_terminal_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_terminal_manager_app_finalize;
}


static void lxsession_terminal_manager_app_instance_init (LxsessionTerminalManagerApp * self) {
	self->priv = LXSESSION_TERMINAL_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_terminal_manager_app_finalize (GObject* obj) {
	LxsessionTerminalManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_TERMINAL_MANAGER_APP, LxsessionTerminalManagerApp);
	_g_free0 (self->priv->terminalmanager_command);
	G_OBJECT_CLASS (lxsession_terminal_manager_app_parent_class)->finalize (obj);
}


GType lxsession_terminal_manager_app_get_type (void) {
	static volatile gsize lxsession_terminal_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_terminal_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionTerminalManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_terminal_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionTerminalManagerApp), 0, (GInstanceInitFunc) lxsession_terminal_manager_app_instance_init, NULL };
		GType lxsession_terminal_manager_app_type_id;
		lxsession_terminal_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionTerminalManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_terminal_manager_app_type_id__volatile, lxsession_terminal_manager_app_type_id);
	}
	return lxsession_terminal_manager_app_type_id__volatile;
}


LxsessionProxyManagerApp* lxsession_proxy_manager_app_construct (GType object_type) {
	LxsessionProxyManagerApp * self = NULL;
	self = (LxsessionProxyManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionProxyManagerApp* lxsession_proxy_manager_app_new (void) {
	return lxsession_proxy_manager_app_construct (LXSESSION_TYPE_PROXY_MANAGER_APP);
}


static void lxsession_proxy_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionProxyManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	GQuark _tmp7_ = 0U;
	static GQuark _tmp6_label0 = 0;
	self = (LxsessionProxyManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "proxy_manager", "command");
	_g_free0 (self->priv->proxymanager_command);
	self->priv->proxymanager_command = _tmp1_;
	_tmp2_ = lxsession_global_settings;
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp2_, "Session", "proxy_manager", "http");
	_g_free0 (self->priv->proxymanager_http);
	self->priv->proxymanager_http = _tmp3_;
	_tmp4_ = self->priv->proxymanager_command;
	_tmp5_ = _tmp4_;
	_tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
	if (_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("build-in")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp8_ = NULL;
				const gchar* _tmp9_ = NULL;
				GQuark _tmp11_ = 0U;
				static GQuark _tmp10_label0 = 0;
				static GQuark _tmp10_label1 = 0;
				static GQuark _tmp10_label2 = 0;
				_tmp8_ = self->priv->proxymanager_http;
				_tmp9_ = _tmp8_;
				_tmp11_ = (NULL == _tmp9_) ? 0 : g_quark_from_string (_tmp9_);
				if (_tmp11_ == ((0 != _tmp10_label0) ? _tmp10_label0 : (_tmp10_label0 = g_quark_from_static_string (NULL)))) {
					switch (0) {
						default:
						{
							break;
						}
					}
				} else if (_tmp11_ == ((0 != _tmp10_label1) ? _tmp10_label1 : (_tmp10_label1 = g_quark_from_static_string ("")))) {
					switch (0) {
						default:
						{
							break;
						}
					}
				} else if (_tmp11_ == ((0 != _tmp10_label2) ? _tmp10_label2 : (_tmp10_label2 = g_quark_from_static_string (" ")))) {
					switch (0) {
						default:
						{
							break;
						}
					}
				} else {
					switch (0) {
						default:
						{
							const gchar* _tmp12_ = NULL;
							_tmp12_ = self->priv->proxymanager_http;
							g_setenv ("HTTP_PROXY", _tmp12_, TRUE);
							break;
						}
					}
				}
				break;
			}
		}
	}
}


static void lxsession_proxy_manager_app_class_init (LxsessionProxyManagerAppClass * klass) {
	lxsession_proxy_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionProxyManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_proxy_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_proxy_manager_app_finalize;
}


static void lxsession_proxy_manager_app_instance_init (LxsessionProxyManagerApp * self) {
	self->priv = LXSESSION_PROXY_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_proxy_manager_app_finalize (GObject* obj) {
	LxsessionProxyManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_PROXY_MANAGER_APP, LxsessionProxyManagerApp);
	_g_free0 (self->priv->proxymanager_command);
	_g_free0 (self->priv->proxymanager_http);
	G_OBJECT_CLASS (lxsession_proxy_manager_app_parent_class)->finalize (obj);
}


GType lxsession_proxy_manager_app_get_type (void) {
	static volatile gsize lxsession_proxy_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_proxy_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionProxyManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_proxy_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionProxyManagerApp), 0, (GInstanceInitFunc) lxsession_proxy_manager_app_instance_init, NULL };
		GType lxsession_proxy_manager_app_type_id;
		lxsession_proxy_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionProxyManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_proxy_manager_app_type_id__volatile, lxsession_proxy_manager_app_type_id);
	}
	return lxsession_proxy_manager_app_type_id__volatile;
}


LxsessionA11yApp* lxsession_a11y_app_construct (GType object_type) {
	LxsessionA11yApp * self = NULL;
	self = (LxsessionA11yApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionA11yApp* lxsession_a11y_app_new (void) {
	return lxsession_a11y_app_construct (LXSESSION_TYPE_A11Y_APP);
}


static void lxsession_a11y_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionA11yApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	static GQuark _tmp4_label1 = 0;
	static GQuark _tmp4_label2 = 0;
	static GQuark _tmp4_label3 = 0;
	self = (LxsessionA11yApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "a11y", "command");
	_g_free0 (self->priv->a11y_command);
	self->priv->a11y_command = _tmp1_;
	_tmp2_ = self->priv->a11y_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("gnome")))) {
		switch (0) {
			default:
			{
				gchar* tmp_command = NULL;
				gchar* _tmp6_ = NULL;
				gchar** create_command = NULL;
				const gchar* _tmp7_ = NULL;
				gchar** _tmp8_ = NULL;
				gchar** _tmp9_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp10_ = NULL;
				gint _tmp10__length1 = 0;
				const gchar* _tmp11_ = NULL;
				gchar** _tmp12_ = NULL;
				gint _tmp12__length1 = 0;
				_tmp6_ = g_strdup ("/usr/lib/at-spi2-core/at-spi-bus-launcher --launch-immediately");
				tmp_command = _tmp6_;
				_tmp7_ = tmp_command;
				_tmp9_ = _tmp8_ = g_strsplit_set (_tmp7_, " ", 0);
				create_command = _tmp9_;
				create_command_length1 = _vala_array_length (_tmp8_);
				_create_command_size_ = create_command_length1;
				_tmp10_ = create_command;
				_tmp10__length1 = create_command_length1;
				_tmp11_ = _tmp10_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp11_);
				_tmp12_ = create_command;
				_tmp12__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp12_, _tmp12__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (tmp_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp13_ = NULL;
				gchar** _tmp14_ = NULL;
				gchar** _tmp15_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp16_ = NULL;
				gint _tmp16__length1 = 0;
				const gchar* _tmp17_ = NULL;
				gchar** _tmp18_ = NULL;
				gint _tmp18__length1 = 0;
				_tmp13_ = self->priv->a11y_command;
				_tmp15_ = _tmp14_ = g_strsplit_set (_tmp13_, " ", 0);
				create_command = _tmp15_;
				create_command_length1 = _vala_array_length (_tmp14_);
				_create_command_size_ = create_command_length1;
				_tmp16_ = create_command;
				_tmp16__length1 = create_command_length1;
				_tmp17_ = _tmp16_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp17_);
				_tmp18_ = create_command;
				_tmp18__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp18_, _tmp18__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


static void lxsession_a11y_app_class_init (LxsessionA11yAppClass * klass) {
	lxsession_a11y_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionA11yAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_a11y_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_a11y_app_finalize;
}


static void lxsession_a11y_app_instance_init (LxsessionA11yApp * self) {
	self->priv = LXSESSION_A11Y_APP_GET_PRIVATE (self);
}


static void lxsession_a11y_app_finalize (GObject* obj) {
	LxsessionA11yApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_A11Y_APP, LxsessionA11yApp);
	_g_free0 (self->priv->a11y_command);
	G_OBJECT_CLASS (lxsession_a11y_app_parent_class)->finalize (obj);
}


GType lxsession_a11y_app_get_type (void) {
	static volatile gsize lxsession_a11y_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_a11y_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionA11yAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_a11y_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionA11yApp), 0, (GInstanceInitFunc) lxsession_a11y_app_instance_init, NULL };
		GType lxsession_a11y_app_type_id;
		lxsession_a11y_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionA11yApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_a11y_app_type_id__volatile, lxsession_a11y_app_type_id);
	}
	return lxsession_a11y_app_type_id__volatile;
}


LxsessionXrandrApp* lxsession_xrandr_app_construct (GType object_type) {
	LxsessionXrandrApp * self = NULL;
	self = (LxsessionXrandrApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionXrandrApp* lxsession_xrandr_app_new (void) {
	return lxsession_xrandr_app_construct (LXSESSION_TYPE_XRANDR_APP);
}


static void lxsession_xrandr_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionXrandrApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	static GQuark _tmp4_label1 = 0;
	static GQuark _tmp4_label2 = 0;
	self = (LxsessionXrandrApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "xrandr", "command");
	_g_free0 (self->priv->xrandr_command);
	self->priv->xrandr_command = _tmp1_;
	_tmp2_ = self->priv->xrandr_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp6_ = NULL;
				gchar** _tmp7_ = NULL;
				gchar** _tmp8_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp9_ = NULL;
				gint _tmp9__length1 = 0;
				const gchar* _tmp10_ = NULL;
				gchar** _tmp11_ = NULL;
				gint _tmp11__length1 = 0;
				_tmp6_ = self->priv->xrandr_command;
				_tmp8_ = _tmp7_ = g_strsplit_set (_tmp6_, " ", 0);
				create_command = _tmp8_;
				create_command_length1 = _vala_array_length (_tmp7_);
				_create_command_size_ = create_command_length1;
				_tmp9_ = create_command;
				_tmp9__length1 = create_command_length1;
				_tmp10_ = _tmp9_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp10_);
				_tmp11_ = create_command;
				_tmp11__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp11_, _tmp11__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


static void lxsession_xrandr_app_class_init (LxsessionXrandrAppClass * klass) {
	lxsession_xrandr_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionXrandrAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_xrandr_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_xrandr_app_finalize;
}


static void lxsession_xrandr_app_instance_init (LxsessionXrandrApp * self) {
	self->priv = LXSESSION_XRANDR_APP_GET_PRIVATE (self);
}


static void lxsession_xrandr_app_finalize (GObject* obj) {
	LxsessionXrandrApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_XRANDR_APP, LxsessionXrandrApp);
	_g_free0 (self->priv->xrandr_command);
	G_OBJECT_CLASS (lxsession_xrandr_app_parent_class)->finalize (obj);
}


GType lxsession_xrandr_app_get_type (void) {
	static volatile gsize lxsession_xrandr_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_xrandr_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionXrandrAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_xrandr_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionXrandrApp), 0, (GInstanceInitFunc) lxsession_xrandr_app_instance_init, NULL };
		GType lxsession_xrandr_app_type_id;
		lxsession_xrandr_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionXrandrApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_xrandr_app_type_id__volatile, lxsession_xrandr_app_type_id);
	}
	return lxsession_xrandr_app_type_id__volatile;
}


LxsessionKeyringApp* lxsession_keyring_app_construct (GType object_type) {
	LxsessionKeyringApp * self = NULL;
	self = (LxsessionKeyringApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionKeyringApp* lxsession_keyring_app_new (void) {
	return lxsession_keyring_app_construct (LXSESSION_TYPE_KEYRING_APP);
}


static void lxsession_keyring_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionKeyringApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	LxsessionLxsessionConfigKeyFile* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	GQuark _tmp7_ = 0U;
	static GQuark _tmp6_label0 = 0;
	static GQuark _tmp6_label1 = 0;
	self = (LxsessionKeyringApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "keyring", "command");
	_g_free0 (self->priv->keyring_command);
	self->priv->keyring_command = _tmp1_;
	_tmp2_ = lxsession_global_settings;
	_tmp3_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp2_, "Session", "keyring", "type");
	_g_free0 (self->priv->keyring_type);
	self->priv->keyring_type = _tmp3_;
	_tmp4_ = self->priv->keyring_command;
	_tmp5_ = _tmp4_;
	_tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
	if (_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("gnome-all")))) {
		switch (0) {
			default:
			{
				gchar* tmp_command = NULL;
				gchar* _tmp8_ = NULL;
				gchar** create_command = NULL;
				const gchar* _tmp9_ = NULL;
				gchar** _tmp10_ = NULL;
				gchar** _tmp11_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp12_ = NULL;
				gint _tmp12__length1 = 0;
				const gchar* _tmp13_ = NULL;
				gchar** _tmp14_ = NULL;
				gint _tmp14__length1 = 0;
				_tmp8_ = g_strdup ("gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg");
				tmp_command = _tmp8_;
				_tmp9_ = tmp_command;
				_tmp11_ = _tmp10_ = g_strsplit_set (_tmp9_, " ", 0);
				create_command = _tmp11_;
				create_command_length1 = _vala_array_length (_tmp10_);
				_create_command_size_ = create_command_length1;
				_tmp12_ = create_command;
				_tmp12__length1 = create_command_length1;
				_tmp13_ = _tmp12_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp13_);
				_tmp14_ = create_command;
				_tmp14__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp14_, _tmp14__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (tmp_command);
				break;
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label1) ? _tmp6_label1 : (_tmp6_label1 = g_quark_from_static_string ("ssh-agent")))) {
		switch (0) {
			default:
			{
				gchar* tmp_command = NULL;
				gchar* _tmp15_ = NULL;
				gchar** create_command = NULL;
				const gchar* _tmp16_ = NULL;
				gchar** _tmp17_ = NULL;
				gchar** _tmp18_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp19_ = NULL;
				gint _tmp19__length1 = 0;
				const gchar* _tmp20_ = NULL;
				gchar** _tmp21_ = NULL;
				gint _tmp21__length1 = 0;
				_tmp15_ = g_strdup ("/usr/bin/ssh-agent -s");
				tmp_command = _tmp15_;
				_tmp16_ = tmp_command;
				_tmp18_ = _tmp17_ = g_strsplit_set (_tmp16_, " ", 0);
				create_command = _tmp18_;
				create_command_length1 = _vala_array_length (_tmp17_);
				_create_command_size_ = create_command_length1;
				_tmp19_ = create_command;
				_tmp19__length1 = create_command_length1;
				_tmp20_ = _tmp19_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp20_);
				_tmp21_ = create_command;
				_tmp21__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp21_, _tmp21__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (tmp_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp22_ = NULL;
				gchar** _tmp23_ = NULL;
				gchar** _tmp24_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp25_ = NULL;
				gint _tmp25__length1 = 0;
				const gchar* _tmp26_ = NULL;
				gchar** _tmp27_ = NULL;
				gint _tmp27__length1 = 0;
				_tmp22_ = self->priv->keyring_command;
				_tmp24_ = _tmp23_ = g_strsplit_set (_tmp22_, " ", 0);
				create_command = _tmp24_;
				create_command_length1 = _vala_array_length (_tmp23_);
				_create_command_size_ = create_command_length1;
				_tmp25_ = create_command;
				_tmp25__length1 = create_command_length1;
				_tmp26_ = _tmp25_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp26_);
				_tmp27_ = create_command;
				_tmp27__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp27_, _tmp27__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


static void lxsession_keyring_app_class_init (LxsessionKeyringAppClass * klass) {
	lxsession_keyring_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionKeyringAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_keyring_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_keyring_app_finalize;
}


static void lxsession_keyring_app_instance_init (LxsessionKeyringApp * self) {
	self->priv = LXSESSION_KEYRING_APP_GET_PRIVATE (self);
}


static void lxsession_keyring_app_finalize (GObject* obj) {
	LxsessionKeyringApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_KEYRING_APP, LxsessionKeyringApp);
	_g_free0 (self->priv->keyring_command);
	_g_free0 (self->priv->keyring_type);
	G_OBJECT_CLASS (lxsession_keyring_app_parent_class)->finalize (obj);
}


GType lxsession_keyring_app_get_type (void) {
	static volatile gsize lxsession_keyring_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_keyring_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionKeyringAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_keyring_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionKeyringApp), 0, (GInstanceInitFunc) lxsession_keyring_app_instance_init, NULL };
		GType lxsession_keyring_app_type_id;
		lxsession_keyring_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionKeyringApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_keyring_app_type_id__volatile, lxsession_keyring_app_type_id);
	}
	return lxsession_keyring_app_type_id__volatile;
}


LxsessionScreenshotManagerApp* lxsession_screenshot_manager_app_construct (GType object_type) {
	LxsessionScreenshotManagerApp * self = NULL;
	self = (LxsessionScreenshotManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionScreenshotManagerApp* lxsession_screenshot_manager_app_new (void) {
	return lxsession_screenshot_manager_app_construct (LXSESSION_TYPE_SCREENSHOT_MANAGER_APP);
}


static void lxsession_screenshot_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionScreenshotManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	self = (LxsessionScreenshotManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "screenshot_manager", "command");
	_g_free0 (self->priv->screenshotmanager_command);
	self->priv->screenshotmanager_command = _tmp1_;
	_tmp2_ = self->priv->screenshotmanager_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	switch (0) {
		default:
		{
			gchar** create_command = NULL;
			const gchar* _tmp6_ = NULL;
			gchar** _tmp7_ = NULL;
			gchar** _tmp8_ = NULL;
			gint create_command_length1 = 0;
			gint _create_command_size_ = 0;
			const gchar* _tmp9_ = NULL;
			_tmp6_ = self->priv->screenshotmanager_command;
			_tmp8_ = _tmp7_ = g_strsplit_set (_tmp6_, " ", 0);
			create_command = _tmp8_;
			create_command_length1 = _vala_array_length (_tmp7_);
			_create_command_size_ = create_command_length1;
			_tmp9_ = create_command[0];
			lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp9_);
			lxsession_app_object_set_command ((LxsessionAppObject*) self, create_command, create_command_length1);
			create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
			break;
		}
	}
}


static gchar** _vala_array_dup3 (gchar** self, int length) {
	gchar** result;
	int i;
	result = g_new0 (gchar*, length + 1);
	for (i = 0; i < length; i++) {
		gchar* _tmp0_ = NULL;
		_tmp0_ = g_strdup (self[i]);
		result[i] = _tmp0_;
	}
	return result;
}


void lxsession_screenshot_manager_app_window_launch (LxsessionScreenshotManagerApp* self) {
	gchar** backup_command = NULL;
	gchar** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	gchar** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
	gchar** _tmp2_ = NULL;
	gint _tmp2__length1 = 0;
	gint backup_command_length1 = 0;
	gint _backup_command_size_ = 0;
	const gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	GQuark _tmp6_ = 0U;
	static GQuark _tmp5_label0 = 0;
	gchar** _tmp12_ = NULL;
	gint _tmp12__length1 = 0;
	g_return_if_fail (self != NULL);
	lxsession_app_object_read_settings ((LxsessionAppObject*) self);
	_tmp0_ = lxsession_app_object_get_command ((LxsessionAppObject*) self, &_tmp0__length1);
	_tmp1_ = _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	_tmp2_ = (_tmp1_ != NULL) ? _vala_array_dup3 (_tmp1_, _tmp1__length1) : ((gpointer) _tmp1_);
	_tmp2__length1 = _tmp1__length1;
	backup_command = _tmp2_;
	backup_command_length1 = _tmp2__length1;
	_backup_command_size_ = backup_command_length1;
	_tmp3_ = self->priv->screenshotmanager_command;
	_tmp4_ = _tmp3_;
	_tmp6_ = (NULL == _tmp4_) ? 0 : g_quark_from_string (_tmp4_);
	if (_tmp6_ == ((0 != _tmp5_label0) ? _tmp5_label0 : (_tmp5_label0 = g_quark_from_static_string ("scrot")))) {
		switch (0) {
			default:
			{
				gchar* create_window_command = NULL;
				gchar* _tmp7_ = NULL;
				const gchar* _tmp8_ = NULL;
				gchar** _tmp9_ = NULL;
				gchar** _tmp10_ = NULL;
				gchar** _tmp11_ = NULL;
				gint _tmp11__length1 = 0;
				_tmp7_ = g_strdup ("scrot -u -b");
				create_window_command = _tmp7_;
				_tmp8_ = create_window_command;
				_tmp10_ = _tmp9_ = g_strsplit_set (_tmp8_, " ", 0);
				_tmp11_ = _tmp10_;
				_tmp11__length1 = _vala_array_length (_tmp9_);
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp11_, _vala_array_length (_tmp9_));
				_tmp11_ = (_vala_array_free (_tmp11_, _tmp11__length1, (GDestroyNotify) g_free), NULL);
				_g_free0 (create_window_command);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				break;
			}
		}
	}
	lxsession_app_object_launch ((LxsessionAppObject*) self);
	_tmp12_ = backup_command;
	_tmp12__length1 = backup_command_length1;
	lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp12_, _tmp12__length1);
	backup_command = (_vala_array_free (backup_command, backup_command_length1, (GDestroyNotify) g_free), NULL);
}


static void lxsession_screenshot_manager_app_class_init (LxsessionScreenshotManagerAppClass * klass) {
	lxsession_screenshot_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionScreenshotManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_screenshot_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_screenshot_manager_app_finalize;
}


static void lxsession_screenshot_manager_app_instance_init (LxsessionScreenshotManagerApp * self) {
	self->priv = LXSESSION_SCREENSHOT_MANAGER_APP_GET_PRIVATE (self);
}


static void lxsession_screenshot_manager_app_finalize (GObject* obj) {
	LxsessionScreenshotManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_SCREENSHOT_MANAGER_APP, LxsessionScreenshotManagerApp);
	_g_free0 (self->priv->screenshotmanager_command);
	G_OBJECT_CLASS (lxsession_screenshot_manager_app_parent_class)->finalize (obj);
}


GType lxsession_screenshot_manager_app_get_type (void) {
	static volatile gsize lxsession_screenshot_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_screenshot_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionScreenshotManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_screenshot_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionScreenshotManagerApp), 0, (GInstanceInitFunc) lxsession_screenshot_manager_app_instance_init, NULL };
		GType lxsession_screenshot_manager_app_type_id;
		lxsession_screenshot_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionScreenshotManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_screenshot_manager_app_type_id__volatile, lxsession_screenshot_manager_app_type_id);
	}
	return lxsession_screenshot_manager_app_type_id__volatile;
}


LxsessionUpdatesManagerApp* lxsession_updates_manager_app_construct (GType object_type) {
	LxsessionUpdatesManagerApp * self = NULL;
	self = (LxsessionUpdatesManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionUpdatesManagerApp* lxsession_updates_manager_app_new (void) {
	return lxsession_updates_manager_app_construct (LXSESSION_TYPE_UPDATES_MANAGER_APP);
}


static void lxsession_updates_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionUpdatesManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	static GQuark _tmp4_label1 = 0;
	static GQuark _tmp4_label2 = 0;
	static GQuark _tmp4_label3 = 0;
	self = (LxsessionUpdatesManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "updates_manager", "command");
	_g_free0 (self->priv->updatesmanager_command);
	self->priv->updatesmanager_command = _tmp1_;
	_tmp2_ = self->priv->updatesmanager_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("update-notifier-clone")))) {
		switch (0) {
			default:
			{
				lxsession_updates_manager_app_setup_apt_config (self);
				lxsession_updates_manager_app_setup_reboot_config (self);
				lxsession_updates_manager_app_run_check (self);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp6_ = NULL;
				gchar** _tmp7_ = NULL;
				gchar** _tmp8_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp9_ = NULL;
				gint _tmp9__length1 = 0;
				const gchar* _tmp10_ = NULL;
				gchar** _tmp11_ = NULL;
				gint _tmp11__length1 = 0;
				_tmp6_ = self->priv->updatesmanager_command;
				_tmp8_ = _tmp7_ = g_strsplit_set (_tmp6_, " ", 0);
				create_command = _tmp8_;
				create_command_length1 = _vala_array_length (_tmp7_);
				_create_command_size_ = create_command_length1;
				_tmp9_ = create_command;
				_tmp9__length1 = create_command_length1;
				_tmp10_ = _tmp9_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp10_);
				_tmp11_ = create_command;
				_tmp11__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp11_, _tmp11__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


void lxsession_updates_manager_app_test_inactivate (LxsessionUpdatesManagerApp* self) {
	LxsessionIconObject* _tmp0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->updates_icon;
	lxsession_icon_object_inactivate (_tmp0_);
}


void lxsession_updates_manager_app_test_activate (LxsessionUpdatesManagerApp* self) {
	LxsessionIconObject* _tmp0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->updates_icon;
	lxsession_icon_object_activate (_tmp0_);
}


static gboolean _lxsession_updates_manager_app_on_apt_update_file_change_gsource_func (gpointer self) {
	gboolean result;
	result = lxsession_updates_manager_app_on_apt_update_file_change ((LxsessionUpdatesManagerApp*) self);
	return result;
}


void lxsession_updates_manager_app_run_check (LxsessionUpdatesManagerApp* self) {
	gint _tmp0_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->lock_check;
	if (_tmp0_ == 0) {
		const gchar* _tmp1_ = NULL;
		gboolean _tmp2_ = FALSE;
		_tmp1_ = self->priv->dpkg_lock_file;
		_tmp2_ = lxsession_updates_manager_app_check_lock_file (self, _tmp1_);
		if (_tmp2_ == TRUE) {
			gint timeout = 0;
			LxsessionLxsessionConfigKeyFile* _tmp3_ = NULL;
			gchar* _tmp4_ = NULL;
			gchar* _tmp5_ = NULL;
			gboolean _tmp6_ = FALSE;
			gint _tmp11_ = 0;
			self->priv->lock_check = 1;
			timeout = 60;
			_tmp3_ = lxsession_global_settings;
			_tmp4_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp3_, "Session", "updates_manager", "timeout");
			_tmp5_ = _tmp4_;
			_tmp6_ = _tmp5_ != NULL;
			_g_free0 (_tmp5_);
			if (_tmp6_) {
				LxsessionLxsessionConfigKeyFile* _tmp7_ = NULL;
				gchar* _tmp8_ = NULL;
				gchar* _tmp9_ = NULL;
				gint _tmp10_ = 0;
				_tmp7_ = lxsession_global_settings;
				_tmp8_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp7_, "Session", "updates_manager", "timeout");
				_tmp9_ = _tmp8_;
				_tmp10_ = atoi (_tmp9_);
				timeout = _tmp10_;
				_g_free0 (_tmp9_);
			}
			_tmp11_ = timeout;
			g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) _tmp11_, _lxsession_updates_manager_app_on_apt_update_file_change_gsource_func, g_object_ref (self), g_object_unref);
		}
	}
}


void lxsession_updates_manager_app_reboot_launch (LxsessionUpdatesManagerApp* self) {
	LxsessionSessionObject* session = NULL;
	LxsessionSessionObject* _tmp0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = lxsession_session_object_new ();
	session = _tmp0_;
	lxsession_session_object_lxsession_restart (session);
	_g_object_unref0 (session);
}


static void ____lambda11_ (LxsessionUpdatesManagerApp* self) {
	lxsession_updates_manager_app_reboot_launch (self);
}


static void _____lambda11__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
	____lambda11_ ((LxsessionUpdatesManagerApp*) self);
}


static void ____lambda12_ (LxsessionUpdatesManagerApp* self) {
	lxsession_updates_manager_app_reboot_launch (self);
}


static void _____lambda12__lxsession_icon_object_action_callback (gpointer self) {
	____lambda12_ ((LxsessionUpdatesManagerApp*) self);
}


void lxsession_updates_manager_app_run_check_reboot (LxsessionUpdatesManagerApp* self) {
	gchar* notification_text = NULL;
	gchar* _tmp0_ = NULL;
	GFile* _tmp1_ = NULL;
	gboolean _tmp2_ = FALSE;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup ("");
	notification_text = _tmp0_;
	_tmp1_ = self->priv->reboot_file;
	_tmp2_ = g_file_query_exists (_tmp1_, NULL);
	if (_tmp2_) {
		LxsessionIconObject* _tmp3_ = NULL;
		_tmp3_ = self->priv->reboot_icon;
		if (_tmp3_ == NULL) {
			LxsessionMenuObject* reboot_icon_menu = NULL;
			LxsessionMenuObject* _tmp4_ = NULL;
			gchar* line = NULL;
			const gchar* _tmp5_ = NULL;
			gchar* _tmp6_ = NULL;
			const gchar* _tmp17_ = NULL;
			LxsessionMenuItemObject* menu_item = NULL;
			LxsessionMenuItemObject* _tmp20_ = NULL;
			LxsessionMenuItemObject* _tmp21_ = NULL;
			const gchar* _tmp22_ = NULL;
			LxsessionMenuItemObject* _tmp23_ = NULL;
			LxsessionMenuItemObject* _tmp24_ = NULL;
			LxsessionMenuObject* _tmp25_ = NULL;
			LxsessionMenuItemObject* _tmp26_ = NULL;
			const gchar* _tmp27_ = NULL;
			LxsessionMenuObject* _tmp28_ = NULL;
			LxsessionIconObject* _tmp29_ = NULL;
			LxsessionIconObject* _tmp30_ = NULL;
			LxsessionIconObject* _tmp31_ = NULL;
			LxsessionIconObject* _tmp32_ = NULL;
			const gchar* _tmp33_ = NULL;
			LxsessionIconObject* _tmp34_ = NULL;
			_tmp4_ = lxsession_menu_object_new ();
			g_object_ref_sink (_tmp4_);
			reboot_icon_menu = _tmp4_;
			_tmp5_ = _ ("Reboot required");
			_tmp6_ = g_strdup (_tmp5_);
			line = _tmp6_;
			{
				GFileInputStream* _tmp7_ = NULL;
				GFile* _tmp8_ = NULL;
				GFileInputStream* _tmp9_ = NULL;
				GDataInputStream* dis = NULL;
				GDataInputStream* _tmp10_ = NULL;
				gchar* _tmp11_ = NULL;
				GDataInputStream* _tmp12_ = NULL;
				gchar* _tmp13_ = NULL;
				gchar* _tmp14_ = NULL;
				_tmp8_ = self->priv->reboot_file;
				_tmp9_ = g_file_read (_tmp8_, NULL, &_inner_error_);
				_tmp7_ = _tmp9_;
				if (G_UNLIKELY (_inner_error_ != NULL)) {
					goto __catch4_g_error;
				}
				_tmp10_ = g_data_input_stream_new ((GInputStream*) _tmp7_);
				dis = _tmp10_;
				_tmp12_ = dis;
				_tmp13_ = g_data_input_stream_read_line (_tmp12_, NULL, NULL, &_inner_error_);
				_tmp11_ = _tmp13_;
				if (G_UNLIKELY (_inner_error_ != NULL)) {
					_g_object_unref0 (dis);
					_g_object_unref0 (_tmp7_);
					goto __catch4_g_error;
				}
				_tmp14_ = _tmp11_;
				_tmp11_ = NULL;
				_g_free0 (line);
				line = _tmp14_;
				_g_free0 (_tmp11_);
				_g_object_unref0 (dis);
				_g_object_unref0 (_tmp7_);
			}
			goto __finally4;
			__catch4_g_error:
			{
				GError* e = NULL;
				GError* _tmp15_ = NULL;
				const gchar* _tmp16_ = NULL;
				e = _inner_error_;
				_inner_error_ = NULL;
				_tmp15_ = e;
				_tmp16_ = _tmp15_->message;
				g_message ("app.vala:1282: Error: %s\n", _tmp16_);
				_g_error_free0 (e);
			}
			__finally4:
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				_g_free0 (line);
				_g_object_unref0 (reboot_icon_menu);
				_g_free0 (notification_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;
			}
			_tmp17_ = line;
			if (_tmp17_ != NULL) {
				const gchar* _tmp18_ = NULL;
				gchar* _tmp19_ = NULL;
				_tmp18_ = line;
				_tmp19_ = g_strdup (_tmp18_);
				_g_free0 (notification_text);
				notification_text = _tmp19_;
			}
			_tmp20_ = lxsession_menu_item_object_new ();
			g_object_ref_sink (_tmp20_);
			menu_item = _tmp20_;
			_tmp21_ = menu_item;
			_tmp22_ = notification_text;
			gtk_menu_item_set_label ((GtkMenuItem*) _tmp21_, _tmp22_);
			_tmp23_ = menu_item;
			g_signal_connect_object ((GtkMenuItem*) _tmp23_, "activate", (GCallback) _____lambda11__gtk_menu_item_activate, self, 0);
			_tmp24_ = menu_item;
			gtk_widget_show ((GtkWidget*) _tmp24_);
			_tmp25_ = reboot_icon_menu;
			_tmp26_ = menu_item;
			gtk_container_add ((GtkContainer*) _tmp25_, (GtkWidget*) _tmp26_);
			_tmp27_ = notification_text;
			_tmp28_ = reboot_icon_menu;
			_tmp29_ = lxsession_icon_object_new ("RebootIcon", "system-reboot", _tmp27_, _tmp28_);
			_g_object_unref0 (self->priv->reboot_icon);
			self->priv->reboot_icon = _tmp29_;
			_tmp30_ = self->priv->reboot_icon;
			lxsession_icon_object_init (_tmp30_);
			_tmp31_ = self->priv->reboot_icon;
			lxsession_icon_object_clear_actions (_tmp31_);
			_tmp32_ = self->priv->reboot_icon;
			_tmp33_ = _ ("Reboot");
			lxsession_icon_object_add_action (_tmp32_, "launch_reboot", _tmp33_, _____lambda12__lxsession_icon_object_action_callback, g_object_ref (self), g_object_unref);
			_tmp34_ = self->priv->reboot_icon;
			lxsession_icon_object_activate (_tmp34_);
			_g_object_unref0 (menu_item);
			_g_free0 (line);
			_g_object_unref0 (reboot_icon_menu);
		}
	} else {
		LxsessionIconObject* _tmp35_ = NULL;
		_tmp35_ = self->priv->reboot_icon;
		if (_tmp35_ != NULL) {
			LxsessionIconObject* _tmp36_ = NULL;
			_tmp36_ = self->priv->reboot_icon;
			lxsession_icon_object_inactivate (_tmp36_);
		}
	}
	_g_free0 (notification_text);
}


void lxsession_updates_manager_app_language_launch (LxsessionUpdatesManagerApp* self) {
	LxsessionIconObject* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->language_icon;
	if (_tmp0_ != NULL) {
		{
			LxsessionIconObject* _tmp1_ = NULL;
			g_spawn_command_line_async ("gnome-language-selector", &_inner_error_);
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				if (_inner_error_->domain == G_SPAWN_ERROR) {
					goto __catch5_g_spawn_error;
				}
				g_critical ("file %s: line %d: unexpected 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;
			}
			_tmp1_ = self->priv->language_icon;
			lxsession_icon_object_inactivate (_tmp1_);
		}
		goto __finally5;
		__catch5_g_spawn_error:
		{
			GError* err = NULL;
			GError* _tmp2_ = NULL;
			const gchar* _tmp3_ = NULL;
			err = _inner_error_;
			_inner_error_ = NULL;
			_tmp2_ = err;
			_tmp3_ = _tmp2_->message;
			g_warning ("app.vala:1328: %s", _tmp3_);
			_g_error_free0 (err);
		}
		__finally5:
		if (G_UNLIKELY (_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 void _____lambda9_ (LxsessionUpdatesManagerApp* self) {
	lxsession_updates_manager_app_language_launch (self);
}


static void ______lambda9__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
	_____lambda9_ ((LxsessionUpdatesManagerApp*) self);
}


static void _____lambda10_ (LxsessionUpdatesManagerApp* self) {
	lxsession_updates_manager_app_language_launch (self);
}


static void ______lambda10__lxsession_icon_object_action_callback (gpointer self) {
	_____lambda10_ ((LxsessionUpdatesManagerApp*) self);
}


void lxsession_updates_manager_app_check_language_support (LxsessionUpdatesManagerApp* self) {
	gchar* command = NULL;
	gchar* _tmp0_ = NULL;
	gchar* standard_output = NULL;
	gchar* standard_error = NULL;
	gint exit_status = 0;
	gchar* launch_string = NULL;
	const gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup ("check-language-support");
	command = _tmp0_;
	_tmp1_ = _ ("Launch language support");
	_tmp2_ = g_strdup (_tmp1_);
	launch_string = _tmp2_;
	{
		gchar* _tmp3_ = NULL;
		gchar* _tmp4_ = NULL;
		gint _tmp5_ = 0;
		g_spawn_command_line_sync (command, &_tmp3_, &_tmp4_, &_tmp5_, &_inner_error_);
		_g_free0 (standard_output);
		standard_output = _tmp3_;
		_g_free0 (standard_error);
		standard_error = _tmp4_;
		exit_status = _tmp5_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_SPAWN_ERROR) {
				goto __catch6_g_spawn_error;
			}
			_g_free0 (launch_string);
			_g_free0 (standard_error);
			_g_free0 (standard_output);
			_g_free0 (command);
			g_critical ("file %s: line %d: unexpected 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_message ("app.vala:1347: Launching %s", command);
		g_message ("app.vala:1348: Language state: %s", standard_error);
		g_message ("app.vala:1349: Language exit status: %i", exit_status);
		g_message ("app.vala:1350: Language output: %s", standard_output);
	}
	goto __finally6;
	__catch6_g_spawn_error:
	{
		GError* err = NULL;
		GError* _tmp6_ = NULL;
		const gchar* _tmp7_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp6_ = err;
		_tmp7_ = _tmp6_->message;
		g_warning ("app.vala:1355: %s", _tmp7_);
		_g_error_free0 (err);
	}
	__finally6:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		_g_free0 (launch_string);
		_g_free0 (standard_error);
		_g_free0 (standard_output);
		_g_free0 (command);
		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;
	}
	if (standard_output != NULL) {
		gint _tmp8_ = 0;
		gint _tmp9_ = 0;
		_tmp8_ = strlen (standard_output);
		_tmp9_ = _tmp8_;
		if (_tmp9_ >= 3) {
			LxsessionIconObject* _tmp10_ = NULL;
			_tmp10_ = self->priv->language_icon;
			if (_tmp10_ == NULL) {
				LxsessionMenuObject* language_icon_menu = NULL;
				LxsessionMenuObject* _tmp11_ = NULL;
				LxsessionMenuItemObject* menu_item = NULL;
				LxsessionMenuItemObject* _tmp12_ = NULL;
				LxsessionMenuItemObject* _tmp13_ = NULL;
				LxsessionMenuItemObject* _tmp14_ = NULL;
				LxsessionMenuItemObject* _tmp15_ = NULL;
				LxsessionMenuObject* _tmp16_ = NULL;
				LxsessionMenuItemObject* _tmp17_ = NULL;
				const gchar* _tmp18_ = NULL;
				LxsessionMenuObject* _tmp19_ = NULL;
				LxsessionIconObject* _tmp20_ = NULL;
				LxsessionIconObject* _tmp21_ = NULL;
				LxsessionIconObject* _tmp22_ = NULL;
				LxsessionIconObject* _tmp23_ = NULL;
				LxsessionIconObject* _tmp24_ = NULL;
				_tmp11_ = lxsession_menu_object_new ();
				g_object_ref_sink (_tmp11_);
				language_icon_menu = _tmp11_;
				_tmp12_ = lxsession_menu_item_object_new ();
				g_object_ref_sink (_tmp12_);
				menu_item = _tmp12_;
				_tmp13_ = menu_item;
				gtk_menu_item_set_label ((GtkMenuItem*) _tmp13_, launch_string);
				_tmp14_ = menu_item;
				g_signal_connect_object ((GtkMenuItem*) _tmp14_, "activate", (GCallback) ______lambda9__gtk_menu_item_activate, self, 0);
				_tmp15_ = menu_item;
				gtk_widget_show ((GtkWidget*) _tmp15_);
				_tmp16_ = language_icon_menu;
				_tmp17_ = menu_item;
				gtk_container_add ((GtkContainer*) _tmp16_, (GtkWidget*) _tmp17_);
				_tmp18_ = _ ("Language support missing");
				_tmp19_ = language_icon_menu;
				_tmp20_ = lxsession_icon_object_new ("LanguageIcon", "preferences-desktop-locale", _tmp18_, _tmp19_);
				_g_object_unref0 (self->priv->language_icon);
				self->priv->language_icon = _tmp20_;
				_tmp21_ = self->priv->language_icon;
				lxsession_icon_object_init (_tmp21_);
				_tmp22_ = self->priv->language_icon;
				lxsession_icon_object_clear_actions (_tmp22_);
				_tmp23_ = self->priv->language_icon;
				lxsession_icon_object_add_action (_tmp23_, "launch_language_support", launch_string, ______lambda10__lxsession_icon_object_action_callback, g_object_ref (self), g_object_unref);
				_tmp24_ = self->priv->language_icon;
				lxsession_icon_object_activate (_tmp24_);
				_g_object_unref0 (menu_item);
				_g_object_unref0 (language_icon_menu);
			}
		} else {
			LxsessionIconObject* _tmp25_ = NULL;
			_tmp25_ = self->priv->language_icon;
			if (_tmp25_ != NULL) {
				LxsessionIconObject* _tmp26_ = NULL;
				_tmp26_ = self->priv->language_icon;
				lxsession_icon_object_inactivate (_tmp26_);
			}
		}
	} else {
		LxsessionIconObject* _tmp27_ = NULL;
		_tmp27_ = self->priv->language_icon;
		if (_tmp27_ != NULL) {
			LxsessionIconObject* _tmp28_ = NULL;
			_tmp28_ = self->priv->language_icon;
			lxsession_icon_object_inactivate (_tmp28_);
		}
	}
	_g_free0 (launch_string);
	_g_free0 (standard_error);
	_g_free0 (standard_output);
	_g_free0 (command);
}


void lxsession_updates_manager_app_upgrade_launch (LxsessionUpdatesManagerApp* self, const gchar* upgrade_manager_command) {
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (upgrade_manager_command != NULL);
	{
		const gchar* _tmp0_ = NULL;
		_tmp0_ = upgrade_manager_command;
		g_spawn_command_line_async (_tmp0_, &_inner_error_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_SPAWN_ERROR) {
				goto __catch7_g_spawn_error;
			}
			g_critical ("file %s: line %d: unexpected 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;
		}
	}
	goto __finally7;
	__catch7_g_spawn_error:
	{
		GError* err = NULL;
		GError* _tmp1_ = NULL;
		const gchar* _tmp2_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp1_ = err;
		_tmp2_ = _tmp1_->message;
		g_warning ("app.vala:1403: %s", _tmp2_);
		_g_error_free0 (err);
	}
	__finally7:
	if (G_UNLIKELY (_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 Block1Data* block1_data_ref (Block1Data* _data1_) {
	g_atomic_int_inc (&_data1_->_ref_count_);
	return _data1_;
}


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


static void ____lambda5_ (Block1Data* _data1_) {
	LxsessionUpdatesManagerApp* self;
	const gchar* _tmp0_ = NULL;
	self = _data1_->self;
	_tmp0_ = _data1_->upgrade_manager_command;
	lxsession_updates_manager_app_upgrade_launch (self, _tmp0_);
}


static void _____lambda5__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
	____lambda5_ (self);
}


static void ____lambda6_ (Block1Data* _data1_) {
	LxsessionUpdatesManagerApp* self;
	const gchar* _tmp0_ = NULL;
	self = _data1_->self;
	_tmp0_ = _data1_->upgrade_manager_command;
	lxsession_updates_manager_app_upgrade_launch (self, _tmp0_);
}


static void _____lambda6__lxsession_icon_object_action_callback (gpointer self) {
	____lambda6_ (self);
}


static gchar* string_slice (const gchar* self, glong start, glong end) {
	gchar* result = NULL;
	glong string_length = 0L;
	gint _tmp0_ = 0;
	gint _tmp1_ = 0;
	glong _tmp2_ = 0L;
	glong _tmp5_ = 0L;
	gboolean _tmp8_ = FALSE;
	glong _tmp9_ = 0L;
	gboolean _tmp12_ = FALSE;
	glong _tmp13_ = 0L;
	glong _tmp16_ = 0L;
	glong _tmp17_ = 0L;
	glong _tmp18_ = 0L;
	glong _tmp19_ = 0L;
	glong _tmp20_ = 0L;
	gchar* _tmp21_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = strlen (self);
	_tmp1_ = _tmp0_;
	string_length = (glong) _tmp1_;
	_tmp2_ = start;
	if (_tmp2_ < ((glong) 0)) {
		glong _tmp3_ = 0L;
		glong _tmp4_ = 0L;
		_tmp3_ = string_length;
		_tmp4_ = start;
		start = _tmp3_ + _tmp4_;
	}
	_tmp5_ = end;
	if (_tmp5_ < ((glong) 0)) {
		glong _tmp6_ = 0L;
		glong _tmp7_ = 0L;
		_tmp6_ = string_length;
		_tmp7_ = end;
		end = _tmp6_ + _tmp7_;
	}
	_tmp9_ = start;
	if (_tmp9_ >= ((glong) 0)) {
		glong _tmp10_ = 0L;
		glong _tmp11_ = 0L;
		_tmp10_ = start;
		_tmp11_ = string_length;
		_tmp8_ = _tmp10_ <= _tmp11_;
	} else {
		_tmp8_ = FALSE;
	}
	g_return_val_if_fail (_tmp8_, NULL);
	_tmp13_ = end;
	if (_tmp13_ >= ((glong) 0)) {
		glong _tmp14_ = 0L;
		glong _tmp15_ = 0L;
		_tmp14_ = end;
		_tmp15_ = string_length;
		_tmp12_ = _tmp14_ <= _tmp15_;
	} else {
		_tmp12_ = FALSE;
	}
	g_return_val_if_fail (_tmp12_, NULL);
	_tmp16_ = start;
	_tmp17_ = end;
	g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
	_tmp18_ = start;
	_tmp19_ = end;
	_tmp20_ = start;
	_tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
	result = _tmp21_;
	return result;
}


static void ___lambda7_ (LxsessionUpdatesManagerApp* self) {
	lxsession_updates_manager_app_upgrade_launch (self, "synaptic-pkexec");
}


static void ____lambda7__lxsession_icon_object_action_callback (gpointer self) {
	___lambda7_ ((LxsessionUpdatesManagerApp*) self);
}


static void ___lambda8_ (LxsessionUpdatesManagerApp* self) {
	lxsession_updates_manager_app_upgrade_launch (self, "synaptic-pkexec");
}


static void ____lambda8__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
	___lambda8_ ((LxsessionUpdatesManagerApp*) self);
}


gboolean lxsession_updates_manager_app_on_apt_update_file_change (LxsessionUpdatesManagerApp* self) {
	gboolean result = FALSE;
	Block1Data* _data1_;
	gchar* standard_output = NULL;
	gchar* standard_error = NULL;
	gint exit_status = 0;
	gchar* notification_text = NULL;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* launch_string = NULL;
	const gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar** updates_num = NULL;
	gint updates_num_length1 = 0;
	gint _updates_num_size_ = 0;
	gint updates_urgent = 0;
	gint updates_normal = 0;
	gint updates_state = 0;
	gint number_updates = 0;
	LxsessionMenuObject* _tmp5_ = NULL;
	gchar* command = NULL;
	gchar* _tmp20_ = NULL;
	gchar* error_string = NULL;
	gchar* _tmp21_ = NULL;
	LxsessionIconObject* _tmp27_ = NULL;
	gint _tmp90_ = 0;
	gint _tmp94_ = 0;
	gint _tmp98_ = 0;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (self != NULL, FALSE);
	_data1_ = g_slice_new0 (Block1Data);
	_data1_->_ref_count_ = 1;
	_data1_->self = g_object_ref (self);
	_tmp0_ = _ ("Updates available");
	_tmp1_ = g_strdup (_tmp0_);
	notification_text = _tmp1_;
	_tmp2_ = _ ("Launch Update Manager");
	_tmp3_ = g_strdup (_tmp2_);
	launch_string = _tmp3_;
	_tmp4_ = g_strdup ("");
	_data1_->upgrade_manager_command = _tmp4_;
	updates_urgent = 0;
	updates_normal = 0;
	updates_state = 0;
	number_updates = 0;
	self->priv->lock_check = 1;
	_tmp5_ = self->priv->icon_menu;
	if (_tmp5_ == NULL) {
		LxsessionMenuObject* _tmp6_ = NULL;
		LxsessionLxsessionConfigKeyFile* _tmp7_ = NULL;
		gchar* _tmp8_ = NULL;
		gchar* _tmp9_ = NULL;
		gboolean _tmp10_ = FALSE;
		_tmp6_ = lxsession_menu_object_new ();
		g_object_ref_sink (_tmp6_);
		_g_object_unref0 (self->priv->icon_menu);
		self->priv->icon_menu = _tmp6_;
		_tmp7_ = lxsession_global_settings;
		_tmp8_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp7_, "Session", "upgrade_manager", "command");
		_tmp9_ = _tmp8_;
		_tmp10_ = _tmp9_ != NULL;
		_g_free0 (_tmp9_);
		if (_tmp10_) {
			LxsessionLxsessionConfigKeyFile* _tmp11_ = NULL;
			gchar* _tmp12_ = NULL;
			LxsessionMenuItemObject* menu_item = NULL;
			LxsessionMenuItemObject* _tmp13_ = NULL;
			LxsessionMenuItemObject* _tmp14_ = NULL;
			const gchar* _tmp15_ = NULL;
			LxsessionMenuItemObject* _tmp16_ = NULL;
			LxsessionMenuItemObject* _tmp17_ = NULL;
			LxsessionMenuObject* _tmp18_ = NULL;
			LxsessionMenuItemObject* _tmp19_ = NULL;
			_tmp11_ = lxsession_global_settings;
			_tmp12_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp11_, "Session", "upgrade_manager", "command");
			_g_free0 (_data1_->upgrade_manager_command);
			_data1_->upgrade_manager_command = _tmp12_;
			_tmp13_ = lxsession_menu_item_object_new ();
			g_object_ref_sink (_tmp13_);
			menu_item = _tmp13_;
			_tmp14_ = menu_item;
			_tmp15_ = launch_string;
			gtk_menu_item_set_label ((GtkMenuItem*) _tmp14_, _tmp15_);
			_tmp16_ = menu_item;
			g_signal_connect_data ((GtkMenuItem*) _tmp16_, "activate", (GCallback) _____lambda5__gtk_menu_item_activate, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
			_tmp17_ = menu_item;
			gtk_widget_show ((GtkWidget*) _tmp17_);
			_tmp18_ = self->priv->icon_menu;
			_tmp19_ = menu_item;
			gtk_container_add ((GtkContainer*) _tmp18_, (GtkWidget*) _tmp19_);
			_g_object_unref0 (menu_item);
		}
	}
	_tmp20_ = g_strdup ("/usr/bin/nice" " " "/usr/bin/ionice" " " "-c3" " " "/usr/lib/update-notifier/apt-check");
	command = _tmp20_;
	_tmp21_ = g_strdup ("");
	error_string = _tmp21_;
	{
		gchar* _tmp22_ = NULL;
		gchar* _tmp23_ = NULL;
		gint _tmp24_ = 0;
		g_spawn_command_line_sync (command, &_tmp22_, &_tmp23_, &_tmp24_, &_inner_error_);
		_g_free0 (standard_output);
		standard_output = _tmp22_;
		_g_free0 (standard_error);
		standard_error = _tmp23_;
		exit_status = _tmp24_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_SPAWN_ERROR) {
				goto __catch8_g_spawn_error;
			}
			_g_free0 (error_string);
			_g_free0 (command);
			updates_num = (_vala_array_free (updates_num, updates_num_length1, (GDestroyNotify) g_free), NULL);
			_g_free0 (launch_string);
			_g_free0 (notification_text);
			_g_free0 (standard_error);
			_g_free0 (standard_output);
			block1_data_unref (_data1_);
			_data1_ = NULL;
			g_critical ("file %s: line %d: unexpected 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;
		}
		g_message ("app.vala:1456: Launching %s", command);
		g_message ("app.vala:1457: Update state: %s", standard_error);
		g_message ("app.vala:1458: Update exit status: %i", exit_status);
	}
	goto __finally8;
	__catch8_g_spawn_error:
	{
		GError* err = NULL;
		GError* _tmp25_ = NULL;
		const gchar* _tmp26_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp25_ = err;
		_tmp26_ = _tmp25_->message;
		g_warning ("app.vala:1463: %s", _tmp26_);
		_g_error_free0 (err);
	}
	__finally8:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		_g_free0 (error_string);
		_g_free0 (command);
		updates_num = (_vala_array_free (updates_num, updates_num_length1, (GDestroyNotify) g_free), NULL);
		_g_free0 (launch_string);
		_g_free0 (notification_text);
		_g_free0 (standard_error);
		_g_free0 (standard_output);
		block1_data_unref (_data1_);
		_data1_ = 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;
	}
	_tmp27_ = self->priv->updates_icon;
	if (_tmp27_ == NULL) {
		const gchar* _tmp28_ = NULL;
		LxsessionMenuObject* _tmp29_ = NULL;
		LxsessionIconObject* _tmp30_ = NULL;
		LxsessionIconObject* _tmp31_ = NULL;
		LxsessionLxsessionConfigKeyFile* _tmp32_ = NULL;
		gchar* _tmp33_ = NULL;
		gchar* _tmp34_ = NULL;
		gboolean _tmp35_ = FALSE;
		LxsessionIconObject* _tmp41_ = NULL;
		_tmp28_ = notification_text;
		_tmp29_ = self->priv->icon_menu;
		_tmp30_ = lxsession_icon_object_new ("UpdatesIcon", "software-update-available", _tmp28_, _tmp29_);
		_g_object_unref0 (self->priv->updates_icon);
		self->priv->updates_icon = _tmp30_;
		_tmp31_ = self->priv->updates_icon;
		lxsession_icon_object_init (_tmp31_);
		_tmp32_ = lxsession_global_settings;
		_tmp33_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp32_, "Session", "upgrade_manager", "command");
		_tmp34_ = _tmp33_;
		_tmp35_ = _tmp34_ != NULL;
		_g_free0 (_tmp34_);
		if (_tmp35_) {
			LxsessionLxsessionConfigKeyFile* _tmp36_ = NULL;
			gchar* _tmp37_ = NULL;
			LxsessionIconObject* _tmp38_ = NULL;
			LxsessionIconObject* _tmp39_ = NULL;
			const gchar* _tmp40_ = NULL;
			_tmp36_ = lxsession_global_settings;
			_tmp37_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp36_, "Session", "upgrade_manager", "command");
			_g_free0 (_data1_->upgrade_manager_command);
			_data1_->upgrade_manager_command = _tmp37_;
			_tmp38_ = self->priv->updates_icon;
			lxsession_icon_object_clear_actions (_tmp38_);
			_tmp39_ = self->priv->updates_icon;
			_tmp40_ = launch_string;
			lxsession_icon_object_add_action (_tmp39_, "launch_upgrade_manager", _tmp40_, _____lambda6__lxsession_icon_object_action_callback, block1_data_ref (_data1_), block1_data_unref);
		}
		_tmp41_ = self->priv->updates_icon;
		lxsession_icon_object_inactivate (_tmp41_);
	} else {
		LxsessionIconObject* _tmp42_ = NULL;
		_tmp42_ = self->priv->updates_icon;
		lxsession_icon_object_inactivate (_tmp42_);
	}
	if (g_strcmp0 (standard_error, "") != 0) {
		gchar* _tmp43_ = NULL;
		gchar* _tmp44_ = NULL;
		gboolean _tmp45_ = FALSE;
		_tmp43_ = string_slice (standard_error, (glong) 0, (glong) 1);
		_tmp44_ = _tmp43_;
		_tmp45_ = g_strcmp0 (_tmp44_, "E") == 0;
		_g_free0 (_tmp44_);
		if (_tmp45_) {
			const gchar* _tmp46_ = NULL;
			gchar* _tmp47_ = NULL;
			gint _tmp48_ = 0;
			gint _tmp49_ = 0;
			updates_urgent = 0;
			updates_normal = 0;
			updates_state = 1;
			_tmp46_ = _ ("An error occurred, please run Package Manager from the left-click menu" \
" or apt-get in a terminal to see what is wrong.");
			_tmp47_ = g_strdup (_tmp46_);
			_g_free0 (error_string);
			error_string = _tmp47_;
			_tmp48_ = strlen (standard_error);
			_tmp49_ = _tmp48_;
			if (_tmp49_ > 3) {
				const gchar* _tmp50_ = NULL;
				gchar* _tmp51_ = NULL;
				gchar* _tmp52_ = NULL;
				const gchar* _tmp53_ = NULL;
				gchar* _tmp54_ = NULL;
				gchar* _tmp55_ = NULL;
				gchar* _tmp56_ = NULL;
				_tmp50_ = error_string;
				_tmp51_ = g_strconcat (_tmp50_, "\n", NULL);
				_tmp52_ = _tmp51_;
				_tmp53_ = _ ("The error message was: ");
				_tmp54_ = g_strconcat (_tmp52_, _tmp53_, NULL);
				_tmp55_ = _tmp54_;
				_tmp56_ = g_strconcat (_tmp55_, standard_error, NULL);
				_g_free0 (notification_text);
				notification_text = _tmp56_;
				_g_free0 (_tmp55_);
				_g_free0 (_tmp52_);
			} else {
				const gchar* _tmp57_ = NULL;
				gchar* _tmp58_ = NULL;
				_tmp57_ = error_string;
				_tmp58_ = g_strdup (_tmp57_);
				_g_free0 (notification_text);
				notification_text = _tmp58_;
			}
		} else {
			gchar** _tmp59_ = NULL;
			gchar** _tmp60_ = NULL;
			gchar** _tmp61_ = NULL;
			gint _tmp61__length1 = 0;
			const gchar* _tmp62_ = NULL;
			gchar** _tmp63_ = NULL;
			gint _tmp63__length1 = 0;
			const gchar* _tmp64_ = NULL;
			gchar** _tmp65_ = NULL;
			gint _tmp65__length1 = 0;
			gchar* _tmp66_ = NULL;
			gchar* _tmp67_ = NULL;
			gchar** _tmp68_ = NULL;
			gint _tmp68__length1 = 0;
			const gchar* _tmp69_ = NULL;
			gint _tmp70_ = 0;
			gchar** _tmp71_ = NULL;
			gint _tmp71__length1 = 0;
			const gchar* _tmp72_ = NULL;
			gint _tmp73_ = 0;
			gint _tmp74_ = 0;
			gint _tmp75_ = 0;
			gint _tmp76_ = 0;
			_tmp60_ = _tmp59_ = g_strsplit_set (standard_error, ";", 2);
			updates_num = (_vala_array_free (updates_num, updates_num_length1, (GDestroyNotify) g_free), NULL);
			updates_num = _tmp60_;
			updates_num_length1 = _vala_array_length (_tmp59_);
			_updates_num_size_ = updates_num_length1;
			_tmp61_ = updates_num;
			_tmp61__length1 = updates_num_length1;
			_tmp62_ = _tmp61_[0];
			g_message ("app.vala:1506: Number of upgrades: %s", _tmp62_);
			_tmp63_ = updates_num;
			_tmp63__length1 = updates_num_length1;
			_tmp64_ = _tmp63_[1];
			g_message ("app.vala:1507: Number of security upgrades: %s", _tmp64_);
			_tmp65_ = updates_num;
			_tmp65__length1 = updates_num_length1;
			_tmp66_ = g_strdup ("0");
			_g_free0 (_tmp65_[2]);
			_tmp65_[2] = _tmp66_;
			_tmp67_ = _tmp65_[2];
			_tmp68_ = updates_num;
			_tmp68__length1 = updates_num_length1;
			_tmp69_ = _tmp68_[1];
			_tmp70_ = atoi (_tmp69_);
			updates_urgent = _tmp70_;
			_tmp71_ = updates_num;
			_tmp71__length1 = updates_num_length1;
			_tmp72_ = _tmp71_[0];
			_tmp73_ = atoi (_tmp72_);
			updates_normal = _tmp73_;
			_tmp74_ = updates_normal;
			_tmp75_ = updates_urgent;
			number_updates = _tmp74_ + _tmp75_;
			_tmp76_ = number_updates;
			if (_tmp76_ == 1) {
				gint _tmp77_ = 0;
				gchar* _tmp78_ = NULL;
				gchar* _tmp79_ = NULL;
				const gchar* _tmp80_ = NULL;
				gchar* _tmp81_ = NULL;
				_tmp77_ = number_updates;
				_tmp78_ = g_strdup_printf ("%i", _tmp77_);
				_tmp79_ = _tmp78_;
				_tmp80_ = _ (" Update available");
				_tmp81_ = g_strconcat (_tmp79_, _tmp80_, NULL);
				_g_free0 (notification_text);
				notification_text = _tmp81_;
				_g_free0 (_tmp79_);
			} else {
				gint _tmp82_ = 0;
				_tmp82_ = number_updates;
				if (_tmp82_ > 1) {
					gint _tmp83_ = 0;
					gchar* _tmp84_ = NULL;
					gchar* _tmp85_ = NULL;
					gchar* _tmp86_ = NULL;
					gchar* _tmp87_ = NULL;
					const gchar* _tmp88_ = NULL;
					gchar* _tmp89_ = NULL;
					_tmp83_ = number_updates;
					_tmp84_ = g_strdup_printf ("%i", _tmp83_);
					_tmp85_ = _tmp84_;
					_tmp86_ = g_strconcat (_tmp85_, " ", NULL);
					_tmp87_ = _tmp86_;
					_tmp88_ = _ ("Updates available");
					_tmp89_ = g_strconcat (_tmp87_, _tmp88_, NULL);
					_g_free0 (notification_text);
					notification_text = _tmp89_;
					_g_free0 (_tmp87_);
					_g_free0 (_tmp85_);
				}
			}
		}
	} else {
		updates_state = 1;
	}
	_tmp90_ = number_updates;
	if (_tmp90_ > 0) {
		LxsessionIconObject* _tmp91_ = NULL;
		const gchar* _tmp92_ = NULL;
		LxsessionIconObject* _tmp93_ = NULL;
		g_message ("app.vala:1533: Activate icon because of updates available");
		_tmp91_ = self->priv->updates_icon;
		_tmp92_ = notification_text;
		lxsession_icon_object_set_notification_body (_tmp91_, _tmp92_);
		_tmp93_ = self->priv->updates_icon;
		lxsession_icon_object_activate (_tmp93_);
	}
	_tmp94_ = updates_urgent;
	if (_tmp94_ > 0) {
		LxsessionIconObject* _tmp95_ = NULL;
		LxsessionIconObject* _tmp96_ = NULL;
		const gchar* _tmp97_ = NULL;
		g_message ("app.vala:1540: Set urgent icon");
		_tmp95_ = self->priv->updates_icon;
		lxsession_icon_object_set_icon (_tmp95_, "software-update-urgent");
		_tmp96_ = self->priv->updates_icon;
		_tmp97_ = notification_text;
		lxsession_icon_object_set_notification_body (_tmp96_, _tmp97_);
	}
	_tmp98_ = updates_state;
	if (_tmp98_ > 0) {
		LxsessionIconObject* _tmp99_ = NULL;
		LxsessionIconObject* _tmp100_ = NULL;
		const gchar* _tmp101_ = NULL;
		LxsessionIconObject* _tmp102_ = NULL;
		LxsessionIconObject* _tmp103_ = NULL;
		const gchar* _tmp104_ = NULL;
		LxsessionMenuObject* new_menu = NULL;
		LxsessionMenuObject* _tmp105_ = NULL;
		LxsessionMenuItemObject* new_menu_item = NULL;
		LxsessionMenuItemObject* _tmp106_ = NULL;
		LxsessionMenuItemObject* _tmp107_ = NULL;
		const gchar* _tmp108_ = NULL;
		LxsessionMenuItemObject* _tmp109_ = NULL;
		LxsessionMenuItemObject* _tmp110_ = NULL;
		LxsessionMenuObject* _tmp111_ = NULL;
		LxsessionMenuItemObject* _tmp112_ = NULL;
		LxsessionIconObject* _tmp113_ = NULL;
		LxsessionMenuObject* _tmp114_ = NULL;
		LxsessionIconObject* _tmp115_ = NULL;
		g_message ("app.vala:1548: Problem in package state");
		_tmp99_ = self->priv->updates_icon;
		lxsession_icon_object_set_icon (_tmp99_, "software-update-urgent");
		_tmp100_ = self->priv->updates_icon;
		_tmp101_ = notification_text;
		lxsession_icon_object_set_notification_body (_tmp100_, _tmp101_);
		_tmp102_ = self->priv->updates_icon;
		lxsession_icon_object_clear_actions (_tmp102_);
		_tmp103_ = self->priv->updates_icon;
		_tmp104_ = launch_string;
		lxsession_icon_object_add_action (_tmp103_, "launch_upgrade_manager", _tmp104_, ____lambda7__lxsession_icon_object_action_callback, g_object_ref (self), g_object_unref);
		_tmp105_ = lxsession_menu_object_new ();
		g_object_ref_sink (_tmp105_);
		new_menu = _tmp105_;
		_tmp106_ = lxsession_menu_item_object_new ();
		g_object_ref_sink (_tmp106_);
		new_menu_item = _tmp106_;
		_tmp107_ = new_menu_item;
		_tmp108_ = launch_string;
		gtk_menu_item_set_label ((GtkMenuItem*) _tmp107_, _tmp108_);
		_tmp109_ = new_menu_item;
		g_signal_connect_object ((GtkMenuItem*) _tmp109_, "activate", (GCallback) ____lambda8__gtk_menu_item_activate, self, 0);
		_tmp110_ = new_menu_item;
		gtk_widget_show ((GtkWidget*) _tmp110_);
		_tmp111_ = new_menu;
		_tmp112_ = new_menu_item;
		gtk_container_add ((GtkContainer*) _tmp111_, (GtkWidget*) _tmp112_);
		_tmp113_ = self->priv->updates_icon;
		_tmp114_ = new_menu;
		lxsession_icon_object_set_menu (_tmp113_, _tmp114_);
		_tmp115_ = self->priv->updates_icon;
		lxsession_icon_object_activate (_tmp115_);
		_g_object_unref0 (new_menu_item);
		_g_object_unref0 (new_menu);
	}
	lxsession_updates_manager_app_check_language_support (self);
	lxsession_updates_manager_app_run_check_reboot (self);
	self->priv->lock_check = 0;
	result = FALSE;
	_g_free0 (error_string);
	_g_free0 (command);
	updates_num = (_vala_array_free (updates_num, updates_num_length1, (GDestroyNotify) g_free), NULL);
	_g_free0 (launch_string);
	_g_free0 (notification_text);
	_g_free0 (standard_error);
	_g_free0 (standard_output);
	block1_data_unref (_data1_);
	_data1_ = NULL;
	return result;
}


static void _lxsession_updates_manager_app_run_check_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self) {
	lxsession_updates_manager_app_run_check ((LxsessionUpdatesManagerApp*) self);
}


void lxsession_updates_manager_app_setup_apt_config (LxsessionUpdatesManagerApp* self) {
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	{
		const gchar* _tmp0_ = NULL;
		GFile* _tmp1_ = NULL;
		GFileMonitor* _tmp2_ = NULL;
		GFile* _tmp3_ = NULL;
		GFileMonitor* _tmp4_ = NULL;
		GFileMonitor* _tmp5_ = NULL;
		GFileMonitor* _tmp6_ = NULL;
		_tmp0_ = self->priv->apt_update_path;
		_tmp1_ = g_file_new_for_path (_tmp0_);
		_g_object_unref0 (self->priv->apt_update_file);
		self->priv->apt_update_file = _tmp1_;
		_tmp3_ = self->priv->apt_update_file;
		_tmp4_ = g_file_monitor_file (_tmp3_, G_FILE_MONITOR_NONE, NULL, &_inner_error_);
		_tmp2_ = _tmp4_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch9_g_error;
		}
		_tmp5_ = _tmp2_;
		_tmp2_ = NULL;
		_g_object_unref0 (self->priv->apt_update_monitor);
		self->priv->apt_update_monitor = _tmp5_;
		_tmp6_ = self->priv->apt_update_monitor;
		g_signal_connect_object (_tmp6_, "changed", (GCallback) _lxsession_updates_manager_app_run_check_g_file_monitor_changed, self, 0);
		g_message ("app.vala:1599: Monitoring apt changes");
		_g_object_unref0 (_tmp2_);
	}
	goto __finally9;
	__catch9_g_error:
	{
		GError* err = NULL;
		GError* _tmp7_ = NULL;
		const gchar* _tmp8_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp7_ = err;
		_tmp8_ = _tmp7_->message;
		g_message ("app.vala:1603: %s", _tmp8_);
		_g_error_free0 (err);
	}
	__finally9:
	if (G_UNLIKELY (_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;
	}
	{
		const gchar* _tmp9_ = NULL;
		GFile* _tmp10_ = NULL;
		GFileMonitor* _tmp11_ = NULL;
		GFile* _tmp12_ = NULL;
		GFileMonitor* _tmp13_ = NULL;
		GFileMonitor* _tmp14_ = NULL;
		GFileMonitor* _tmp15_ = NULL;
		_tmp9_ = self->priv->dpkg_update_path;
		_tmp10_ = g_file_new_for_path (_tmp9_);
		_g_object_unref0 (self->priv->dpkg_update_file);
		self->priv->dpkg_update_file = _tmp10_;
		_tmp12_ = self->priv->dpkg_update_file;
		_tmp13_ = g_file_monitor_file (_tmp12_, G_FILE_MONITOR_NONE, NULL, &_inner_error_);
		_tmp11_ = _tmp13_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch10_g_error;
		}
		_tmp14_ = _tmp11_;
		_tmp11_ = NULL;
		_g_object_unref0 (self->priv->dpkg_update_monitor);
		self->priv->dpkg_update_monitor = _tmp14_;
		_tmp15_ = self->priv->dpkg_update_monitor;
		g_signal_connect_object (_tmp15_, "changed", (GCallback) _lxsession_updates_manager_app_run_check_g_file_monitor_changed, self, 0);
		g_message ("app.vala:1611: Monitoring dpkg changes");
		_g_object_unref0 (_tmp11_);
	}
	goto __finally10;
	__catch10_g_error:
	{
		GError* err = NULL;
		GError* _tmp16_ = NULL;
		const gchar* _tmp17_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp16_ = err;
		_tmp17_ = _tmp16_->message;
		g_message ("app.vala:1615: %s", _tmp17_);
		_g_error_free0 (err);
	}
	__finally10:
	if (G_UNLIKELY (_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;
	}
	{
		const gchar* _tmp18_ = NULL;
		GFile* _tmp19_ = NULL;
		GFileMonitor* _tmp20_ = NULL;
		GFile* _tmp21_ = NULL;
		GFileMonitor* _tmp22_ = NULL;
		GFileMonitor* _tmp23_ = NULL;
		GFileMonitor* _tmp24_ = NULL;
		_tmp18_ = self->priv->dpkg_run_path;
		_tmp19_ = g_file_new_for_path (_tmp18_);
		_g_object_unref0 (self->priv->dpkg_run_file);
		self->priv->dpkg_run_file = _tmp19_;
		_tmp21_ = self->priv->dpkg_run_file;
		_tmp22_ = g_file_monitor_file (_tmp21_, G_FILE_MONITOR_NONE, NULL, &_inner_error_);
		_tmp20_ = _tmp22_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch11_g_error;
		}
		_tmp23_ = _tmp20_;
		_tmp20_ = NULL;
		_g_object_unref0 (self->priv->dpkg_run_monitor);
		self->priv->dpkg_run_monitor = _tmp23_;
		_tmp24_ = self->priv->dpkg_run_monitor;
		g_signal_connect_object (_tmp24_, "changed", (GCallback) _lxsession_updates_manager_app_run_check_g_file_monitor_changed, self, 0);
		g_message ("app.vala:1623: Monitoring dpkg run changes");
		_g_object_unref0 (_tmp20_);
	}
	goto __finally11;
	__catch11_g_error:
	{
		GError* err = NULL;
		GError* _tmp25_ = NULL;
		const gchar* _tmp26_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp25_ = err;
		_tmp26_ = _tmp25_->message;
		g_message ("app.vala:1627: %s", _tmp26_);
		_g_error_free0 (err);
	}
	__finally11:
	if (G_UNLIKELY (_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;
	}
	{
		const gchar* _tmp27_ = NULL;
		GFile* _tmp28_ = NULL;
		GFileMonitor* _tmp29_ = NULL;
		GFile* _tmp30_ = NULL;
		GFileMonitor* _tmp31_ = NULL;
		GFileMonitor* _tmp32_ = NULL;
		GFileMonitor* _tmp33_ = NULL;
		_tmp27_ = self->priv->apt_lists_update_path;
		_tmp28_ = g_file_new_for_path (_tmp27_);
		_g_object_unref0 (self->priv->apt_lists_update_file);
		self->priv->apt_lists_update_file = _tmp28_;
		_tmp30_ = self->priv->apt_lists_update_file;
		_tmp31_ = g_file_monitor_directory (_tmp30_, G_FILE_MONITOR_NONE, NULL, &_inner_error_);
		_tmp29_ = _tmp31_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch12_g_error;
		}
		_tmp32_ = _tmp29_;
		_tmp29_ = NULL;
		_g_object_unref0 (self->priv->apt_lists_update_monitor);
		self->priv->apt_lists_update_monitor = _tmp32_;
		_tmp33_ = self->priv->apt_lists_update_monitor;
		g_signal_connect_object (_tmp33_, "changed", (GCallback) _lxsession_updates_manager_app_run_check_g_file_monitor_changed, self, 0);
		g_message ("app.vala:1635: Monitoring apt_lists changes");
		_g_object_unref0 (_tmp29_);
	}
	goto __finally12;
	__catch12_g_error:
	{
		GError* err = NULL;
		GError* _tmp34_ = NULL;
		const gchar* _tmp35_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp34_ = err;
		_tmp35_ = _tmp34_->message;
		g_message ("app.vala:1639: %s", _tmp35_);
		_g_error_free0 (err);
	}
	__finally12:
	if (G_UNLIKELY (_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 void _lxsession_updates_manager_app_run_check_reboot_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self) {
	lxsession_updates_manager_app_run_check_reboot ((LxsessionUpdatesManagerApp*) self);
}


void lxsession_updates_manager_app_setup_reboot_config (LxsessionUpdatesManagerApp* self) {
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	{
		const gchar* _tmp0_ = NULL;
		GFile* _tmp1_ = NULL;
		GFileMonitor* _tmp2_ = NULL;
		GFile* _tmp3_ = NULL;
		GFileMonitor* _tmp4_ = NULL;
		GFileMonitor* _tmp5_ = NULL;
		GFileMonitor* _tmp6_ = NULL;
		_tmp0_ = self->priv->reboot_path;
		_tmp1_ = g_file_new_for_path (_tmp0_);
		_g_object_unref0 (self->priv->reboot_file);
		self->priv->reboot_file = _tmp1_;
		_tmp3_ = self->priv->reboot_file;
		_tmp4_ = g_file_monitor_file (_tmp3_, G_FILE_MONITOR_NONE, NULL, &_inner_error_);
		_tmp2_ = _tmp4_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch13_g_error;
		}
		_tmp5_ = _tmp2_;
		_tmp2_ = NULL;
		_g_object_unref0 (self->priv->reboot_monitor);
		self->priv->reboot_monitor = _tmp5_;
		_tmp6_ = self->priv->reboot_monitor;
		g_signal_connect_object (_tmp6_, "changed", (GCallback) _lxsession_updates_manager_app_run_check_reboot_g_file_monitor_changed, self, 0);
		g_message ("app.vala:1650: Monitoring reboot changes");
		_g_object_unref0 (_tmp2_);
	}
	goto __finally13;
	__catch13_g_error:
	{
		GError* err = NULL;
		GError* _tmp7_ = NULL;
		const gchar* _tmp8_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp7_ = err;
		_tmp8_ = _tmp7_->message;
		g_message ("app.vala:1654: %s", _tmp8_);
		_g_error_free0 (err);
	}
	__finally13:
	if (G_UNLIKELY (_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;
	}
}


gboolean lxsession_updates_manager_app_check_lock_file (LxsessionUpdatesManagerApp* self, const gchar* check_file) {
	gboolean result = FALSE;
	gchar* lock_file_name = NULL;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gint fd = 0;
	const gchar* _tmp2_ = NULL;
	gint _tmp3_ = 0;
	gint _tmp4_ = 0;
	struct flock fl = {0};
	gint fcntl_return = 0;
	gint _tmp17_ = 0;
	struct flock _tmp18_ = {0};
	gint _tmp19_ = 0;
	gint _tmp20_ = 0;
	gint _tmp21_ = 0;
	struct flock _tmp22_ = {0};
	gint _tmp23_ = 0;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (check_file != NULL, FALSE);
	_tmp0_ = check_file;
	_tmp1_ = g_strdup (_tmp0_);
	lock_file_name = _tmp1_;
	_tmp2_ = lock_file_name;
	_tmp3_ = open (_tmp2_, O_RDWR, (mode_t) 0);
	fd = _tmp3_;
	_tmp4_ = fd;
	if (_tmp4_ == -1) {
		const gchar* _tmp5_ = NULL;
		gchar* _tmp6_ = NULL;
		gchar* _tmp7_ = NULL;
		gchar* _tmp8_ = NULL;
		gchar* _tmp9_ = NULL;
		gint _tmp10_ = 0;
		gchar* _tmp11_ = NULL;
		gchar* _tmp12_ = NULL;
		gchar* _tmp13_ = NULL;
		gchar* _tmp14_ = NULL;
		gchar* _tmp15_ = NULL;
		gchar* _tmp16_ = NULL;
		_tmp5_ = lock_file_name;
		_tmp6_ = g_strconcat ("There was an error opening the file '", _tmp5_, NULL);
		_tmp7_ = _tmp6_;
		_tmp8_ = g_strconcat (_tmp7_, " (Error number ", NULL);
		_tmp9_ = _tmp8_;
		_tmp10_ = errno;
		_tmp11_ = g_strdup_printf ("%i", _tmp10_);
		_tmp12_ = _tmp11_;
		_tmp13_ = g_strconcat (_tmp9_, _tmp12_, NULL);
		_tmp14_ = _tmp13_;
		_tmp15_ = g_strconcat (_tmp14_, ")\n", NULL);
		_tmp16_ = _tmp15_;
		g_print ("%s", _tmp16_);
		_g_free0 (_tmp16_);
		_g_free0 (_tmp14_);
		_g_free0 (_tmp12_);
		_g_free0 (_tmp9_);
		_g_free0 (_tmp7_);
		result = TRUE;
		_g_free0 (lock_file_name);
		return result;
	}
	memset (&fl, 0, sizeof (struct flock));
	fl.l_type = F_WRLCK;
	fl.l_whence = SEEK_SET;
	fl.l_start = (off_t) 100;
	fl.l_len = (off_t) 0;
	_tmp17_ = fd;
	_tmp18_ = fl;
	_tmp19_ = fcntl (_tmp17_, F_SETLK, &_tmp18_, NULL);
	fcntl_return = _tmp19_;
	_tmp20_ = fcntl_return;
	if (_tmp20_ == -1) {
		result = TRUE;
		_g_free0 (lock_file_name);
		return result;
	}
	fl.l_type = F_UNLCK;
	fl.l_whence = SEEK_SET;
	fl.l_start = (off_t) 100;
	fl.l_len = (off_t) 0;
	_tmp21_ = fd;
	_tmp22_ = fl;
	_tmp23_ = fcntl (_tmp21_, F_SETLK, &_tmp22_, NULL);
	fcntl_return = _tmp23_;
	result = FALSE;
	_g_free0 (lock_file_name);
	return result;
}


static void lxsession_updates_manager_app_class_init (LxsessionUpdatesManagerAppClass * klass) {
	lxsession_updates_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionUpdatesManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_updates_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_updates_manager_app_finalize;
}


static void lxsession_updates_manager_app_instance_init (LxsessionUpdatesManagerApp * self) {
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	self->priv = LXSESSION_UPDATES_MANAGER_APP_GET_PRIVATE (self);
	_tmp0_ = g_strdup ("/var/lib/apt/periodic/update-success-stamp");
	self->priv->apt_update_path = _tmp0_;
	_tmp1_ = g_strdup ("/var/lib/dpkg/status");
	self->priv->dpkg_update_path = _tmp1_;
	_tmp2_ = g_strdup ("/var/lib/update-notifier/dpkg-run-stamp");
	self->priv->dpkg_run_path = _tmp2_;
	_tmp3_ = g_strdup ("/var/lib/apt/lists");
	self->priv->apt_lists_update_path = _tmp3_;
	_tmp4_ = g_strdup ("/var/run/reboot-required");
	self->priv->reboot_path = _tmp4_;
	_tmp5_ = g_strdup ("/var/lib/dpkg/lock");
	self->priv->dpkg_lock_file = _tmp5_;
	self->priv->lock_check = 0;
}


static void lxsession_updates_manager_app_finalize (GObject* obj) {
	LxsessionUpdatesManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_UPDATES_MANAGER_APP, LxsessionUpdatesManagerApp);
	_g_free0 (self->priv->updatesmanager_command);
	_g_object_unref0 (self->priv->updates_icon);
	_g_object_unref0 (self->priv->icon_menu);
	_g_object_unref0 (self->priv->language_icon);
	_g_object_unref0 (self->priv->reboot_icon);
	_g_free0 (self->priv->apt_update_path);
	_g_object_unref0 (self->priv->apt_update_file);
	_g_object_unref0 (self->priv->apt_update_monitor);
	_g_free0 (self->priv->dpkg_update_path);
	_g_object_unref0 (self->priv->dpkg_update_file);
	_g_object_unref0 (self->priv->dpkg_update_monitor);
	_g_free0 (self->priv->dpkg_run_path);
	_g_object_unref0 (self->priv->dpkg_run_file);
	_g_object_unref0 (self->priv->dpkg_run_monitor);
	_g_free0 (self->priv->apt_lists_update_path);
	_g_object_unref0 (self->priv->apt_lists_update_file);
	_g_object_unref0 (self->priv->apt_lists_update_monitor);
	_g_free0 (self->priv->reboot_path);
	_g_object_unref0 (self->priv->reboot_file);
	_g_object_unref0 (self->priv->reboot_monitor);
	_g_free0 (self->priv->dpkg_lock_file);
	G_OBJECT_CLASS (lxsession_updates_manager_app_parent_class)->finalize (obj);
}


GType lxsession_updates_manager_app_get_type (void) {
	static volatile gsize lxsession_updates_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_updates_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionUpdatesManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_updates_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionUpdatesManagerApp), 0, (GInstanceInitFunc) lxsession_updates_manager_app_instance_init, NULL };
		GType lxsession_updates_manager_app_type_id;
		lxsession_updates_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionUpdatesManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_updates_manager_app_type_id__volatile, lxsession_updates_manager_app_type_id);
	}
	return lxsession_updates_manager_app_type_id__volatile;
}


LxsessionCrashManagerApp* lxsession_crash_manager_app_construct (GType object_type) {
	LxsessionCrashManagerApp * self = NULL;
	self = (LxsessionCrashManagerApp*) lxsession_simple_app_object_construct (object_type);
	lxsession_app_object_init ((LxsessionAppObject*) self);
	return self;
}


LxsessionCrashManagerApp* lxsession_crash_manager_app_new (void) {
	return lxsession_crash_manager_app_construct (LXSESSION_TYPE_CRASH_MANAGER_APP);
}


static void lxsession_crash_manager_app_real_read_settings (LxsessionAppObject* base) {
	LxsessionCrashManagerApp * self;
	LxsessionLxsessionConfigKeyFile* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	static GQuark _tmp4_label1 = 0;
	static GQuark _tmp4_label2 = 0;
	static GQuark _tmp4_label3 = 0;
	self = (LxsessionCrashManagerApp*) base;
	_tmp0_ = lxsession_global_settings;
	_tmp1_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp0_, "Session", "crash_manager", "command");
	_g_free0 (self->priv->crash_manager_command);
	self->priv->crash_manager_command = _tmp1_;
	_tmp2_ = self->priv->crash_manager_command;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string (NULL)))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("")))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string (" ")))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("apport-gtk")))) {
		switch (0) {
			default:
			{
				lxsession_crash_manager_app_setup_crash_log_config (self);
				lxsession_crash_manager_app_run_crash_check (self);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				gchar** create_command = NULL;
				const gchar* _tmp6_ = NULL;
				gchar** _tmp7_ = NULL;
				gchar** _tmp8_ = NULL;
				gint create_command_length1 = 0;
				gint _create_command_size_ = 0;
				gchar** _tmp9_ = NULL;
				gint _tmp9__length1 = 0;
				const gchar* _tmp10_ = NULL;
				gchar** _tmp11_ = NULL;
				gint _tmp11__length1 = 0;
				_tmp6_ = self->priv->crash_manager_command;
				_tmp8_ = _tmp7_ = g_strsplit_set (_tmp6_, " ", 0);
				create_command = _tmp8_;
				create_command_length1 = _vala_array_length (_tmp7_);
				_create_command_size_ = create_command_length1;
				_tmp9_ = create_command;
				_tmp9__length1 = create_command_length1;
				_tmp10_ = _tmp9_[0];
				lxsession_app_object_set_name ((LxsessionAppObject*) self, _tmp10_);
				_tmp11_ = create_command;
				_tmp11__length1 = create_command_length1;
				lxsession_app_object_set_command ((LxsessionAppObject*) self, _tmp11_, _tmp11__length1);
				create_command = (_vala_array_free (create_command, create_command_length1, (GDestroyNotify) g_free), NULL);
				break;
			}
		}
	}
}


void lxsession_crash_manager_app_test_activate (LxsessionCrashManagerApp* self) {
	LxsessionIconObject* _tmp0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->crash_icon;
	if (_tmp0_ != NULL) {
		LxsessionIconObject* _tmp1_ = NULL;
		_tmp1_ = self->priv->crash_icon;
		lxsession_icon_object_activate (_tmp1_);
	}
}


void lxsession_crash_manager_app_test_inactivate (LxsessionCrashManagerApp* self) {
	LxsessionIconObject* _tmp0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->crash_icon;
	if (_tmp0_ != NULL) {
		LxsessionIconObject* _tmp1_ = NULL;
		_tmp1_ = self->priv->crash_icon;
		lxsession_icon_object_inactivate (_tmp1_);
	}
}


static void _lxsession_crash_manager_app_run_crash_check_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self) {
	lxsession_crash_manager_app_run_crash_check ((LxsessionCrashManagerApp*) self);
}


void lxsession_crash_manager_app_setup_crash_log_config (LxsessionCrashManagerApp* self) {
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	{
		const gchar* _tmp0_ = NULL;
		GFile* _tmp1_ = NULL;
		GFileMonitor* _tmp2_ = NULL;
		GFile* _tmp3_ = NULL;
		GFileMonitor* _tmp4_ = NULL;
		GFileMonitor* _tmp5_ = NULL;
		GFileMonitor* _tmp6_ = NULL;
		_tmp0_ = self->priv->crash_dir_path;
		_tmp1_ = g_file_new_for_path (_tmp0_);
		_g_object_unref0 (self->priv->crash_dir_file);
		self->priv->crash_dir_file = _tmp1_;
		_tmp3_ = self->priv->crash_dir_file;
		_tmp4_ = g_file_monitor_directory (_tmp3_, G_FILE_MONITOR_NONE, NULL, &_inner_error_);
		_tmp2_ = _tmp4_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch14_g_error;
		}
		_tmp5_ = _tmp2_;
		_tmp2_ = NULL;
		_g_object_unref0 (self->priv->crash_dir_monitor);
		self->priv->crash_dir_monitor = _tmp5_;
		_tmp6_ = self->priv->crash_dir_monitor;
		g_signal_connect_object (_tmp6_, "changed", (GCallback) _lxsession_crash_manager_app_run_crash_check_g_file_monitor_changed, self, 0);
		g_message ("app.vala:1757: Monitoring crash dir changes");
		_g_object_unref0 (_tmp2_);
	}
	goto __finally14;
	__catch14_g_error:
	{
		GError* err = NULL;
		GError* _tmp7_ = NULL;
		const gchar* _tmp8_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp7_ = err;
		_tmp8_ = _tmp7_->message;
		g_message ("app.vala:1761: %s", _tmp8_);
		_g_error_free0 (err);
	}
	__finally14:
	if (G_UNLIKELY (_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 _lxsession_crash_manager_app_on_crash_file_change_gsource_func (gpointer self) {
	gboolean result;
	result = lxsession_crash_manager_app_on_crash_file_change ((LxsessionCrashManagerApp*) self);
	return result;
}


void lxsession_crash_manager_app_run_crash_check (LxsessionCrashManagerApp* self) {
	gint _tmp0_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->lock_crash_check;
	if (_tmp0_ == 0) {
		gint timeout = 0;
		LxsessionLxsessionConfigKeyFile* _tmp1_ = NULL;
		gchar* _tmp2_ = NULL;
		gchar* _tmp3_ = NULL;
		gboolean _tmp4_ = FALSE;
		gint _tmp9_ = 0;
		self->priv->lock_crash_check = 1;
		timeout = 60;
		_tmp1_ = lxsession_global_settings;
		_tmp2_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp1_, "Session", "crash_manager", "timeout");
		_tmp3_ = _tmp2_;
		_tmp4_ = _tmp3_ != NULL;
		_g_free0 (_tmp3_);
		if (_tmp4_) {
			LxsessionLxsessionConfigKeyFile* _tmp5_ = NULL;
			gchar* _tmp6_ = NULL;
			gchar* _tmp7_ = NULL;
			gint _tmp8_ = 0;
			_tmp5_ = lxsession_global_settings;
			_tmp6_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp5_, "Session", "crash_manager", "timeout");
			_tmp7_ = _tmp6_;
			_tmp8_ = atoi (_tmp7_);
			timeout = _tmp8_;
			_g_free0 (_tmp7_);
		}
		_tmp9_ = timeout;
		g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) _tmp9_, _lxsession_crash_manager_app_on_crash_file_change_gsource_func, g_object_ref (self), g_object_unref);
	}
}


static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
	gchar* result = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (old != NULL, NULL);
	g_return_val_if_fail (replacement != NULL, NULL);
	{
		GRegex* regex = NULL;
		const gchar* _tmp0_ = NULL;
		gchar* _tmp1_ = NULL;
		gchar* _tmp2_ = NULL;
		GRegex* _tmp3_ = NULL;
		GRegex* _tmp4_ = NULL;
		gchar* _tmp5_ = NULL;
		GRegex* _tmp6_ = NULL;
		const gchar* _tmp7_ = NULL;
		gchar* _tmp8_ = NULL;
		gchar* _tmp9_ = NULL;
		_tmp0_ = old;
		_tmp1_ = g_regex_escape_string (_tmp0_, -1);
		_tmp2_ = _tmp1_;
		_tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
		_tmp4_ = _tmp3_;
		_g_free0 (_tmp2_);
		regex = _tmp4_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_REGEX_ERROR) {
				goto __catch16_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected 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 NULL;
		}
		_tmp6_ = regex;
		_tmp7_ = replacement;
		_tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
		_tmp5_ = _tmp8_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			_g_regex_unref0 (regex);
			if (_inner_error_->domain == G_REGEX_ERROR) {
				goto __catch16_g_regex_error;
			}
			_g_regex_unref0 (regex);
			g_critical ("file %s: line %d: unexpected 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 NULL;
		}
		_tmp9_ = _tmp5_;
		_tmp5_ = NULL;
		result = _tmp9_;
		_g_free0 (_tmp5_);
		_g_regex_unref0 (regex);
		return result;
	}
	goto __finally16;
	__catch16_g_regex_error:
	{
		GError* e = NULL;
		e = _inner_error_;
		_inner_error_ = NULL;
		g_assert_not_reached ();
		_g_error_free0 (e);
	}
	__finally16:
	if (G_UNLIKELY (_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 NULL;
	}
}


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


static void _g_free0_ (gpointer var) {
	var = (g_free (var), NULL);
}


static void _g_list_free__g_free0_ (GList* self) {
	g_list_foreach (self, (GFunc) _g_free0_, NULL);
	g_list_free (self);
}


static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle) {
	int i;
	for (i = 0; i < stack_length; i++) {
		if (g_strcmp0 (stack[i], needle) == 0) {
			return TRUE;
		}
	}
	return FALSE;
}


GList* lxsession_crash_manager_app_check_crash_file (LxsessionCrashManagerApp* self) {
	GList* result = NULL;
	GList* crash_list = NULL;
	GList* final_crash_list = NULL;
	gchar** uploaded_list = NULL;
	gchar** _tmp0_ = NULL;
	gint uploaded_list_length1 = 0;
	gint _uploaded_list_size_ = 0;
	gchar* file_name = NULL;
	GFile* _tmp1_ = NULL;
	GList* _tmp30_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	crash_list = NULL;
	final_crash_list = NULL;
	_tmp0_ = g_new0 (gchar*, 0 + 1);
	uploaded_list = _tmp0_;
	uploaded_list_length1 = 0;
	_uploaded_list_size_ = uploaded_list_length1;
	_tmp1_ = self->priv->crash_dir_file;
	if (_tmp1_ != NULL) {
		{
			GFile* directory = NULL;
			const gchar* _tmp2_ = NULL;
			GFile* _tmp3_ = NULL;
			GFileEnumerator* enumerator = NULL;
			GFile* _tmp4_ = NULL;
			GFileEnumerator* _tmp5_ = NULL;
			GFileInfo* file_info = NULL;
			_tmp2_ = self->priv->crash_dir_path;
			_tmp3_ = g_file_new_for_path (_tmp2_);
			directory = _tmp3_;
			_tmp4_ = directory;
			_tmp5_ = g_file_enumerate_children (_tmp4_, G_FILE_ATTRIBUTE_STANDARD_NAME, 0, NULL, &_inner_error_);
			enumerator = _tmp5_;
			if (G_UNLIKELY (_inner_error_ != NULL)) {
				_g_object_unref0 (directory);
				goto __catch15_g_error;
			}
			while (TRUE) {
				GFileInfo* _tmp6_ = NULL;
				GFileEnumerator* _tmp7_ = NULL;
				GFileInfo* _tmp8_ = NULL;
				GFileInfo* _tmp9_ = NULL;
				GFileInfo* _tmp10_ = NULL;
				GFileInfo* _tmp11_ = NULL;
				const gchar* _tmp12_ = NULL;
				gchar* _tmp13_ = NULL;
				const gchar* _tmp14_ = NULL;
				_tmp7_ = enumerator;
				_tmp8_ = g_file_enumerator_next_file (_tmp7_, NULL, &_inner_error_);
				_tmp6_ = _tmp8_;
				if (G_UNLIKELY (_inner_error_ != NULL)) {
					_g_object_unref0 (file_info);
					_g_object_unref0 (enumerator);
					_g_object_unref0 (directory);
					goto __catch15_g_error;
				}
				_tmp9_ = _tmp6_;
				_tmp6_ = NULL;
				_g_object_unref0 (file_info);
				file_info = _tmp9_;
				_tmp10_ = file_info;
				if (!(_tmp10_ != NULL)) {
					_g_object_unref0 (_tmp6_);
					break;
				}
				_tmp11_ = file_info;
				_tmp12_ = g_file_info_get_name (_tmp11_);
				_tmp13_ = g_strdup (_tmp12_);
				_g_free0 (file_name);
				file_name = _tmp13_;
				_tmp14_ = file_name;
				if (g_strcmp0 (_tmp14_, ".lock") != 0) {
					const gchar* _tmp15_ = NULL;
					gboolean _tmp16_ = FALSE;
					_tmp15_ = file_name;
					_tmp16_ = g_str_has_suffix (_tmp15_, ".crash");
					if (_tmp16_) {
						const gchar* _tmp17_ = NULL;
						const gchar* _tmp18_ = NULL;
						gchar* _tmp19_ = NULL;
						_tmp17_ = file_name;
						g_message ("app.vala:1801: Add to crash_list: %s", _tmp17_);
						_tmp18_ = file_name;
						_tmp19_ = g_strdup (_tmp18_);
						crash_list = g_list_append (crash_list, _tmp19_);
					} else {
						const gchar* _tmp20_ = NULL;
						gboolean _tmp21_ = FALSE;
						_tmp20_ = file_name;
						_tmp21_ = g_str_has_suffix (_tmp20_, ".uploaded");
						if (_tmp21_) {
							gchar** _tmp22_ = NULL;
							gint _tmp22__length1 = 0;
							const gchar* _tmp23_ = NULL;
							gchar* _tmp24_ = NULL;
							const gchar* _tmp25_ = NULL;
							gchar* _tmp26_ = NULL;
							gchar* _tmp27_ = NULL;
							_tmp22_ = uploaded_list;
							_tmp22__length1 = uploaded_list_length1;
							_tmp23_ = file_name;
							_tmp24_ = string_replace (_tmp23_, ".uploaded", ".crash");
							_vala_array_add1 (&uploaded_list, &uploaded_list_length1, &_uploaded_list_size_, _tmp24_);
							_tmp25_ = file_name;
							_tmp26_ = string_replace (_tmp25_, ".uploaded", ".crash");
							_tmp27_ = _tmp26_;
							g_message ("app.vala:1807: Added to upload_list: %s", _tmp27_);
							_g_free0 (_tmp27_);
						}
					}
				}
				_g_object_unref0 (_tmp6_);
			}
			_g_object_unref0 (file_info);
			_g_object_unref0 (enumerator);
			_g_object_unref0 (directory);
		}
		goto __finally15;
		__catch15_g_error:
		{
			GError* e = NULL;
			GError* _tmp28_ = NULL;
			const gchar* _tmp29_ = NULL;
			e = _inner_error_;
			_inner_error_ = NULL;
			_tmp28_ = e;
			_tmp29_ = _tmp28_->message;
			g_message ("app.vala:1814: Error: %s\n", _tmp29_);
			_g_error_free0 (e);
		}
		__finally15:
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			_g_free0 (file_name);
			uploaded_list = (_vala_array_free (uploaded_list, uploaded_list_length1, (GDestroyNotify) g_free), NULL);
			__g_list_free__g_free0_0 (final_crash_list);
			__g_list_free__g_free0_0 (crash_list);
			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 NULL;
		}
	}
	_tmp30_ = crash_list;
	{
		GList* element_collection = NULL;
		GList* element_it = NULL;
		element_collection = _tmp30_;
		for (element_it = element_collection; element_it != NULL; element_it = element_it->next) {
			gchar* _tmp31_ = NULL;
			gchar* element = NULL;
			_tmp31_ = g_strdup ((const gchar*) element_it->data);
			element = _tmp31_;
			{
				const gchar* _tmp32_ = NULL;
				gchar** _tmp33_ = NULL;
				gint _tmp33__length1 = 0;
				_tmp32_ = element;
				g_message ("app.vala:1820: Check element in crash_list: %s", _tmp32_);
				_tmp33_ = uploaded_list;
				_tmp33__length1 = uploaded_list_length1;
				if (_tmp33_ != NULL) {
					const gchar* _tmp34_ = NULL;
					gchar** _tmp35_ = NULL;
					gint _tmp35__length1 = 0;
					_tmp34_ = element;
					_tmp35_ = uploaded_list;
					_tmp35__length1 = uploaded_list_length1;
					if (_vala_string_array_contains (_tmp35_, _tmp35__length1, _tmp34_)) {
						const gchar* _tmp36_ = NULL;
						_tmp36_ = element;
						g_message ("app.vala:1825: Remove element in crash_list: %s", _tmp36_);
					} else {
						const gchar* _tmp37_ = NULL;
						gchar* _tmp38_ = NULL;
						_tmp37_ = element;
						_tmp38_ = g_strdup (_tmp37_);
						final_crash_list = g_list_append (final_crash_list, _tmp38_);
					}
				} else {
					const gchar* _tmp39_ = NULL;
					gchar* _tmp40_ = NULL;
					_tmp39_ = element;
					_tmp40_ = g_strdup (_tmp39_);
					final_crash_list = g_list_append (final_crash_list, _tmp40_);
				}
				_g_free0 (element);
			}
		}
	}
	result = final_crash_list;
	_g_free0 (file_name);
	uploaded_list = (_vala_array_free (uploaded_list, uploaded_list_length1, (GDestroyNotify) g_free), NULL);
	__g_list_free__g_free0_0 (crash_list);
	return result;
}


void lxsession_crash_manager_app_crash_report_launch (LxsessionCrashManagerApp* self, const gchar* command) {
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (command != NULL);
	{
		const gchar* _tmp0_ = NULL;
		const gchar* _tmp1_ = NULL;
		_tmp0_ = command;
		g_spawn_command_line_async (_tmp0_, &_inner_error_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			if (_inner_error_->domain == G_SPAWN_ERROR) {
				goto __catch17_g_spawn_error;
			}
			g_critical ("file %s: line %d: unexpected 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;
		}
		_tmp1_ = command;
		g_message ("app.vala:1846: Launching crash command : %s", _tmp1_);
	}
	goto __finally17;
	__catch17_g_spawn_error:
	{
		GError* err = NULL;
		GError* _tmp2_ = NULL;
		const gchar* _tmp3_ = NULL;
		err = _inner_error_;
		_inner_error_ = NULL;
		_tmp2_ = err;
		_tmp3_ = _tmp2_->message;
		g_warning ("app.vala:1850: %s", _tmp3_);
		_g_error_free0 (err);
	}
	__finally17:
	if (G_UNLIKELY (_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 Block2Data* block2_data_ref (Block2Data* _data2_) {
	g_atomic_int_inc (&_data2_->_ref_count_);
	return _data2_;
}


static void block2_data_unref (void * _userdata_) {
	Block2Data* _data2_;
	_data2_ = (Block2Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
		LxsessionCrashManagerApp* self;
		self = _data2_->self;
		_g_free0 (_data2_->command);
		_g_object_unref0 (self);
		g_slice_free (Block2Data, _data2_);
	}
}


static void _____lambda13_ (Block2Data* _data2_) {
	LxsessionCrashManagerApp* self;
	const gchar* _tmp0_ = NULL;
	self = _data2_->self;
	_tmp0_ = _data2_->command;
	lxsession_crash_manager_app_crash_report_launch (self, _tmp0_);
}


static void ______lambda13__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
	_____lambda13_ (self);
}


LxsessionMenuObject* lxsession_crash_manager_app_build_menu (LxsessionCrashManagerApp* self, GList* crash_list) {
	LxsessionMenuObject* result = NULL;
	guint len = 0U;
	GList* _tmp0_ = NULL;
	guint _tmp1_ = 0U;
	LxsessionMenuObject* menu = NULL;
	LxsessionMenuObject* _tmp2_ = NULL;
	guint _tmp3_ = 0U;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = crash_list;
	_tmp1_ = g_list_length (_tmp0_);
	len = _tmp1_;
	_tmp2_ = lxsession_menu_object_new ();
	g_object_ref_sink (_tmp2_);
	menu = _tmp2_;
	_tmp3_ = len;
	if (_tmp3_ >= ((guint) 1)) {
		GList* _tmp4_ = NULL;
		_tmp4_ = crash_list;
		{
			GList* element_collection = NULL;
			GList* element_it = NULL;
			element_collection = _tmp4_;
			for (element_it = element_collection; element_it != NULL; element_it = element_it->next) {
				gchar* _tmp5_ = NULL;
				gchar* element = NULL;
				_tmp5_ = g_strdup ((const gchar*) element_it->data);
				element = _tmp5_;
				{
					Block2Data* _data2_;
					const gchar* _tmp6_ = NULL;
					gchar* _tmp7_ = NULL;
					gchar* _tmp8_ = NULL;
					const gchar* _tmp9_ = NULL;
					gchar* _tmp10_ = NULL;
					gchar* _tmp11_ = NULL;
					LxsessionMenuItemObject* menu_item = NULL;
					LxsessionMenuItemObject* _tmp12_ = NULL;
					LxsessionMenuItemObject* _tmp13_ = NULL;
					const gchar* _tmp14_ = NULL;
					const gchar* _tmp15_ = NULL;
					gchar* _tmp16_ = NULL;
					gchar* _tmp17_ = NULL;
					LxsessionMenuItemObject* _tmp18_ = NULL;
					LxsessionMenuItemObject* _tmp19_ = NULL;
					LxsessionMenuObject* _tmp20_ = NULL;
					LxsessionMenuItemObject* _tmp21_ = NULL;
					_data2_ = g_slice_new0 (Block2Data);
					_data2_->_ref_count_ = 1;
					_data2_->self = g_object_ref (self);
					_tmp6_ = self->priv->crash_dir_path;
					_tmp7_ = g_strconcat ("/usr/bin/pkexec /usr/share/apport/apport-gtk" " ", _tmp6_, NULL);
					_tmp8_ = _tmp7_;
					_tmp9_ = element;
					_tmp10_ = g_strconcat (_tmp8_, _tmp9_, NULL);
					_tmp11_ = _tmp10_;
					_g_free0 (_tmp8_);
					_data2_->command = _tmp11_;
					_tmp12_ = lxsession_menu_item_object_new ();
					g_object_ref_sink (_tmp12_);
					menu_item = _tmp12_;
					_tmp13_ = menu_item;
					_tmp14_ = _ ("Report ");
					_tmp15_ = element;
					_tmp16_ = g_strconcat (_tmp14_, _tmp15_, NULL);
					_tmp17_ = _tmp16_;
					gtk_menu_item_set_label ((GtkMenuItem*) _tmp13_, _tmp17_);
					_g_free0 (_tmp17_);
					_tmp18_ = menu_item;
					g_signal_connect_data ((GtkMenuItem*) _tmp18_, "activate", (GCallback) ______lambda13__gtk_menu_item_activate, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0);
					_tmp19_ = menu_item;
					gtk_widget_show ((GtkWidget*) _tmp19_);
					_tmp20_ = menu;
					_tmp21_ = menu_item;
					gtk_container_add ((GtkContainer*) _tmp20_, (GtkWidget*) _tmp21_);
					_g_object_unref0 (menu_item);
					_g_free0 (element);
					block2_data_unref (_data2_);
					_data2_ = NULL;
				}
			}
		}
	}
	result = menu;
	return result;
}


static Block3Data* block3_data_ref (Block3Data* _data3_) {
	g_atomic_int_inc (&_data3_->_ref_count_);
	return _data3_;
}


static void block3_data_unref (void * _userdata_) {
	Block3Data* _data3_;
	_data3_ = (Block3Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
		LxsessionCrashManagerApp* self;
		self = _data3_->self;
		_g_free0 (_data3_->remove_command);
		_g_object_unref0 (self);
		g_slice_free (Block3Data, _data3_);
	}
}


static void ____lambda14_ (Block3Data* _data3_) {
	LxsessionCrashManagerApp* self;
	const gchar* _tmp0_ = NULL;
	self = _data3_->self;
	_tmp0_ = _data3_->remove_command;
	lxsession_crash_manager_app_crash_report_launch (self, _tmp0_);
}


static void _____lambda14__lxsession_icon_object_action_callback (gpointer self) {
	____lambda14_ (self);
}


gboolean lxsession_crash_manager_app_on_crash_file_change (LxsessionCrashManagerApp* self) {
	gboolean result = FALSE;
	GList* crash_list = NULL;
	guint len = 0U;
	LxsessionMenuObject* crash_menu = NULL;
	GList* _tmp0_ = NULL;
	GList* _tmp1_ = NULL;
	guint _tmp2_ = 0U;
	guint last_item = 0U;
	guint _tmp3_ = 0U;
	guint _tmp4_ = 0U;
	g_return_val_if_fail (self != NULL, FALSE);
	self->priv->lock_crash_check = 1;
	_tmp0_ = lxsession_crash_manager_app_check_crash_file (self);
	__g_list_free__g_free0_0 (crash_list);
	crash_list = _tmp0_;
	_tmp1_ = crash_list;
	_tmp2_ = g_list_length (_tmp1_);
	len = _tmp2_;
	_tmp3_ = len;
	last_item = _tmp3_ - 1;
	_tmp4_ = len;
	if (_tmp4_ >= ((guint) 1)) {
		Block3Data* _data3_;
		GList* _tmp5_ = NULL;
		LxsessionMenuObject* _tmp6_ = NULL;
		gchar* command = NULL;
		const gchar* _tmp7_ = NULL;
		gchar* _tmp8_ = NULL;
		gchar* _tmp9_ = NULL;
		GList* _tmp10_ = NULL;
		guint _tmp11_ = 0U;
		gconstpointer _tmp12_ = NULL;
		gchar* _tmp13_ = NULL;
		gchar* _tmp14_ = NULL;
		const gchar* _tmp15_ = NULL;
		gchar* _tmp16_ = NULL;
		gchar* _tmp17_ = NULL;
		GList* _tmp18_ = NULL;
		guint _tmp19_ = 0U;
		gconstpointer _tmp20_ = NULL;
		gchar* _tmp21_ = NULL;
		gchar* _tmp22_ = NULL;
		gchar* launch_string = NULL;
		gchar* _tmp23_ = NULL;
		gchar* remove_string = NULL;
		gchar* _tmp24_ = NULL;
		LxsessionIconObject* _tmp25_ = NULL;
		LxsessionIconObject* _tmp30_ = NULL;
		LxsessionMenuObject* _tmp31_ = NULL;
		LxsessionLxsessionConfigKeyFile* _tmp32_ = NULL;
		gchar* _tmp33_ = NULL;
		gchar* _tmp34_ = NULL;
		gboolean _tmp35_ = FALSE;
		LxsessionIconObject* _tmp38_ = NULL;
		_data3_ = g_slice_new0 (Block3Data);
		_data3_->_ref_count_ = 1;
		_data3_->self = g_object_ref (self);
		_tmp5_ = crash_list;
		_tmp6_ = lxsession_crash_manager_app_build_menu (self, _tmp5_);
		_g_object_unref0 (crash_menu);
		crash_menu = _tmp6_;
		_tmp7_ = self->priv->crash_dir_path;
		_tmp8_ = g_strconcat ("/usr/bin/pkexec /usr/share/apport/apport-gtk" " ", _tmp7_, NULL);
		_tmp9_ = _tmp8_;
		_tmp10_ = crash_list;
		_tmp11_ = last_item;
		_tmp12_ = g_list_nth_data (_tmp10_, _tmp11_);
		_tmp13_ = g_strconcat (_tmp9_, (const gchar*) _tmp12_, NULL);
		_tmp14_ = _tmp13_;
		_g_free0 (_tmp9_);
		command = _tmp14_;
		_tmp15_ = self->priv->crash_dir_path;
		_tmp16_ = g_strconcat ("/usr/bin/pkexec rm -f ", _tmp15_, NULL);
		_tmp17_ = _tmp16_;
		_tmp18_ = crash_list;
		_tmp19_ = last_item;
		_tmp20_ = g_list_nth_data (_tmp18_, _tmp19_);
		_tmp21_ = g_strconcat (_tmp17_, (const gchar*) _tmp20_, NULL);
		_tmp22_ = _tmp21_;
		_g_free0 (_tmp17_);
		_data3_->remove_command = _tmp22_;
		_tmp23_ = g_strdup ("Report last crash");
		launch_string = _tmp23_;
		_tmp24_ = g_strdup ("Remove last crash");
		remove_string = _tmp24_;
		_tmp25_ = self->priv->crash_icon;
		if (_tmp25_ == NULL) {
			const gchar* _tmp26_ = NULL;
			LxsessionMenuObject* _tmp27_ = NULL;
			LxsessionIconObject* _tmp28_ = NULL;
			LxsessionIconObject* _tmp29_ = NULL;
			_tmp26_ = _ ("Crash files available for report");
			_tmp27_ = crash_menu;
			_tmp28_ = lxsession_icon_object_new ("CrashIcon", "apport", _tmp26_, _tmp27_);
			_g_object_unref0 (self->priv->crash_icon);
			self->priv->crash_icon = _tmp28_;
			_tmp29_ = self->priv->crash_icon;
			lxsession_icon_object_init (_tmp29_);
		}
		_tmp30_ = self->priv->crash_icon;
		_tmp31_ = crash_menu;
		lxsession_icon_object_set_menu (_tmp30_, _tmp31_);
		_tmp32_ = lxsession_global_settings;
		_tmp33_ = lxsession_lxsession_config_get_item_string ((LxsessionLxsessionConfig*) _tmp32_, "Session", "crash_manager", "dev_mode");
		_tmp34_ = _tmp33_;
		_tmp35_ = g_strcmp0 (_tmp34_, "yes") == 0;
		_g_free0 (_tmp34_);
		if (_tmp35_) {
			LxsessionIconObject* _tmp36_ = NULL;
			const gchar* _tmp37_ = NULL;
			_tmp36_ = self->priv->crash_icon;
			_tmp37_ = remove_string;
			lxsession_icon_object_add_action (_tmp36_, "remove_crash_report", _tmp37_, _____lambda14__lxsession_icon_object_action_callback, block3_data_ref (_data3_), block3_data_unref);
		}
		_tmp38_ = self->priv->crash_icon;
		lxsession_icon_object_activate (_tmp38_);
		_g_free0 (remove_string);
		_g_free0 (launch_string);
		_g_free0 (command);
		block3_data_unref (_data3_);
		_data3_ = NULL;
	}
	self->priv->lock_crash_check = 0;
	result = FALSE;
	_g_object_unref0 (crash_menu);
	__g_list_free__g_free0_0 (crash_list);
	return result;
}


static void lxsession_crash_manager_app_class_init (LxsessionCrashManagerAppClass * klass) {
	lxsession_crash_manager_app_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (LxsessionCrashManagerAppPrivate));
	((LxsessionAppObjectClass *) klass)->read_settings = lxsession_crash_manager_app_real_read_settings;
	G_OBJECT_CLASS (klass)->finalize = lxsession_crash_manager_app_finalize;
}


static void lxsession_crash_manager_app_instance_init (LxsessionCrashManagerApp * self) {
	gchar* _tmp0_ = NULL;
	self->priv = LXSESSION_CRASH_MANAGER_APP_GET_PRIVATE (self);
	_tmp0_ = g_strdup ("/var/crash/");
	self->priv->crash_dir_path = _tmp0_;
	self->priv->lock_crash_check = 0;
}


static void lxsession_crash_manager_app_finalize (GObject* obj) {
	LxsessionCrashManagerApp * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, LXSESSION_TYPE_CRASH_MANAGER_APP, LxsessionCrashManagerApp);
	_g_free0 (self->priv->crash_manager_command);
	_g_object_unref0 (self->priv->crash_icon);
	_g_free0 (self->priv->crash_dir_path);
	_g_object_unref0 (self->priv->crash_dir_file);
	_g_object_unref0 (self->priv->crash_dir_monitor);
	G_OBJECT_CLASS (lxsession_crash_manager_app_parent_class)->finalize (obj);
}


GType lxsession_crash_manager_app_get_type (void) {
	static volatile gsize lxsession_crash_manager_app_type_id__volatile = 0;
	if (g_once_init_enter (&lxsession_crash_manager_app_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (LxsessionCrashManagerAppClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) lxsession_crash_manager_app_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LxsessionCrashManagerApp), 0, (GInstanceInitFunc) lxsession_crash_manager_app_instance_init, NULL };
		GType lxsession_crash_manager_app_type_id;
		lxsession_crash_manager_app_type_id = g_type_register_static (LXSESSION_TYPE_SIMPLE_APP_OBJECT, "LxsessionCrashManagerApp", &g_define_type_info, 0);
		g_once_init_leave (&lxsession_crash_manager_app_type_id__volatile, lxsession_crash_manager_app_type_id);
	}
	return lxsession_crash_manager_app_type_id__volatile;
}


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


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


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



