# 1 "camel-pop3-folder.c"
# 1 "/home/sragavan/cvs/gnome216/evolution-data-server/camel/providers/pop3//"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "camel-pop3-folder.c"
# 27 "camel-pop3-folder.c"
# 1 "../../../config.h" 1
# 28 "camel-pop3-folder.c" 2


# 1 "/usr/include/errno.h" 1 3 4
# 29 "/usr/include/errno.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 323 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 313 "/usr/include/sys/cdefs.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 314 "/usr/include/sys/cdefs.h" 2 3 4
# 324 "/usr/include/features.h" 2 3 4
# 346 "/usr/include/features.h" 3 4
# 1 "/usr/include/gnu/stubs.h" 1 3 4



# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 5 "/usr/include/gnu/stubs.h" 2 3 4


# 1 "/usr/include/gnu/stubs-32.h" 1 3 4
# 8 "/usr/include/gnu/stubs.h" 2 3 4
# 347 "/usr/include/features.h" 2 3 4
# 30 "/usr/include/errno.h" 2 3 4






# 1 "/usr/include/bits/errno.h" 1 3 4
# 25 "/usr/include/bits/errno.h" 3 4
# 1 "/usr/include/linux/errno.h" 1 3 4



# 1 "/usr/include/asm/errno.h" 1 3 4



# 1 "/usr/include/asm-generic/errno.h" 1 3 4



# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
# 5 "/usr/include/asm-generic/errno.h" 2 3 4
# 5 "/usr/include/asm/errno.h" 2 3 4
# 5 "/usr/include/linux/errno.h" 2 3 4
# 26 "/usr/include/bits/errno.h" 2 3 4
# 43 "/usr/include/bits/errno.h" 3 4
extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
# 37 "/usr/include/errno.h" 2 3 4
# 59 "/usr/include/errno.h" 3 4

# 31 "camel-pop3-folder.c" 2

# 1 "camel-pop3-folder.h" 1
# 34 "camel-pop3-folder.h"
# 1 "../../../camel/camel-folder.h" 1
# 34 "../../../camel/camel-folder.h"
# 1 "/opt/gnome/include/glib-2.0/glib.h" 1
# 30 "/opt/gnome/include/glib-2.0/glib.h"
# 1 "/opt/gnome/include/glib-2.0/glib/galloca.h" 1
# 30 "/opt/gnome/include/glib-2.0/glib/galloca.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gtypes.h" 1
# 30 "/opt/gnome/include/glib-2.0/glib/gtypes.h"
# 1 "/opt/gnome/lib/glib-2.0/include/glibconfig.h" 1
# 9 "/opt/gnome/lib/glib-2.0/include/glibconfig.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gmacros.h" 1
# 36 "/opt/gnome/include/glib-2.0/glib/gmacros.h"
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 152 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 214 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 3 4
typedef unsigned int size_t;
# 326 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 3 4
typedef long int wchar_t;
# 37 "/opt/gnome/include/glib-2.0/glib/gmacros.h" 2
# 10 "/opt/gnome/lib/glib-2.0/include/glibconfig.h" 2

# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/limits.h" 1 3 4
# 11 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/limits.h" 3 4
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/syslimits.h" 1 3 4






# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/limits.h" 1 3 4
# 122 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 145 "/usr/include/limits.h" 3 4
# 1 "/usr/include/bits/posix1_lim.h" 1 3 4
# 153 "/usr/include/bits/posix1_lim.h" 3 4
# 1 "/usr/include/bits/local_lim.h" 1 3 4
# 36 "/usr/include/bits/local_lim.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 37 "/usr/include/bits/local_lim.h" 2 3 4
# 154 "/usr/include/bits/posix1_lim.h" 2 3 4
# 146 "/usr/include/limits.h" 2 3 4



# 1 "/usr/include/bits/posix2_lim.h" 1 3 4
# 150 "/usr/include/limits.h" 2 3 4
# 123 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/limits.h" 2 3 4
# 8 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/syslimits.h" 2 3 4
# 12 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/limits.h" 2 3 4
# 12 "/opt/gnome/lib/glib-2.0/include/glibconfig.h" 2
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/float.h" 1 3 4
# 13 "/opt/gnome/lib/glib-2.0/include/glibconfig.h" 2




# 32 "/opt/gnome/lib/glib-2.0/include/glibconfig.h"
typedef signed char gint8;
typedef unsigned char guint8;
typedef signed short gint16;
typedef unsigned short guint16;



typedef signed int gint32;
typedef unsigned int guint32;





__extension__ typedef signed long long gint64;
__extension__ typedef unsigned long long guint64;
# 59 "/opt/gnome/lib/glib-2.0/include/glibconfig.h"
typedef signed int gssize;
typedef unsigned int gsize;
# 126 "/opt/gnome/lib/glib-2.0/include/glibconfig.h"
typedef struct _GStaticMutex GStaticMutex;
struct _GStaticMutex
{
  struct _GMutex *runtime_mutex;
  union {
    char pad[24];
    double dummy_double;
    void *dummy_pointer;
    long dummy_long;
  } static_mutex;
};
# 145 "/opt/gnome/lib/glib-2.0/include/glibconfig.h"
typedef union _GSystemThread GSystemThread;
union _GSystemThread
{
  char data[4];
  double dummy_double;
  void *dummy_pointer;
  long dummy_long;
};
# 185 "/opt/gnome/lib/glib-2.0/include/glibconfig.h"
typedef int GPid;


# 31 "/opt/gnome/include/glib-2.0/glib/gtypes.h" 2


# 41 "/opt/gnome/include/glib-2.0/glib/gtypes.h"
typedef char gchar;
typedef short gshort;
typedef long glong;
typedef int gint;
typedef gint gboolean;

typedef unsigned char guchar;
typedef unsigned short gushort;
typedef unsigned long gulong;
typedef unsigned int guint;

typedef float gfloat;
typedef double gdouble;
# 72 "/opt/gnome/include/glib-2.0/glib/gtypes.h"
typedef void* gpointer;
typedef const void *gconstpointer;

typedef gint (*GCompareFunc) (gconstpointer a,
                                                 gconstpointer b);
typedef gint (*GCompareDataFunc) (gconstpointer a,
                                                 gconstpointer b,
       gpointer user_data);
typedef gboolean (*GEqualFunc) (gconstpointer a,
                                                 gconstpointer b);
typedef void (*GDestroyNotify) (gpointer data);
typedef void (*GFunc) (gpointer data,
                                                 gpointer user_data);
typedef guint (*GHashFunc) (gconstpointer key);
typedef void (*GHFunc) (gpointer key,
                                                 gpointer value,
                                                 gpointer user_data);
typedef void (*GFreeFunc) (gpointer data);
typedef const gchar * (*GTranslateFunc) (const gchar *str,
       gpointer data);
# 338 "/opt/gnome/include/glib-2.0/glib/gtypes.h"
typedef union _GDoubleIEEE754 GDoubleIEEE754;
typedef union _GFloatIEEE754 GFloatIEEE754;





union _GFloatIEEE754
{
  gfloat v_float;
  struct {
    guint mantissa : 23;
    guint biased_exponent : 8;
    guint sign : 1;
  } mpn;
};
union _GDoubleIEEE754
{
  gdouble v_double;
  struct {
    guint mantissa_low : 32;
    guint mantissa_high : 20;
    guint biased_exponent : 11;
    guint sign : 1;
  } mpn;
};
# 388 "/opt/gnome/include/glib-2.0/glib/gtypes.h"
typedef struct _GTimeVal GTimeVal;

struct _GTimeVal
{
  glong tv_sec;
  glong tv_usec;
};


# 31 "/opt/gnome/include/glib-2.0/glib/galloca.h" 2
# 31 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/garray.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/garray.h"


typedef struct _GArray GArray;
typedef struct _GByteArray GByteArray;
typedef struct _GPtrArray GPtrArray;

struct _GArray
{
  gchar *data;
  guint len;
};

struct _GByteArray
{
  guint8 *data;
  guint len;
};

struct _GPtrArray
{
  gpointer *pdata;
  guint len;
};
# 66 "/opt/gnome/include/glib-2.0/glib/garray.h"
GArray* g_array_new (gboolean zero_terminated,
       gboolean clear_,
       guint element_size);
GArray* g_array_sized_new (gboolean zero_terminated,
       gboolean clear_,
       guint element_size,
       guint reserved_size);
gchar* g_array_free (GArray *array,
       gboolean free_segment);
GArray* g_array_append_vals (GArray *array,
       gconstpointer data,
       guint len);
GArray* g_array_prepend_vals (GArray *array,
       gconstpointer data,
       guint len);
GArray* g_array_insert_vals (GArray *array,
       guint index_,
       gconstpointer data,
       guint len);
GArray* g_array_set_size (GArray *array,
       guint length);
GArray* g_array_remove_index (GArray *array,
       guint index_);
GArray* g_array_remove_index_fast (GArray *array,
       guint index_);
GArray* g_array_remove_range (GArray *array,
       guint index_,
       guint length);
void g_array_sort (GArray *array,
       GCompareFunc compare_func);
void g_array_sort_with_data (GArray *array,
       GCompareDataFunc compare_func,
       gpointer user_data);






GPtrArray* g_ptr_array_new (void);
GPtrArray* g_ptr_array_sized_new (guint reserved_size);
gpointer* g_ptr_array_free (GPtrArray *array,
        gboolean free_seg);
void g_ptr_array_set_size (GPtrArray *array,
        gint length);
gpointer g_ptr_array_remove_index (GPtrArray *array,
        guint index_);
gpointer g_ptr_array_remove_index_fast (GPtrArray *array,
        guint index_);
gboolean g_ptr_array_remove (GPtrArray *array,
        gpointer data);
gboolean g_ptr_array_remove_fast (GPtrArray *array,
        gpointer data);
void g_ptr_array_remove_range (GPtrArray *array,
        guint index_,
        guint length);
void g_ptr_array_add (GPtrArray *array,
        gpointer data);
void g_ptr_array_sort (GPtrArray *array,
        GCompareFunc compare_func);
void g_ptr_array_sort_with_data (GPtrArray *array,
        GCompareDataFunc compare_func,
        gpointer user_data);
void g_ptr_array_foreach (GPtrArray *array,
        GFunc func,
        gpointer user_data);






GByteArray* g_byte_array_new (void);
GByteArray* g_byte_array_sized_new (guint reserved_size);
guint8* g_byte_array_free (GByteArray *array,
         gboolean free_segment);
GByteArray* g_byte_array_append (GByteArray *array,
         const guint8 *data,
         guint len);
GByteArray* g_byte_array_prepend (GByteArray *array,
         const guint8 *data,
         guint len);
GByteArray* g_byte_array_set_size (GByteArray *array,
         guint length);
GByteArray* g_byte_array_remove_index (GByteArray *array,
         guint index_);
GByteArray* g_byte_array_remove_index_fast (GByteArray *array,
         guint index_);
GByteArray* g_byte_array_remove_range (GByteArray *array,
         guint index_,
         guint length);
void g_byte_array_sort (GByteArray *array,
         GCompareFunc compare_func);
void g_byte_array_sort_with_data (GByteArray *array,
         GCompareDataFunc compare_func,
         gpointer user_data);



# 32 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gasyncqueue.h" 1
# 30 "/opt/gnome/include/glib-2.0/glib/gasyncqueue.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gthread.h" 1
# 30 "/opt/gnome/include/glib-2.0/glib/gthread.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gerror.h" 1
# 24 "/opt/gnome/include/glib-2.0/glib/gerror.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gquark.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gquark.h"


typedef guint32 GQuark;



GQuark g_quark_try_string (const gchar *string);
GQuark g_quark_from_static_string (const gchar *string);
GQuark g_quark_from_string (const gchar *string);
const gchar* g_quark_to_string (GQuark quark) __attribute__((__const__));

const gchar* g_intern_string (const gchar *string);
const gchar* g_intern_static_string (const gchar *string);



# 25 "/opt/gnome/include/glib-2.0/glib/gerror.h" 2



typedef struct _GError GError;

struct _GError
{
  GQuark domain;
  gint code;
  gchar *message;
};

GError* g_error_new (GQuark domain,
                                gint code,
                                const gchar *format,
                                ...) __attribute__((__format__ (__printf__, 3, 4)));

GError* g_error_new_literal (GQuark domain,
                                gint code,
                                const gchar *message);

void g_error_free (GError *error);
GError* g_error_copy (const GError *error);

gboolean g_error_matches (const GError *error,
                                GQuark domain,
                                gint code);




void g_set_error (GError **err,
                                GQuark domain,
                                gint code,
                                const gchar *format,
                                ...) __attribute__((__format__ (__printf__, 4, 5)));



void g_propagate_error (GError **dest,
    GError *src);


void g_clear_error (GError **err);



# 31 "/opt/gnome/include/glib-2.0/glib/gthread.h" 2

# 1 "/opt/gnome/include/glib-2.0/glib/gatomic.h" 1
# 35 "/opt/gnome/include/glib-2.0/glib/gatomic.h"


gint g_atomic_int_exchange_and_add (volatile gint *atomic,
      gint val);
void g_atomic_int_add (volatile gint *atomic,
      gint val);
gboolean g_atomic_int_compare_and_exchange (volatile gint *atomic,
      gint oldval,
      gint newval);
gboolean g_atomic_pointer_compare_and_exchange (volatile gpointer *atomic,
      gpointer oldval,
      gpointer newval);

gint g_atomic_int_get (volatile gint *atomic);
void g_atomic_int_set (volatile gint *atomic,
      gint newval);
gpointer g_atomic_pointer_get (volatile gpointer *atomic);
void g_atomic_pointer_set (volatile gpointer *atomic,
      gpointer newval);
# 66 "/opt/gnome/include/glib-2.0/glib/gatomic.h"

# 33 "/opt/gnome/include/glib-2.0/glib/gthread.h" 2






extern GQuark g_thread_error_quark (void);


typedef enum
{
  G_THREAD_ERROR_AGAIN
} GThreadError;

typedef gpointer (*GThreadFunc) (gpointer data);

typedef enum
{
  G_THREAD_PRIORITY_LOW,
  G_THREAD_PRIORITY_NORMAL,
  G_THREAD_PRIORITY_HIGH,
  G_THREAD_PRIORITY_URGENT
} GThreadPriority;

typedef struct _GThread GThread;
struct _GThread
{

  GThreadFunc func;
  gpointer data;
  gboolean joinable;
  GThreadPriority priority;
};

typedef struct _GMutex GMutex;
typedef struct _GCond GCond;
typedef struct _GPrivate GPrivate;
typedef struct _GStaticPrivate GStaticPrivate;

typedef struct _GThreadFunctions GThreadFunctions;
struct _GThreadFunctions
{
  GMutex* (*mutex_new) (void);
  void (*mutex_lock) (GMutex *mutex);
  gboolean (*mutex_trylock) (GMutex *mutex);
  void (*mutex_unlock) (GMutex *mutex);
  void (*mutex_free) (GMutex *mutex);
  GCond* (*cond_new) (void);
  void (*cond_signal) (GCond *cond);
  void (*cond_broadcast) (GCond *cond);
  void (*cond_wait) (GCond *cond,
                                   GMutex *mutex);
  gboolean (*cond_timed_wait) (GCond *cond,
                                   GMutex *mutex,
                                   GTimeVal *end_time);
  void (*cond_free) (GCond *cond);
  GPrivate* (*private_new) (GDestroyNotify destructor);
  gpointer (*private_get) (GPrivate *private_key);
  void (*private_set) (GPrivate *private_key,
                                   gpointer data);
  void (*thread_create) (GThreadFunc func,
                                   gpointer data,
                                   gulong stack_size,
                                   gboolean joinable,
                                   gboolean bound,
                                   GThreadPriority priority,
                                   gpointer thread,
                                   GError **error);
  void (*thread_yield) (void);
  void (*thread_join) (gpointer thread);
  void (*thread_exit) (void);
  void (*thread_set_priority)(gpointer thread,
                                   GThreadPriority priority);
  void (*thread_self) (gpointer thread);
  gboolean (*thread_equal) (gpointer thread1,
       gpointer thread2);
};

extern GThreadFunctions g_thread_functions_for_glib_use;
extern gboolean g_thread_use_default_impl;
extern gboolean g_threads_got_initialized;





void g_thread_init (GThreadFunctions *vtable);
# 128 "/opt/gnome/include/glib-2.0/glib/gthread.h"
void g_thread_init_with_errorcheck_mutexes (GThreadFunctions* vtable);
# 138 "/opt/gnome/include/glib-2.0/glib/gthread.h"
GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex);
# 209 "/opt/gnome/include/glib-2.0/glib/gthread.h"
GThread* g_thread_create_full (GThreadFunc func,
                                gpointer data,
                                gulong stack_size,
                                gboolean joinable,
                                gboolean bound,
                                GThreadPriority priority,
                                GError **error);
GThread* g_thread_self (void);
void g_thread_exit (gpointer retval);
gpointer g_thread_join (GThread *thread);

void g_thread_set_priority (GThread *thread,
                                GThreadPriority priority);
# 234 "/opt/gnome/include/glib-2.0/glib/gthread.h"
void g_static_mutex_init (GStaticMutex *mutex);
void g_static_mutex_free (GStaticMutex *mutex);

struct _GStaticPrivate
{

  guint index;
};

void g_static_private_init (GStaticPrivate *private_key);
gpointer g_static_private_get (GStaticPrivate *private_key);
void g_static_private_set (GStaticPrivate *private_key,
       gpointer data,
       GDestroyNotify notify);
void g_static_private_free (GStaticPrivate *private_key);

typedef struct _GStaticRecMutex GStaticRecMutex;
struct _GStaticRecMutex
{

  GStaticMutex mutex;
  guint depth;
  GSystemThread owner;
};


void g_static_rec_mutex_init (GStaticRecMutex *mutex);
void g_static_rec_mutex_lock (GStaticRecMutex *mutex);
gboolean g_static_rec_mutex_trylock (GStaticRecMutex *mutex);
void g_static_rec_mutex_unlock (GStaticRecMutex *mutex);
void g_static_rec_mutex_lock_full (GStaticRecMutex *mutex,
                                         guint depth);
guint g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex);
void g_static_rec_mutex_free (GStaticRecMutex *mutex);

typedef struct _GStaticRWLock GStaticRWLock;
struct _GStaticRWLock
{

  GStaticMutex mutex;
  GCond *read_cond;
  GCond *write_cond;
  guint read_counter;
  gboolean have_writer;
  guint want_to_read;
  guint want_to_write;
};



void g_static_rw_lock_init (GStaticRWLock* lock);
void g_static_rw_lock_reader_lock (GStaticRWLock* lock);
gboolean g_static_rw_lock_reader_trylock (GStaticRWLock* lock);
void g_static_rw_lock_reader_unlock (GStaticRWLock* lock);
void g_static_rw_lock_writer_lock (GStaticRWLock* lock);
gboolean g_static_rw_lock_writer_trylock (GStaticRWLock* lock);
void g_static_rw_lock_writer_unlock (GStaticRWLock* lock);
void g_static_rw_lock_free (GStaticRWLock* lock);

void g_thread_foreach (GFunc thread_func,
        gpointer user_data);

typedef enum
{
  G_ONCE_STATUS_NOTCALLED,
  G_ONCE_STATUS_PROGRESS,
  G_ONCE_STATUS_READY
} GOnceStatus;

typedef struct _GOnce GOnce;
struct _GOnce
{
  volatile GOnceStatus status;
  volatile gpointer retval;
};



gpointer g_once_impl (GOnce *once, GThreadFunc func, gpointer arg);
# 332 "/opt/gnome/include/glib-2.0/glib/gthread.h"
extern void glib_dummy_decl (void);
# 375 "/opt/gnome/include/glib-2.0/glib/gthread.h"

# 31 "/opt/gnome/include/glib-2.0/glib/gasyncqueue.h" 2



typedef struct _GAsyncQueue GAsyncQueue;




GAsyncQueue* g_async_queue_new (void);





void g_async_queue_lock (GAsyncQueue *queue);
void g_async_queue_unlock (GAsyncQueue *queue);


GAsyncQueue* g_async_queue_ref (GAsyncQueue *queue);
void g_async_queue_unref (GAsyncQueue *queue);



void g_async_queue_ref_unlocked (GAsyncQueue *queue);
void g_async_queue_unref_and_unlock (GAsyncQueue *queue);



void g_async_queue_push (GAsyncQueue *queue,
       gpointer data);
void g_async_queue_push_unlocked (GAsyncQueue *queue,
       gpointer data);

void g_async_queue_push_sorted (GAsyncQueue *queue,
       gpointer data,
       GCompareDataFunc func,
       gpointer user_data);
void g_async_queue_push_sorted_unlocked (GAsyncQueue *queue,
       gpointer data,
       GCompareDataFunc func,
       gpointer user_data);




gpointer g_async_queue_pop (GAsyncQueue *queue);
gpointer g_async_queue_pop_unlocked (GAsyncQueue *queue);


gpointer g_async_queue_try_pop (GAsyncQueue *queue);
gpointer g_async_queue_try_pop_unlocked (GAsyncQueue *queue);






gpointer g_async_queue_timed_pop (GAsyncQueue *queue,
       GTimeVal *end_time);
gpointer g_async_queue_timed_pop_unlocked (GAsyncQueue *queue,
       GTimeVal *end_time);
# 100 "/opt/gnome/include/glib-2.0/glib/gasyncqueue.h"
gint g_async_queue_length (GAsyncQueue *queue);
gint g_async_queue_length_unlocked (GAsyncQueue *queue);
void g_async_queue_sort (GAsyncQueue *queue,
       GCompareDataFunc func,
       gpointer user_data);
void g_async_queue_sort_unlocked (GAsyncQueue *queue,
       GCompareDataFunc func,
       gpointer user_data);


GMutex* _g_async_queue_get_mutex (GAsyncQueue *queue);


# 33 "/opt/gnome/include/glib-2.0/glib.h" 2

# 1 "/opt/gnome/include/glib-2.0/glib/gbacktrace.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gbacktrace.h"

# 43 "/opt/gnome/include/glib-2.0/glib/gbacktrace.h"
void g_on_error_query (const gchar *prg_name);
void g_on_error_stack_trace (const gchar *prg_name);
# 59 "/opt/gnome/include/glib-2.0/glib/gbacktrace.h"

# 35 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gbase64.h" 1
# 26 "/opt/gnome/include/glib-2.0/glib/gbase64.h"


gsize g_base64_encode_step (const guchar *in,
          gsize len,
          gboolean break_lines,
          gchar *out,
          gint *state,
          gint *save);
gsize g_base64_encode_close (gboolean break_lines,
          gchar *out,
          gint *state,
          gint *save);
gchar* g_base64_encode (const guchar *data,
          gsize len) __attribute__((__malloc__));
gsize g_base64_decode_step (const gchar *in,
          gsize len,
          guchar *out,
          gint *state,
          guint *save);
guchar *g_base64_decode (const gchar *text,
          gsize *out_len) __attribute__((__malloc__));


# 36 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gbookmarkfile.h" 1
# 24 "/opt/gnome/include/glib-2.0/glib/gbookmarkfile.h"
# 1 "/usr/include/time.h" 1 3 4
# 31 "/usr/include/time.h" 3 4








# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 40 "/usr/include/time.h" 2 3 4



# 1 "/usr/include/bits/time.h" 1 3 4
# 44 "/usr/include/time.h" 2 3 4
# 57 "/usr/include/time.h" 3 4
# 1 "/usr/include/bits/types.h" 1 3 4
# 28 "/usr/include/bits/types.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 29 "/usr/include/bits/types.h" 2 3 4


# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 32 "/usr/include/bits/types.h" 2 3 4


typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;


typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;




__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;







__extension__ typedef long long int __quad_t;
__extension__ typedef unsigned long long int __u_quad_t;
# 134 "/usr/include/bits/types.h" 3 4
# 1 "/usr/include/bits/typesizes.h" 1 3 4
# 135 "/usr/include/bits/types.h" 2 3 4


__extension__ typedef __u_quad_t __dev_t;
__extension__ typedef unsigned int __uid_t;
__extension__ typedef unsigned int __gid_t;
__extension__ typedef unsigned long int __ino_t;
__extension__ typedef __u_quad_t __ino64_t;
__extension__ typedef unsigned int __mode_t;
__extension__ typedef unsigned int __nlink_t;
__extension__ typedef long int __off_t;
__extension__ typedef __quad_t __off64_t;
__extension__ typedef int __pid_t;
__extension__ typedef struct { int __val[2]; } __fsid_t;
__extension__ typedef long int __clock_t;
__extension__ typedef unsigned long int __rlim_t;
__extension__ typedef __u_quad_t __rlim64_t;
__extension__ typedef unsigned int __id_t;
__extension__ typedef long int __time_t;
__extension__ typedef unsigned int __useconds_t;
__extension__ typedef long int __suseconds_t;

__extension__ typedef int __daddr_t;
__extension__ typedef long int __swblk_t;
__extension__ typedef int __key_t;


__extension__ typedef int __clockid_t;


__extension__ typedef void * __timer_t;


__extension__ typedef long int __blksize_t;




__extension__ typedef long int __blkcnt_t;
__extension__ typedef __quad_t __blkcnt64_t;


__extension__ typedef unsigned long int __fsblkcnt_t;
__extension__ typedef __u_quad_t __fsblkcnt64_t;


__extension__ typedef unsigned long int __fsfilcnt_t;
__extension__ typedef __u_quad_t __fsfilcnt64_t;

__extension__ typedef int __ssize_t;



typedef __off64_t __loff_t;
typedef __quad_t *__qaddr_t;
typedef char *__caddr_t;


__extension__ typedef int __intptr_t;


__extension__ typedef unsigned int __socklen_t;
# 58 "/usr/include/time.h" 2 3 4



typedef __clock_t clock_t;



# 75 "/usr/include/time.h" 3 4


typedef __time_t time_t;



# 93 "/usr/include/time.h" 3 4
typedef __clockid_t clockid_t;
# 105 "/usr/include/time.h" 3 4
typedef __timer_t timer_t;
# 121 "/usr/include/time.h" 3 4
struct timespec
  {
    __time_t tv_sec;
    long int tv_nsec;
  };








struct tm
{
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;


  long int tm_gmtoff;
  __const char *tm_zone;




};








struct itimerspec
  {
    struct timespec it_interval;
    struct timespec it_value;
  };


struct sigevent;





typedef __pid_t pid_t;








extern clock_t clock (void) __attribute__ ((__nothrow__));


extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));


extern double difftime (time_t __time1, time_t __time0)
     __attribute__ ((__nothrow__)) __attribute__ ((__const__));


extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));





extern size_t strftime (char *__restrict __s, size_t __maxsize,
   __const char *__restrict __format,
   __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));

# 229 "/usr/include/time.h" 3 4



extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));



extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));





extern struct tm *gmtime_r (__const time_t *__restrict __timer,
       struct tm *__restrict __tp) __attribute__ ((__nothrow__));



extern struct tm *localtime_r (__const time_t *__restrict __timer,
          struct tm *__restrict __tp) __attribute__ ((__nothrow__));





extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));


extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));







extern char *asctime_r (__const struct tm *__restrict __tp,
   char *__restrict __buf) __attribute__ ((__nothrow__));


extern char *ctime_r (__const time_t *__restrict __timer,
        char *__restrict __buf) __attribute__ ((__nothrow__));




extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;




extern char *tzname[2];



extern void tzset (void) __attribute__ ((__nothrow__));



extern int daylight;
extern long int timezone;





extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
# 312 "/usr/include/time.h" 3 4
extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));


extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));


extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
# 327 "/usr/include/time.h" 3 4
extern int nanosleep (__const struct timespec *__requested_time,
        struct timespec *__remaining);



extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));


extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));


extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
     __attribute__ ((__nothrow__));






extern int clock_nanosleep (clockid_t __clock_id, int __flags,
       __const struct timespec *__req,
       struct timespec *__rem);


extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));




extern int timer_create (clockid_t __clock_id,
    struct sigevent *__restrict __evp,
    timer_t *__restrict __timerid) __attribute__ ((__nothrow__));


extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));


extern int timer_settime (timer_t __timerid, int __flags,
     __const struct itimerspec *__restrict __value,
     struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));


extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
     __attribute__ ((__nothrow__));


extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
# 416 "/usr/include/time.h" 3 4

# 25 "/opt/gnome/include/glib-2.0/glib/gbookmarkfile.h" 2







typedef enum
{
  G_BOOKMARK_FILE_ERROR_INVALID_URI,
  G_BOOKMARK_FILE_ERROR_INVALID_VALUE,
  G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED,
  G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
  G_BOOKMARK_FILE_ERROR_READ,
  G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING,
  G_BOOKMARK_FILE_ERROR_WRITE,
  G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND
} GBookmarkFileError;

GQuark g_bookmark_file_error_quark (void);




typedef struct _GBookmarkFile GBookmarkFile;

GBookmarkFile *g_bookmark_file_new (void);
void g_bookmark_file_free (GBookmarkFile *bookmark);

gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark,
          const gchar *filename,
          GError **error);
gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark,
          const gchar *data,
          gsize length,
          GError **error);
gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark,
          const gchar *file,
          gchar **full_path,
          GError **error);
gchar * g_bookmark_file_to_data (GBookmarkFile *bookmark,
          gsize *length,
          GError **error) __attribute__((__malloc__));
gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark,
          const gchar *filename,
          GError **error);

void g_bookmark_file_set_title (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *title);
gchar * g_bookmark_file_get_title (GBookmarkFile *bookmark,
          const gchar *uri,
          GError **error) __attribute__((__malloc__));
void g_bookmark_file_set_description (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *description);
gchar * g_bookmark_file_get_description (GBookmarkFile *bookmark,
          const gchar *uri,
          GError **error) __attribute__((__malloc__));
void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *mime_type);
gchar * g_bookmark_file_get_mime_type (GBookmarkFile *bookmark,
          const gchar *uri,
          GError **error) __attribute__((__malloc__));
void g_bookmark_file_set_groups (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar **groups,
          gsize length);
void g_bookmark_file_add_group (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *group);
gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *group,
          GError **error);
gchar ** g_bookmark_file_get_groups (GBookmarkFile *bookmark,
          const gchar *uri,
          gsize *length,
          GError **error) __attribute__((__malloc__));
void g_bookmark_file_add_application (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *name,
          const gchar *exec);
gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *name,
          GError **error);
gchar ** g_bookmark_file_get_applications (GBookmarkFile *bookmark,
          const gchar *uri,
          gsize *length,
          GError **error) __attribute__((__malloc__));
gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *name,
          const gchar *exec,
          gint count,
          time_t stamp,
          GError **error);
gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *name,
          gchar **exec,
          guint *count,
          time_t *stamp,
          GError **error);
void g_bookmark_file_set_is_private (GBookmarkFile *bookmark,
          const gchar *uri,
          gboolean is_private);
gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark,
          const gchar *uri,
          GError **error);
void g_bookmark_file_set_icon (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *href,
          const gchar *mime_type);
gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark,
          const gchar *uri,
          gchar **href,
          gchar **mime_type,
          GError **error);
void g_bookmark_file_set_added (GBookmarkFile *bookmark,
          const gchar *uri,
          time_t added);
time_t g_bookmark_file_get_added (GBookmarkFile *bookmark,
          const gchar *uri,
          GError **error);
void g_bookmark_file_set_modified (GBookmarkFile *bookmark,
          const gchar *uri,
          time_t modified);
time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark,
          const gchar *uri,
          GError **error);
void g_bookmark_file_set_visited (GBookmarkFile *bookmark,
          const gchar *uri,
          time_t visited);
time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark,
          const gchar *uri,
          GError **error);
gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark,
          const gchar *uri);
gint g_bookmark_file_get_size (GBookmarkFile *bookmark);
gchar ** g_bookmark_file_get_uris (GBookmarkFile *bookmark,
          gsize *length) __attribute__((__malloc__));
gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *group,
          GError **error);
gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark,
          const gchar *uri,
          const gchar *name,
          GError **error);
gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark,
          const gchar *uri,
          GError **error);
gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark,
          const gchar *old_uri,
          const gchar *new_uri,
          GError **error);


# 37 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gcache.h" 1
# 30 "/opt/gnome/include/glib-2.0/glib/gcache.h"
# 1 "/opt/gnome/include/glib-2.0/glib/glist.h" 1
# 30 "/opt/gnome/include/glib-2.0/glib/glist.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gmem.h" 1
# 30 "/opt/gnome/include/glib-2.0/glib/gmem.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gslice.h" 1
# 28 "/opt/gnome/include/glib-2.0/glib/gslice.h"




gpointer g_slice_alloc (gsize block_size) __attribute__((__malloc__));
gpointer g_slice_alloc0 (gsize block_size) __attribute__((__malloc__));
void g_slice_free1 (gsize block_size,
      gpointer mem_block);
void g_slice_free_chain_with_offset (gsize block_size,
      gpointer mem_chain,
      gsize next_offset);
# 63 "/opt/gnome/include/glib-2.0/glib/gslice.h"
typedef enum {
  G_SLICE_CONFIG_ALWAYS_MALLOC = 1,
  G_SLICE_CONFIG_BYPASS_MAGAZINES,
  G_SLICE_CONFIG_WORKING_SET_MSECS,
  G_SLICE_CONFIG_COLOR_INCREMENT,
  G_SLICE_CONFIG_CHUNK_SIZES,
  G_SLICE_CONFIG_CONTENTION_COUNTER
} GSliceConfig;
void g_slice_set_config (GSliceConfig ckey, gint64 value);
gint64 g_slice_get_config (GSliceConfig ckey);
gint64* g_slice_get_config_state (GSliceConfig ckey, gint64 address, guint *n_values);


# 31 "/opt/gnome/include/glib-2.0/glib/gmem.h" 2




typedef struct _GMemVTable GMemVTable;
# 47 "/opt/gnome/include/glib-2.0/glib/gmem.h"
gpointer g_malloc (gulong n_bytes) __attribute__((__malloc__));
gpointer g_malloc0 (gulong n_bytes) __attribute__((__malloc__));
gpointer g_realloc (gpointer mem,
      gulong n_bytes) __attribute__((warn_unused_result));
void g_free (gpointer mem);
gpointer g_try_malloc (gulong n_bytes) __attribute__((__malloc__));
gpointer g_try_malloc0 (gulong n_bytes) __attribute__((__malloc__));
gpointer g_try_realloc (gpointer mem,
      gulong n_bytes) __attribute__((warn_unused_result));
# 79 "/opt/gnome/include/glib-2.0/glib/gmem.h"
struct _GMemVTable
{
  gpointer (*malloc) (gsize n_bytes);
  gpointer (*realloc) (gpointer mem,
      gsize n_bytes);
  void (*free) (gpointer mem);

  gpointer (*calloc) (gsize n_blocks,
      gsize n_block_bytes);
  gpointer (*try_malloc) (gsize n_bytes);
  gpointer (*try_realloc) (gpointer mem,
      gsize n_bytes);
};
void g_mem_set_vtable (GMemVTable *vtable);
gboolean g_mem_is_system_malloc (void);

extern gboolean g_mem_gc_friendly;



extern GMemVTable *glib_mem_profiler_table;
void g_mem_profile (void);




typedef struct _GAllocator GAllocator;
typedef struct _GMemChunk GMemChunk;
# 124 "/opt/gnome/include/glib-2.0/glib/gmem.h"
GMemChunk* g_mem_chunk_new (const gchar *name,
    gint atom_size,
    gulong area_size,
    gint type);
void g_mem_chunk_destroy (GMemChunk *mem_chunk);
gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk);
gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk);
void g_mem_chunk_free (GMemChunk *mem_chunk,
    gpointer mem);
void g_mem_chunk_clean (GMemChunk *mem_chunk);
void g_mem_chunk_reset (GMemChunk *mem_chunk);
void g_mem_chunk_print (GMemChunk *mem_chunk);
void g_mem_chunk_info (void);
void g_blow_chunks (void);
GAllocator*g_allocator_new (const gchar *name,
    guint n_preallocs);
void g_allocator_free (GAllocator *allocator);






# 31 "/opt/gnome/include/glib-2.0/glib/glist.h" 2



typedef struct _GList GList;

struct _GList
{
  gpointer data;
  GList *next;
  GList *prev;
};



GList* g_list_alloc (void) __attribute__((warn_unused_result));
void g_list_free (GList *list);
void g_list_free_1 (GList *list);

GList* g_list_append (GList *list,
      gpointer data) __attribute__((warn_unused_result));
GList* g_list_prepend (GList *list,
      gpointer data) __attribute__((warn_unused_result));
GList* g_list_insert (GList *list,
      gpointer data,
      gint position) __attribute__((warn_unused_result));
GList* g_list_insert_sorted (GList *list,
      gpointer data,
      GCompareFunc func) __attribute__((warn_unused_result));
GList* g_list_insert_sorted_with_data (GList *list,
      gpointer data,
      GCompareDataFunc func,
      gpointer user_data) __attribute__((warn_unused_result));
GList* g_list_insert_before (GList *list,
      GList *sibling,
      gpointer data) __attribute__((warn_unused_result));
GList* g_list_concat (GList *list1,
      GList *list2) __attribute__((warn_unused_result));
GList* g_list_remove (GList *list,
      gconstpointer data) __attribute__((warn_unused_result));
GList* g_list_remove_all (GList *list,
      gconstpointer data) __attribute__((warn_unused_result));
GList* g_list_remove_link (GList *list,
      GList *llink) __attribute__((warn_unused_result));
GList* g_list_delete_link (GList *list,
      GList *link_) __attribute__((warn_unused_result));
GList* g_list_reverse (GList *list) __attribute__((warn_unused_result));
GList* g_list_copy (GList *list) __attribute__((warn_unused_result));
GList* g_list_nth (GList *list,
      guint n);
GList* g_list_nth_prev (GList *list,
      guint n);
GList* g_list_find (GList *list,
      gconstpointer data);
GList* g_list_find_custom (GList *list,
      gconstpointer data,
      GCompareFunc func);
gint g_list_position (GList *list,
      GList *llink);
gint g_list_index (GList *list,
      gconstpointer data);
GList* g_list_last (GList *list);
GList* g_list_first (GList *list);
guint g_list_length (GList *list);
void g_list_foreach (GList *list,
      GFunc func,
      gpointer user_data);
GList* g_list_sort (GList *list,
      GCompareFunc compare_func) __attribute__((warn_unused_result));
GList* g_list_sort_with_data (GList *list,
      GCompareDataFunc compare_func,
      gpointer user_data) __attribute__((warn_unused_result));
gpointer g_list_nth_data (GList *list,
      guint n);






void g_list_push_allocator (gpointer allocator);
void g_list_pop_allocator (void);


# 31 "/opt/gnome/include/glib-2.0/glib/gcache.h" 2



typedef struct _GCache GCache;

typedef gpointer (*GCacheNewFunc) (gpointer key);
typedef gpointer (*GCacheDupFunc) (gpointer value);
typedef void (*GCacheDestroyFunc) (gpointer value);



GCache* g_cache_new (GCacheNewFunc value_new_func,
                                GCacheDestroyFunc value_destroy_func,
                                GCacheDupFunc key_dup_func,
                                GCacheDestroyFunc key_destroy_func,
                                GHashFunc hash_key_func,
                                GHashFunc hash_value_func,
                                GEqualFunc key_equal_func);
void g_cache_destroy (GCache *cache);
gpointer g_cache_insert (GCache *cache,
                                gpointer key);
void g_cache_remove (GCache *cache,
                                gconstpointer value);
void g_cache_key_foreach (GCache *cache,
                                GHFunc func,
                                gpointer user_data);

void g_cache_value_foreach (GCache *cache,
                                GHFunc func,
                                gpointer user_data);



# 38 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gcompletion.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gcompletion.h"


typedef struct _GCompletion GCompletion;

typedef gchar* (*GCompletionFunc) (gpointer);




typedef gint (*GCompletionStrncmpFunc) (const gchar *s1,
     const gchar *s2,
     gsize n);

struct _GCompletion
{
  GList* items;
  GCompletionFunc func;

  gchar* prefix;
  GList* cache;
  GCompletionStrncmpFunc strncmp_func;
};

GCompletion* g_completion_new (GCompletionFunc func);
void g_completion_add_items (GCompletion* cmp,
                                         GList* items);
void g_completion_remove_items (GCompletion* cmp,
                                         GList* items);
void g_completion_clear_items (GCompletion* cmp);
GList* g_completion_complete (GCompletion* cmp,
                                         const gchar* prefix,
                                         gchar** new_prefix);
GList* g_completion_complete_utf8 (GCompletion *cmp,
                                         const gchar* prefix,
                                         gchar** new_prefix);
void g_completion_set_compare (GCompletion *cmp,
             GCompletionStrncmpFunc strncmp_func);
void g_completion_free (GCompletion* cmp);


# 39 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gconvert.h" 1
# 30 "/opt/gnome/include/glib-2.0/glib/gconvert.h"
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 31 "/opt/gnome/include/glib-2.0/glib/gconvert.h" 2




typedef enum
{
  G_CONVERT_ERROR_NO_CONVERSION,
  G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
  G_CONVERT_ERROR_FAILED,
  G_CONVERT_ERROR_PARTIAL_INPUT,
  G_CONVERT_ERROR_BAD_URI,
  G_CONVERT_ERROR_NOT_ABSOLUTE_PATH
} GConvertError;


GQuark g_convert_error_quark (void);



typedef struct _GIConv *GIConv;

GIConv g_iconv_open (const gchar *to_codeset,
         const gchar *from_codeset);
size_t g_iconv (GIConv converter,
         gchar **inbuf,
         gsize *inbytes_left,
         gchar **outbuf,
         gsize *outbytes_left);
gint g_iconv_close (GIConv converter);


gchar* g_convert (const gchar *str,
    gssize len,
    const gchar *to_codeset,
    const gchar *from_codeset,
    gsize *bytes_read,
    gsize *bytes_written,
    GError **error) __attribute__((__malloc__));
gchar* g_convert_with_iconv (const gchar *str,
    gssize len,
    GIConv converter,
    gsize *bytes_read,
    gsize *bytes_written,
    GError **error) __attribute__((__malloc__));
gchar* g_convert_with_fallback (const gchar *str,
    gssize len,
    const gchar *to_codeset,
    const gchar *from_codeset,
    gchar *fallback,
    gsize *bytes_read,
    gsize *bytes_written,
    GError **error) __attribute__((__malloc__));




gchar* g_locale_to_utf8 (const gchar *opsysstring,
      gssize len,
      gsize *bytes_read,
      gsize *bytes_written,
      GError **error) __attribute__((__malloc__));
gchar* g_locale_from_utf8 (const gchar *utf8string,
      gssize len,
      gsize *bytes_read,
      gsize *bytes_written,
      GError **error) __attribute__((__malloc__));
# 108 "/opt/gnome/include/glib-2.0/glib/gconvert.h"
gchar* g_filename_to_utf8 (const gchar *opsysstring,
        gssize len,
        gsize *bytes_read,
        gsize *bytes_written,
        GError **error) __attribute__((__malloc__));
gchar* g_filename_from_utf8 (const gchar *utf8string,
        gssize len,
        gsize *bytes_read,
        gsize *bytes_written,
        GError **error) __attribute__((__malloc__));

gchar *g_filename_from_uri (const gchar *uri,
       gchar **hostname,
       GError **error) __attribute__((__malloc__));

gchar *g_filename_to_uri (const gchar *filename,
       const gchar *hostname,
       GError **error) __attribute__((__malloc__));
gchar *g_filename_display_name (const gchar *filename) __attribute__((__malloc__));
gboolean g_get_filename_charsets (const gchar ***charsets);

gchar *g_filename_display_basename (const gchar *filename) __attribute__((__malloc__));

gchar **g_uri_list_extract_uris (const gchar *uri_list) __attribute__((__malloc__));


# 40 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gdataset.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gdataset.h"


typedef struct _GData GData;

typedef void (*GDataForeachFunc) (GQuark key_id,
                                                 gpointer data,
                                                 gpointer user_data);



void g_datalist_init (GData **datalist);
void g_datalist_clear (GData **datalist);
gpointer g_datalist_id_get_data (GData **datalist,
      GQuark key_id);
void g_datalist_id_set_data_full (GData **datalist,
      GQuark key_id,
      gpointer data,
      GDestroyNotify destroy_func);
gpointer g_datalist_id_remove_no_notify (GData **datalist,
      GQuark key_id);
void g_datalist_foreach (GData **datalist,
      GDataForeachFunc func,
      gpointer user_data);
# 65 "/opt/gnome/include/glib-2.0/glib/gdataset.h"
void g_datalist_set_flags (GData **datalist,
      guint flags);
void g_datalist_unset_flags (GData **datalist,
      guint flags);
guint g_datalist_get_flags (GData **datalist);
# 89 "/opt/gnome/include/glib-2.0/glib/gdataset.h"
void g_dataset_destroy (gconstpointer dataset_location);
gpointer g_dataset_id_get_data (gconstpointer dataset_location,
                                         GQuark key_id);
void g_dataset_id_set_data_full (gconstpointer dataset_location,
                                         GQuark key_id,
                                         gpointer data,
                                         GDestroyNotify destroy_func);
gpointer g_dataset_id_remove_no_notify (gconstpointer dataset_location,
                                         GQuark key_id);
void g_dataset_foreach (gconstpointer dataset_location,
                                         GDataForeachFunc func,
                                         gpointer user_data);
# 116 "/opt/gnome/include/glib-2.0/glib/gdataset.h"

# 41 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gdate.h" 1
# 35 "/opt/gnome/include/glib-2.0/glib/gdate.h"

# 46 "/opt/gnome/include/glib-2.0/glib/gdate.h"
typedef gint32 GTime;
typedef guint16 GDateYear;
typedef guint8 GDateDay;
typedef struct _GDate GDate;

struct tm;


typedef enum
{
  G_DATE_DAY = 0,
  G_DATE_MONTH = 1,
  G_DATE_YEAR = 2
} GDateDMY;


typedef enum
{
  G_DATE_BAD_WEEKDAY = 0,
  G_DATE_MONDAY = 1,
  G_DATE_TUESDAY = 2,
  G_DATE_WEDNESDAY = 3,
  G_DATE_THURSDAY = 4,
  G_DATE_FRIDAY = 5,
  G_DATE_SATURDAY = 6,
  G_DATE_SUNDAY = 7
} GDateWeekday;
typedef enum
{
  G_DATE_BAD_MONTH = 0,
  G_DATE_JANUARY = 1,
  G_DATE_FEBRUARY = 2,
  G_DATE_MARCH = 3,
  G_DATE_APRIL = 4,
  G_DATE_MAY = 5,
  G_DATE_JUNE = 6,
  G_DATE_JULY = 7,
  G_DATE_AUGUST = 8,
  G_DATE_SEPTEMBER = 9,
  G_DATE_OCTOBER = 10,
  G_DATE_NOVEMBER = 11,
  G_DATE_DECEMBER = 12
} GDateMonth;
# 99 "/opt/gnome/include/glib-2.0/glib/gdate.h"
struct _GDate
{
  guint julian_days : 32;





  guint julian : 1;
  guint dmy : 1;


  guint day : 6;
  guint month : 4;
  guint year : 16;
};





GDate* g_date_new (void);
GDate* g_date_new_dmy (GDateDay day,
                                           GDateMonth month,
                                           GDateYear year);
GDate* g_date_new_julian (guint32 julian_day);
void g_date_free (GDate *date);






gboolean g_date_valid (const GDate *date);
gboolean g_date_valid_day (GDateDay day) __attribute__((__const__));
gboolean g_date_valid_month (GDateMonth month) __attribute__((__const__));
gboolean g_date_valid_year (GDateYear year) __attribute__((__const__));
gboolean g_date_valid_weekday (GDateWeekday weekday) __attribute__((__const__));
gboolean g_date_valid_julian (guint32 julian_date) __attribute__((__const__));
gboolean g_date_valid_dmy (GDateDay day,
                                           GDateMonth month,
                                           GDateYear year) __attribute__((__const__));

GDateWeekday g_date_get_weekday (const GDate *date);
GDateMonth g_date_get_month (const GDate *date);
GDateYear g_date_get_year (const GDate *date);
GDateDay g_date_get_day (const GDate *date);
guint32 g_date_get_julian (const GDate *date);
guint g_date_get_day_of_year (const GDate *date);






guint g_date_get_monday_week_of_year (const GDate *date);
guint g_date_get_sunday_week_of_year (const GDate *date);
guint g_date_get_iso8601_week_of_year (const GDate *date);





void g_date_clear (GDate *date,
                                           guint n_dates);





void g_date_set_parse (GDate *date,
                                           const gchar *str);
void g_date_set_time_t (GDate *date,
        time_t timet);
void g_date_set_time_val (GDate *date,
        GTimeVal *timeval);

void g_date_set_time (GDate *date,
                                           GTime time_);

void g_date_set_month (GDate *date,
                                           GDateMonth month);
void g_date_set_day (GDate *date,
                                           GDateDay day);
void g_date_set_year (GDate *date,
                                           GDateYear year);
void g_date_set_dmy (GDate *date,
                                           GDateDay day,
                                           GDateMonth month,
                                           GDateYear y);
void g_date_set_julian (GDate *date,
                                           guint32 julian_date);
gboolean g_date_is_first_of_month (const GDate *date);
gboolean g_date_is_last_of_month (const GDate *date);


void g_date_add_days (GDate *date,
                                           guint n_days);
void g_date_subtract_days (GDate *date,
                                           guint n_days);


void g_date_add_months (GDate *date,
                                           guint n_months);
void g_date_subtract_months (GDate *date,
                                           guint n_months);


void g_date_add_years (GDate *date,
                                           guint n_years);
void g_date_subtract_years (GDate *date,
                                           guint n_years);
gboolean g_date_is_leap_year (GDateYear year) __attribute__((__const__));
guint8 g_date_get_days_in_month (GDateMonth month,
                                           GDateYear year) __attribute__((__const__));
guint8 g_date_get_monday_weeks_in_year (GDateYear year) __attribute__((__const__));
guint8 g_date_get_sunday_weeks_in_year (GDateYear year) __attribute__((__const__));



gint g_date_days_between (const GDate *date1,
        const GDate *date2);


gint g_date_compare (const GDate *lhs,
                                           const GDate *rhs);
void g_date_to_struct_tm (const GDate *date,
                                           struct tm *tm);

void g_date_clamp (GDate *date,
        const GDate *min_date,
        const GDate *max_date);


void g_date_order (GDate *date1, GDate *date2);




gsize g_date_strftime (gchar *s,
                                           gsize slen,
                                           const gchar *format,
                                           const GDate *date);
# 259 "/opt/gnome/include/glib-2.0/glib/gdate.h"

# 42 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gdir.h" 1
# 28 "/opt/gnome/include/glib-2.0/glib/gdir.h"


typedef struct _GDir GDir;







GDir * g_dir_open (const gchar *path,
            guint flags,
            GError **error);
const gchar *g_dir_read_name (GDir *dir);
void g_dir_rewind (GDir *dir);
void g_dir_close (GDir *dir);


# 43 "/opt/gnome/include/glib-2.0/glib.h" 2

# 1 "/opt/gnome/include/glib-2.0/glib/gfileutils.h" 1
# 26 "/opt/gnome/include/glib-2.0/glib/gfileutils.h"




typedef enum
{
  G_FILE_ERROR_EXIST,
  G_FILE_ERROR_ISDIR,
  G_FILE_ERROR_ACCES,
  G_FILE_ERROR_NAMETOOLONG,
  G_FILE_ERROR_NOENT,
  G_FILE_ERROR_NOTDIR,
  G_FILE_ERROR_NXIO,
  G_FILE_ERROR_NODEV,
  G_FILE_ERROR_ROFS,
  G_FILE_ERROR_TXTBSY,
  G_FILE_ERROR_FAULT,
  G_FILE_ERROR_LOOP,
  G_FILE_ERROR_NOSPC,
  G_FILE_ERROR_NOMEM,
  G_FILE_ERROR_MFILE,
  G_FILE_ERROR_NFILE,
  G_FILE_ERROR_BADF,
  G_FILE_ERROR_INVAL,
  G_FILE_ERROR_PIPE,
  G_FILE_ERROR_AGAIN,
  G_FILE_ERROR_INTR,
  G_FILE_ERROR_IO,
  G_FILE_ERROR_PERM,
  G_FILE_ERROR_NOSYS,
  G_FILE_ERROR_FAILED
} GFileError;





typedef enum
{
  G_FILE_TEST_IS_REGULAR = 1 << 0,
  G_FILE_TEST_IS_SYMLINK = 1 << 1,
  G_FILE_TEST_IS_DIR = 1 << 2,
  G_FILE_TEST_IS_EXECUTABLE = 1 << 3,
  G_FILE_TEST_EXISTS = 1 << 4
} GFileTest;

GQuark g_file_error_quark (void);

GFileError g_file_error_from_errno (gint err_no);
# 83 "/opt/gnome/include/glib-2.0/glib/gfileutils.h"
gboolean g_file_test (const gchar *filename,
                              GFileTest test);
gboolean g_file_get_contents (const gchar *filename,
                              gchar **contents,
                              gsize *length,
                              GError **error);
gboolean g_file_set_contents (const gchar *filename,
         const gchar *contents,
         gssize length,
         GError **error);
gchar *g_file_read_link (const gchar *filename,
         GError **error);


gint g_mkstemp (gchar *tmpl);


gint g_file_open_tmp (const gchar *tmpl,
         gchar **name_used,
         GError **error);

gchar *g_build_path (const gchar *separator,
    const gchar *first_element,
    ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
gchar *g_build_pathv (const gchar *separator,
    gchar **args) __attribute__((__malloc__));

gchar *g_build_filename (const gchar *first_element,
    ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
gchar *g_build_filenamev (gchar **args) __attribute__((__malloc__));

int g_mkdir_with_parents (const gchar *pathname,
        int mode);


# 45 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/ghash.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/ghash.h"


typedef struct _GHashTable GHashTable;

typedef gboolean (*GHRFunc) (gpointer key,
                               gpointer value,
                               gpointer user_data);



GHashTable* g_hash_table_new (GHashFunc hash_func,
         GEqualFunc key_equal_func);
GHashTable* g_hash_table_new_full (GHashFunc hash_func,
         GEqualFunc key_equal_func,
         GDestroyNotify key_destroy_func,
         GDestroyNotify value_destroy_func);
void g_hash_table_destroy (GHashTable *hash_table);
void g_hash_table_insert (GHashTable *hash_table,
         gpointer key,
         gpointer value);
void g_hash_table_replace (GHashTable *hash_table,
         gpointer key,
         gpointer value);
gboolean g_hash_table_remove (GHashTable *hash_table,
         gconstpointer key);
void g_hash_table_remove_all (GHashTable *hash_table);
gboolean g_hash_table_steal (GHashTable *hash_table,
         gconstpointer key);
void g_hash_table_steal_all (GHashTable *hash_table);
gpointer g_hash_table_lookup (GHashTable *hash_table,
         gconstpointer key);
gboolean g_hash_table_lookup_extended (GHashTable *hash_table,
         gconstpointer lookup_key,
         gpointer *orig_key,
         gpointer *value);
void g_hash_table_foreach (GHashTable *hash_table,
         GHFunc func,
         gpointer user_data);
gpointer g_hash_table_find (GHashTable *hash_table,
         GHRFunc predicate,
         gpointer user_data);
guint g_hash_table_foreach_remove (GHashTable *hash_table,
         GHRFunc func,
         gpointer user_data);
guint g_hash_table_foreach_steal (GHashTable *hash_table,
         GHRFunc func,
         gpointer user_data);
guint g_hash_table_size (GHashTable *hash_table);


GHashTable* g_hash_table_ref (GHashTable *hash_table);
void g_hash_table_unref (GHashTable *hash_table);
# 96 "/opt/gnome/include/glib-2.0/glib/ghash.h"
gboolean g_str_equal (gconstpointer v1,
                      gconstpointer v2);
guint g_str_hash (gconstpointer v);

gboolean g_int_equal (gconstpointer v1,
                      gconstpointer v2);
guint g_int_hash (gconstpointer v);







guint g_direct_hash (gconstpointer v) __attribute__((__const__));
gboolean g_direct_equal (gconstpointer v1,
                         gconstpointer v2) __attribute__((__const__));


# 46 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/ghook.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/ghook.h"




typedef struct _GHook GHook;
typedef struct _GHookList GHookList;

typedef gint (*GHookCompareFunc) (GHook *new_hook,
       GHook *sibling);
typedef gboolean (*GHookFindFunc) (GHook *hook,
       gpointer data);
typedef void (*GHookMarshaller) (GHook *hook,
       gpointer marshal_data);
typedef gboolean (*GHookCheckMarshaller) (GHook *hook,
       gpointer marshal_data);
typedef void (*GHookFunc) (gpointer data);
typedef gboolean (*GHookCheckFunc) (gpointer data);
typedef void (*GHookFinalizeFunc) (GHookList *hook_list,
       GHook *hook);
typedef enum
{
  G_HOOK_FLAG_ACTIVE = 1 << 0,
  G_HOOK_FLAG_IN_CALL = 1 << 1,
  G_HOOK_FLAG_MASK = 0x0f
} GHookFlagMask;




struct _GHookList
{
  gulong seq_id;
  guint hook_size : 16;
  guint is_setup : 1;
  GHook *hooks;
  gpointer dummy3;
  GHookFinalizeFunc finalize_hook;
  gpointer dummy[2];
};
struct _GHook
{
  gpointer data;
  GHook *next;
  GHook *prev;
  guint ref_count;
  gulong hook_id;
  guint flags;
  gpointer func;
  GDestroyNotify destroy;
};
# 102 "/opt/gnome/include/glib-2.0/glib/ghook.h"
void g_hook_list_init (GHookList *hook_list,
      guint hook_size);
void g_hook_list_clear (GHookList *hook_list);
GHook* g_hook_alloc (GHookList *hook_list);
void g_hook_free (GHookList *hook_list,
      GHook *hook);
GHook * g_hook_ref (GHookList *hook_list,
      GHook *hook);
void g_hook_unref (GHookList *hook_list,
      GHook *hook);
gboolean g_hook_destroy (GHookList *hook_list,
      gulong hook_id);
void g_hook_destroy_link (GHookList *hook_list,
      GHook *hook);
void g_hook_prepend (GHookList *hook_list,
      GHook *hook);
void g_hook_insert_before (GHookList *hook_list,
      GHook *sibling,
      GHook *hook);
void g_hook_insert_sorted (GHookList *hook_list,
      GHook *hook,
      GHookCompareFunc func);
GHook* g_hook_get (GHookList *hook_list,
      gulong hook_id);
GHook* g_hook_find (GHookList *hook_list,
      gboolean need_valids,
      GHookFindFunc func,
      gpointer data);
GHook* g_hook_find_data (GHookList *hook_list,
      gboolean need_valids,
      gpointer data);
GHook* g_hook_find_func (GHookList *hook_list,
      gboolean need_valids,
      gpointer func);
GHook* g_hook_find_func_data (GHookList *hook_list,
      gboolean need_valids,
      gpointer func,
      gpointer data);

GHook* g_hook_first_valid (GHookList *hook_list,
      gboolean may_be_in_call);



GHook* g_hook_next_valid (GHookList *hook_list,
      GHook *hook,
      gboolean may_be_in_call);

gint g_hook_compare_ids (GHook *new_hook,
      GHook *sibling);





void g_hook_list_invoke (GHookList *hook_list,
      gboolean may_recurse);



void g_hook_list_invoke_check (GHookList *hook_list,
      gboolean may_recurse);


void g_hook_list_marshal (GHookList *hook_list,
      gboolean may_recurse,
      GHookMarshaller marshaller,
      gpointer marshal_data);
void g_hook_list_marshal_check (GHookList *hook_list,
      gboolean may_recurse,
      GHookCheckMarshaller marshaller,
      gpointer marshal_data);


# 47 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/giochannel.h" 1
# 31 "/opt/gnome/include/glib-2.0/glib/giochannel.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gmain.h" 1
# 23 "/opt/gnome/include/glib-2.0/glib/gmain.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gslist.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gslist.h"


typedef struct _GSList GSList;

struct _GSList
{
  gpointer data;
  GSList *next;
};



GSList* g_slist_alloc (void) __attribute__((warn_unused_result));
void g_slist_free (GSList *list);
void g_slist_free_1 (GSList *list);

GSList* g_slist_append (GSList *list,
       gpointer data) __attribute__((warn_unused_result));
GSList* g_slist_prepend (GSList *list,
       gpointer data) __attribute__((warn_unused_result));
GSList* g_slist_insert (GSList *list,
       gpointer data,
       gint position) __attribute__((warn_unused_result));
GSList* g_slist_insert_sorted (GSList *list,
       gpointer data,
       GCompareFunc func) __attribute__((warn_unused_result));
GSList* g_slist_insert_sorted_with_data (GSList *list,
       gpointer data,
       GCompareDataFunc func,
       gpointer user_data) __attribute__((warn_unused_result));
GSList* g_slist_insert_before (GSList *slist,
       GSList *sibling,
       gpointer data) __attribute__((warn_unused_result));
GSList* g_slist_concat (GSList *list1,
       GSList *list2) __attribute__((warn_unused_result));
GSList* g_slist_remove (GSList *list,
       gconstpointer data) __attribute__((warn_unused_result));
GSList* g_slist_remove_all (GSList *list,
       gconstpointer data) __attribute__((warn_unused_result));
GSList* g_slist_remove_link (GSList *list,
       GSList *link_) __attribute__((warn_unused_result));
GSList* g_slist_delete_link (GSList *list,
       GSList *link_) __attribute__((warn_unused_result));
GSList* g_slist_reverse (GSList *list) __attribute__((warn_unused_result));
GSList* g_slist_copy (GSList *list) __attribute__((warn_unused_result));
GSList* g_slist_nth (GSList *list,
       guint n);
GSList* g_slist_find (GSList *list,
       gconstpointer data);
GSList* g_slist_find_custom (GSList *list,
       gconstpointer data,
       GCompareFunc func);
gint g_slist_position (GSList *list,
       GSList *llink);
gint g_slist_index (GSList *list,
       gconstpointer data);
GSList* g_slist_last (GSList *list);
guint g_slist_length (GSList *list);
void g_slist_foreach (GSList *list,
       GFunc func,
       gpointer user_data);
GSList* g_slist_sort (GSList *list,
       GCompareFunc compare_func) __attribute__((warn_unused_result));
GSList* g_slist_sort_with_data (GSList *list,
       GCompareDataFunc compare_func,
       gpointer user_data) __attribute__((warn_unused_result));
gpointer g_slist_nth_data (GSList *list,
       guint n);




void g_slist_push_allocator (gpointer dummy);
void g_slist_pop_allocator (void);


# 24 "/opt/gnome/include/glib-2.0/glib/gmain.h" 2




typedef struct _GMainContext GMainContext;
typedef struct _GMainLoop GMainLoop;
typedef struct _GSource GSource;
typedef struct _GSourceCallbackFuncs GSourceCallbackFuncs;
typedef struct _GSourceFuncs GSourceFuncs;

typedef gboolean (*GSourceFunc) (gpointer data);
typedef void (*GChildWatchFunc) (GPid pid,
           gint status,
           gpointer data);
struct _GSource
{

  gpointer callback_data;
  GSourceCallbackFuncs *callback_funcs;

  GSourceFuncs *source_funcs;
  guint ref_count;

  GMainContext *context;

  gint priority;
  guint flags;
  guint source_id;

  GSList *poll_fds;

  GSource *prev;
  GSource *next;

  gpointer reserved1;
  gpointer reserved2;
};

struct _GSourceCallbackFuncs
{
  void (*ref) (gpointer cb_data);
  void (*unref) (gpointer cb_data);
  void (*get) (gpointer cb_data,
   GSource *source,
   GSourceFunc *func,
   gpointer *data);
};

typedef void (*GSourceDummyMarshal) (void);

struct _GSourceFuncs
{
  gboolean (*prepare) (GSource *source,
   gint *timeout_);
  gboolean (*check) (GSource *source);
  gboolean (*dispatch) (GSource *source,
   GSourceFunc callback,
   gpointer user_data);
  void (*finalize) (GSource *source);


  GSourceFunc closure_callback;
  GSourceDummyMarshal closure_marshal;
};
# 116 "/opt/gnome/include/glib-2.0/glib/gmain.h"
typedef struct _GPollFD GPollFD;
typedef gint (*GPollFunc) (GPollFD *ufds,
     guint nfsd,
     gint timeout_);

struct _GPollFD
{
  gint fd;
  gushort events;
  gushort revents;
};
# 138 "/opt/gnome/include/glib-2.0/glib/gmain.h"
GMainContext *g_main_context_new (void);
GMainContext *g_main_context_ref (GMainContext *context);
void g_main_context_unref (GMainContext *context);
GMainContext *g_main_context_default (void);

gboolean g_main_context_iteration (GMainContext *context,
     gboolean may_block);
gboolean g_main_context_pending (GMainContext *context);



GSource *g_main_context_find_source_by_id (GMainContext *context,
            guint source_id);
GSource *g_main_context_find_source_by_user_data (GMainContext *context,
            gpointer user_data);
GSource *g_main_context_find_source_by_funcs_user_data (GMainContext *context,
             GSourceFuncs *funcs,
            gpointer user_data);



void g_main_context_wakeup (GMainContext *context);
gboolean g_main_context_acquire (GMainContext *context);
void g_main_context_release (GMainContext *context);
gboolean g_main_context_is_owner (GMainContext *context);
gboolean g_main_context_wait (GMainContext *context,
     GCond *cond,
     GMutex *mutex);

gboolean g_main_context_prepare (GMainContext *context,
      gint *priority);
gint g_main_context_query (GMainContext *context,
      gint max_priority,
      gint *timeout_,
      GPollFD *fds,
      gint n_fds);
gint g_main_context_check (GMainContext *context,
      gint max_priority,
      GPollFD *fds,
      gint n_fds);
void g_main_context_dispatch (GMainContext *context);

void g_main_context_set_poll_func (GMainContext *context,
           GPollFunc func);
GPollFunc g_main_context_get_poll_func (GMainContext *context);



void g_main_context_add_poll (GMainContext *context,
         GPollFD *fd,
         gint priority);
void g_main_context_remove_poll (GMainContext *context,
         GPollFD *fd);

gint g_main_depth (void);
GSource *g_main_current_source (void);




GMainLoop *g_main_loop_new (GMainContext *context,
           gboolean is_running);
void g_main_loop_run (GMainLoop *loop);
void g_main_loop_quit (GMainLoop *loop);
GMainLoop *g_main_loop_ref (GMainLoop *loop);
void g_main_loop_unref (GMainLoop *loop);
gboolean g_main_loop_is_running (GMainLoop *loop);
GMainContext *g_main_loop_get_context (GMainLoop *loop);



GSource *g_source_new (GSourceFuncs *source_funcs,
       guint struct_size);
GSource *g_source_ref (GSource *source);
void g_source_unref (GSource *source);

guint g_source_attach (GSource *source,
       GMainContext *context);
void g_source_destroy (GSource *source);

void g_source_set_priority (GSource *source,
       gint priority);
gint g_source_get_priority (GSource *source);
void g_source_set_can_recurse (GSource *source,
       gboolean can_recurse);
gboolean g_source_get_can_recurse (GSource *source);
guint g_source_get_id (GSource *source);

GMainContext *g_source_get_context (GSource *source);

void g_source_set_callback (GSource *source,
       GSourceFunc func,
       gpointer data,
       GDestroyNotify notify);

void g_source_set_funcs (GSource *source,
                                   GSourceFuncs *funcs);
gboolean g_source_is_destroyed (GSource *source);


void g_source_set_callback_indirect (GSource *source,
         gpointer callback_data,
         GSourceCallbackFuncs *callback_funcs);

void g_source_add_poll (GSource *source,
        GPollFD *fd);
void g_source_remove_poll (GSource *source,
        GPollFD *fd);

void g_source_get_current_time (GSource *source,
        GTimeVal *timeval);







GSource *g_idle_source_new (void);
GSource *g_child_watch_source_new (GPid pid);
GSource *g_timeout_source_new (guint interval);



void g_get_current_time (GTimeVal *result);
# 287 "/opt/gnome/include/glib-2.0/glib/gmain.h"
gboolean g_source_remove (guint tag);
gboolean g_source_remove_by_user_data (gpointer user_data);
gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs,
           gpointer user_data);


guint g_timeout_add_full (gint priority,
     guint interval,
     GSourceFunc function,
     gpointer data,
     GDestroyNotify notify);
guint g_timeout_add (guint interval,
     GSourceFunc function,
     gpointer data);
guint g_child_watch_add_full (gint priority,
     GPid pid,
     GChildWatchFunc function,
     gpointer data,
     GDestroyNotify notify);
guint g_child_watch_add (GPid pid,
     GChildWatchFunc function,
     gpointer data);
guint g_idle_add (GSourceFunc function,
     gpointer data);
guint g_idle_add_full (gint priority,
     GSourceFunc function,
     gpointer data,
     GDestroyNotify notify);
gboolean g_idle_remove_by_data (gpointer data);


extern GSourceFuncs g_timeout_funcs;
extern GSourceFuncs g_child_watch_funcs;
extern GSourceFuncs g_idle_funcs;


# 32 "/opt/gnome/include/glib-2.0/glib/giochannel.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gstring.h" 1
# 31 "/opt/gnome/include/glib-2.0/glib/gstring.h"
# 1 "/opt/gnome/include/glib-2.0/glib/gunicode.h" 1
# 28 "/opt/gnome/include/glib-2.0/glib/gunicode.h"


typedef guint32 gunichar;
typedef guint16 gunichar2;




typedef enum
{
  G_UNICODE_CONTROL,
  G_UNICODE_FORMAT,
  G_UNICODE_UNASSIGNED,
  G_UNICODE_PRIVATE_USE,
  G_UNICODE_SURROGATE,
  G_UNICODE_LOWERCASE_LETTER,
  G_UNICODE_MODIFIER_LETTER,
  G_UNICODE_OTHER_LETTER,
  G_UNICODE_TITLECASE_LETTER,
  G_UNICODE_UPPERCASE_LETTER,
  G_UNICODE_COMBINING_MARK,
  G_UNICODE_ENCLOSING_MARK,
  G_UNICODE_NON_SPACING_MARK,
  G_UNICODE_DECIMAL_NUMBER,
  G_UNICODE_LETTER_NUMBER,
  G_UNICODE_OTHER_NUMBER,
  G_UNICODE_CONNECT_PUNCTUATION,
  G_UNICODE_DASH_PUNCTUATION,
  G_UNICODE_CLOSE_PUNCTUATION,
  G_UNICODE_FINAL_PUNCTUATION,
  G_UNICODE_INITIAL_PUNCTUATION,
  G_UNICODE_OTHER_PUNCTUATION,
  G_UNICODE_OPEN_PUNCTUATION,
  G_UNICODE_CURRENCY_SYMBOL,
  G_UNICODE_MODIFIER_SYMBOL,
  G_UNICODE_MATH_SYMBOL,
  G_UNICODE_OTHER_SYMBOL,
  G_UNICODE_LINE_SEPARATOR,
  G_UNICODE_PARAGRAPH_SEPARATOR,
  G_UNICODE_SPACE_SEPARATOR
} GUnicodeType;






typedef enum
{
  G_UNICODE_BREAK_MANDATORY,
  G_UNICODE_BREAK_CARRIAGE_RETURN,
  G_UNICODE_BREAK_LINE_FEED,
  G_UNICODE_BREAK_COMBINING_MARK,
  G_UNICODE_BREAK_SURROGATE,
  G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
  G_UNICODE_BREAK_INSEPARABLE,
  G_UNICODE_BREAK_NON_BREAKING_GLUE,
  G_UNICODE_BREAK_CONTINGENT,
  G_UNICODE_BREAK_SPACE,
  G_UNICODE_BREAK_AFTER,
  G_UNICODE_BREAK_BEFORE,
  G_UNICODE_BREAK_BEFORE_AND_AFTER,
  G_UNICODE_BREAK_HYPHEN,
  G_UNICODE_BREAK_NON_STARTER,
  G_UNICODE_BREAK_OPEN_PUNCTUATION,
  G_UNICODE_BREAK_CLOSE_PUNCTUATION,
  G_UNICODE_BREAK_QUOTATION,
  G_UNICODE_BREAK_EXCLAMATION,
  G_UNICODE_BREAK_IDEOGRAPHIC,
  G_UNICODE_BREAK_NUMERIC,
  G_UNICODE_BREAK_INFIX_SEPARATOR,
  G_UNICODE_BREAK_SYMBOL,
  G_UNICODE_BREAK_ALPHABETIC,
  G_UNICODE_BREAK_PREFIX,
  G_UNICODE_BREAK_POSTFIX,
  G_UNICODE_BREAK_COMPLEX_CONTEXT,
  G_UNICODE_BREAK_AMBIGUOUS,
  G_UNICODE_BREAK_UNKNOWN,
  G_UNICODE_BREAK_NEXT_LINE,
  G_UNICODE_BREAK_WORD_JOINER,
  G_UNICODE_BREAK_HANGUL_L_JAMO,
  G_UNICODE_BREAK_HANGUL_V_JAMO,
  G_UNICODE_BREAK_HANGUL_T_JAMO,
  G_UNICODE_BREAK_HANGUL_LV_SYLLABLE,
  G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE
} GUnicodeBreakType;







gboolean g_get_charset (const char **charset);



gboolean g_unichar_isalnum (gunichar c) __attribute__((__const__));
gboolean g_unichar_isalpha (gunichar c) __attribute__((__const__));
gboolean g_unichar_iscntrl (gunichar c) __attribute__((__const__));
gboolean g_unichar_isdigit (gunichar c) __attribute__((__const__));
gboolean g_unichar_isgraph (gunichar c) __attribute__((__const__));
gboolean g_unichar_islower (gunichar c) __attribute__((__const__));
gboolean g_unichar_isprint (gunichar c) __attribute__((__const__));
gboolean g_unichar_ispunct (gunichar c) __attribute__((__const__));
gboolean g_unichar_isspace (gunichar c) __attribute__((__const__));
gboolean g_unichar_isupper (gunichar c) __attribute__((__const__));
gboolean g_unichar_isxdigit (gunichar c) __attribute__((__const__));
gboolean g_unichar_istitle (gunichar c) __attribute__((__const__));
gboolean g_unichar_isdefined (gunichar c) __attribute__((__const__));
gboolean g_unichar_iswide (gunichar c) __attribute__((__const__));
gboolean g_unichar_iswide_cjk(gunichar c) __attribute__((__const__));



gunichar g_unichar_toupper (gunichar c) __attribute__((__const__));
gunichar g_unichar_tolower (gunichar c) __attribute__((__const__));
gunichar g_unichar_totitle (gunichar c) __attribute__((__const__));



gint g_unichar_digit_value (gunichar c) __attribute__((__const__));

gint g_unichar_xdigit_value (gunichar c) __attribute__((__const__));


GUnicodeType g_unichar_type (gunichar c) __attribute__((__const__));


GUnicodeBreakType g_unichar_break_type (gunichar c) __attribute__((__const__));





void g_unicode_canonical_ordering (gunichar *string,
       gsize len);




gunichar *g_unicode_canonical_decomposition (gunichar ch,
          gsize *result_len) __attribute__((__malloc__));



extern const gchar * const g_utf8_skip;



gunichar g_utf8_get_char (const gchar *p);
gunichar g_utf8_get_char_validated (const gchar *p,
        gssize max_len);

gchar* g_utf8_offset_to_pointer (const gchar *str,
                                   glong offset);
glong g_utf8_pointer_to_offset (const gchar *str,
       const gchar *pos);
gchar* g_utf8_prev_char (const gchar *p);
gchar* g_utf8_find_next_char (const gchar *p,
       const gchar *end);
gchar* g_utf8_find_prev_char (const gchar *str,
       const gchar *p);

glong g_utf8_strlen (const gchar *p,
       gssize max);


gchar* g_utf8_strncpy (gchar *dest,
         const gchar *src,
         gsize n);



gchar* g_utf8_strchr (const gchar *p,
         gssize len,
         gunichar c);
gchar* g_utf8_strrchr (const gchar *p,
         gssize len,
         gunichar c);
gchar* g_utf8_strreverse (const gchar *str,
     gssize len);

gunichar2 *g_utf8_to_utf16 (const gchar *str,
    glong len,
    glong *items_read,
    glong *items_written,
    GError **error) __attribute__((__malloc__));
gunichar * g_utf8_to_ucs4 (const gchar *str,
    glong len,
    glong *items_read,
    glong *items_written,
    GError **error) __attribute__((__malloc__));
gunichar * g_utf8_to_ucs4_fast (const gchar *str,
    glong len,
    glong *items_written) __attribute__((__malloc__));
gunichar * g_utf16_to_ucs4 (const gunichar2 *str,
    glong len,
    glong *items_read,
    glong *items_written,
    GError **error) __attribute__((__malloc__));
gchar* g_utf16_to_utf8 (const gunichar2 *str,
    glong len,
    glong *items_read,
    glong *items_written,
    GError **error) __attribute__((__malloc__));
gunichar2 *g_ucs4_to_utf16 (const gunichar *str,
    glong len,
    glong *items_read,
    glong *items_written,
    GError **error) __attribute__((__malloc__));
gchar* g_ucs4_to_utf8 (const gunichar *str,
    glong len,
    glong *items_read,
    glong *items_written,
    GError **error) __attribute__((__malloc__));





gint g_unichar_to_utf8 (gunichar c,
        gchar *outbuf);





gboolean g_utf8_validate (const gchar *str,
                          gssize max_len,
                          const gchar **end);


gboolean g_unichar_validate (gunichar ch);

gchar *g_utf8_strup (const gchar *str,
         gssize len) __attribute__((__malloc__));
gchar *g_utf8_strdown (const gchar *str,
         gssize len) __attribute__((__malloc__));
gchar *g_utf8_casefold (const gchar *str,
   gssize len) __attribute__((__malloc__));

typedef enum {
  G_NORMALIZE_DEFAULT,
  G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT,
  G_NORMALIZE_DEFAULT_COMPOSE,
  G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE,
  G_NORMALIZE_ALL,
  G_NORMALIZE_NFKD = G_NORMALIZE_ALL,
  G_NORMALIZE_ALL_COMPOSE,
  G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE
} GNormalizeMode;

gchar *g_utf8_normalize (const gchar *str,
    gssize len,
    GNormalizeMode mode) __attribute__((__malloc__));

gint g_utf8_collate (const gchar *str1,
      const gchar *str2);
gchar *g_utf8_collate_key (const gchar *str,
      gssize len) __attribute__((__malloc__));
gchar *g_utf8_collate_key_for_filename (const gchar *str,
                   gssize len) __attribute__((__malloc__));

gboolean g_unichar_get_mirror_char (gunichar ch,
                                    gunichar *mirrored_ch);


# 32 "/opt/gnome/include/glib-2.0/glib/gstring.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gutils.h" 1
# 31 "/opt/gnome/include/glib-2.0/glib/gutils.h"
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stdarg.h" 1 3 4
# 43 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 105 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 32 "/opt/gnome/include/glib-2.0/glib/gutils.h" 2


# 116 "/opt/gnome/include/glib-2.0/glib/gutils.h"
const gchar* g_get_user_name (void);
const gchar* g_get_real_name (void);
const gchar* g_get_home_dir (void);
const gchar* g_get_tmp_dir (void);
const gchar* g_get_host_name (void);
gchar* g_get_prgname (void);
void g_set_prgname (const gchar *prgname);
const gchar* g_get_application_name (void);
void g_set_application_name (const gchar *application_name);

const gchar* g_get_user_data_dir (void);
const gchar* g_get_user_config_dir (void);
const gchar* g_get_user_cache_dir (void);
const gchar* const * g_get_system_data_dirs (void);
# 144 "/opt/gnome/include/glib-2.0/glib/gutils.h"
const gchar* const * g_get_system_config_dirs (void);

const gchar* const * g_get_language_names (void);

typedef struct _GDebugKey GDebugKey;
struct _GDebugKey
{
  gchar *key;
  guint value;
};



guint g_parse_debug_string (const gchar *string,
         const GDebugKey *keys,
         guint nkeys);

gint g_snprintf (gchar *string,
         gulong n,
         gchar const *format,
         ...) __attribute__((__format__ (__printf__, 3, 4)));
gint g_vsnprintf (gchar *string,
         gulong n,
         gchar const *format,
         va_list args);


gboolean g_path_is_absolute (const gchar *file_name);


const gchar* g_path_skip_root (const gchar *file_name);







const gchar* g_basename (const gchar *file_name);
# 192 "/opt/gnome/include/glib-2.0/glib/gutils.h"
gchar* g_get_current_dir (void);
gchar* g_path_get_basename (const gchar *file_name) __attribute__((__malloc__));
gchar* g_path_get_dirname (const gchar *file_name) __attribute__((__malloc__));


void g_nullify_pointer (gpointer *nullify_location);
# 208 "/opt/gnome/include/glib-2.0/glib/gutils.h"
const gchar* g_getenv (const gchar *variable);
gboolean g_setenv (const gchar *variable,
         const gchar *value,
         gboolean overwrite);
void g_unsetenv (const gchar *variable);
gchar** g_listenv (void);
const gchar* _g_getenv_nomalloc (const gchar *variable,
         gchar buffer[1024]);





typedef void (*GVoidFunc) (void);
# 232 "/opt/gnome/include/glib-2.0/glib/gutils.h"
void g_atexit (GVoidFunc func);
# 246 "/opt/gnome/include/glib-2.0/glib/gutils.h"
gchar* g_find_program_in_path (const gchar *program);



extern inline gint g_bit_nth_lsf (gulong mask,
           gint nth_bit);
extern inline gint g_bit_nth_msf (gulong mask,
           gint nth_bit);
extern inline guint g_bit_storage (gulong number);




typedef struct _GTrashStack GTrashStack;
struct _GTrashStack
{
  GTrashStack *next;
};

extern inline void g_trash_stack_push (GTrashStack **stack_p,
       gpointer data_p);
extern inline gpointer g_trash_stack_pop (GTrashStack **stack_p);
extern inline gpointer g_trash_stack_peek (GTrashStack **stack_p);
extern inline guint g_trash_stack_height (GTrashStack **stack_p);




extern inline gint
g_bit_nth_lsf (gulong mask,
        gint nth_bit)
{
  do
    {
      nth_bit++;
      if (mask & (1UL << nth_bit))
 return nth_bit;
    }
  while (nth_bit < ((4 * 8) - 1));
  return -1;
}
extern inline gint
g_bit_nth_msf (gulong mask,
        gint nth_bit)
{
  if (nth_bit < 0)
    nth_bit = 4 * 8;
  do
    {
      nth_bit--;
      if (mask & (1UL << nth_bit))
 return nth_bit;
    }
  while (nth_bit > 0);
  return -1;
}
extern inline guint
g_bit_storage (gulong number)
{
  register guint n_bits = 0;

  do
    {
      n_bits++;
      number >>= 1;
    }
  while (number);
  return n_bits;
}
extern inline void
g_trash_stack_push (GTrashStack **stack_p,
      gpointer data_p)
{
  GTrashStack *data = (GTrashStack *) data_p;

  data->next = *stack_p;
  *stack_p = data;
}
extern inline gpointer
g_trash_stack_pop (GTrashStack **stack_p)
{
  GTrashStack *data;

  data = *stack_p;
  if (data)
    {
      *stack_p = data->next;



      data->next = ((void *)0);
    }

  return data;
}
extern inline gpointer
g_trash_stack_peek (GTrashStack **stack_p)
{
  GTrashStack *data;

  data = *stack_p;

  return data;
}
extern inline guint
g_trash_stack_height (GTrashStack **stack_p)
{
  GTrashStack *data;
  guint i = 0;

  for (data = *stack_p; data; data = data->next)
    i++;

  return i;
}






extern const guint glib_major_version;
extern const guint glib_minor_version;
extern const guint glib_micro_version;
extern const guint glib_interface_age;
extern const guint glib_binary_age;

const gchar * glib_check_version (guint required_major,
                                  guint required_minor,
                                  guint required_micro);








# 33 "/opt/gnome/include/glib-2.0/glib/gstring.h" 2



typedef struct _GString GString;
typedef struct _GStringChunk GStringChunk;

struct _GString
{
  gchar *str;
  gsize len;
  gsize allocated_len;
};



GStringChunk* g_string_chunk_new (gsize size);
void g_string_chunk_free (GStringChunk *chunk);
gchar* g_string_chunk_insert (GStringChunk *chunk,
         const gchar *string);
gchar* g_string_chunk_insert_len (GStringChunk *chunk,
         const gchar *string,
         gssize len);
gchar* g_string_chunk_insert_const (GStringChunk *chunk,
         const gchar *string);




GString* g_string_new (const gchar *init);
GString* g_string_new_len (const gchar *init,
                                         gssize len);
GString* g_string_sized_new (gsize dfl_size);
gchar* g_string_free (GString *string,
      gboolean free_segment);
gboolean g_string_equal (const GString *v,
      const GString *v2);
guint g_string_hash (const GString *str);
GString* g_string_assign (GString *string,
      const gchar *rval);
GString* g_string_truncate (GString *string,
      gsize len);
GString* g_string_set_size (GString *string,
      gsize len);
GString* g_string_insert_len (GString *string,
                                         gssize pos,
                                         const gchar *val,
                                         gssize len);
GString* g_string_append (GString *string,
                    const gchar *val);
GString* g_string_append_len (GString *string,
                    const gchar *val,
                                         gssize len);
GString* g_string_append_c (GString *string,
      gchar c);
GString* g_string_append_unichar (GString *string,
      gunichar wc);
GString* g_string_prepend (GString *string,
      const gchar *val);
GString* g_string_prepend_c (GString *string,
      gchar c);
GString* g_string_prepend_unichar (GString *string,
      gunichar wc);
GString* g_string_prepend_len (GString *string,
                    const gchar *val,
                                         gssize len);
GString* g_string_insert (GString *string,
      gssize pos,
      const gchar *val);
GString* g_string_insert_c (GString *string,
      gssize pos,
      gchar c);
GString* g_string_insert_unichar (GString *string,
      gssize pos,
      gunichar wc);
GString* g_string_erase (GString *string,
      gssize pos,
      gssize len);
GString* g_string_ascii_down (GString *string);
GString* g_string_ascii_up (GString *string);
void g_string_printf (GString *string,
      const gchar *format,
      ...) __attribute__((__format__ (__printf__, 2, 3)));
void g_string_append_printf (GString *string,
      const gchar *format,
      ...) __attribute__((__format__ (__printf__, 2, 3)));



static inline GString*
g_string_append_c_inline (GString *gstring,
                          gchar c)
{
  if (gstring->len + 1 < gstring->allocated_len)
    {
      gstring->str[gstring->len++] = c;
      gstring->str[gstring->len] = 0;
    }
  else
    g_string_insert_c (gstring, -1, c);
  return gstring;
}
# 145 "/opt/gnome/include/glib-2.0/glib/gstring.h"
GString* g_string_down (GString *string);
GString* g_string_up (GString *string);








# 33 "/opt/gnome/include/glib-2.0/glib/giochannel.h" 2






typedef struct _GIOChannel GIOChannel;
typedef struct _GIOFuncs GIOFuncs;

typedef enum
{
  G_IO_ERROR_NONE,
  G_IO_ERROR_AGAIN,
  G_IO_ERROR_INVAL,
  G_IO_ERROR_UNKNOWN
} GIOError;



typedef enum
{

  G_IO_CHANNEL_ERROR_FBIG,
  G_IO_CHANNEL_ERROR_INVAL,
  G_IO_CHANNEL_ERROR_IO,
  G_IO_CHANNEL_ERROR_ISDIR,
  G_IO_CHANNEL_ERROR_NOSPC,
  G_IO_CHANNEL_ERROR_NXIO,
  G_IO_CHANNEL_ERROR_OVERFLOW,
  G_IO_CHANNEL_ERROR_PIPE,

  G_IO_CHANNEL_ERROR_FAILED
} GIOChannelError;

typedef enum
{
  G_IO_STATUS_ERROR,
  G_IO_STATUS_NORMAL,
  G_IO_STATUS_EOF,
  G_IO_STATUS_AGAIN
} GIOStatus;

typedef enum
{
  G_SEEK_CUR,
  G_SEEK_SET,
  G_SEEK_END
} GSeekType;

typedef enum
{
  G_IO_IN =1,
  G_IO_OUT =4,
  G_IO_PRI =2,
  G_IO_ERR =8,
  G_IO_HUP =16,
  G_IO_NVAL =32
} GIOCondition;

typedef enum
{
  G_IO_FLAG_APPEND = 1 << 0,
  G_IO_FLAG_NONBLOCK = 1 << 1,
  G_IO_FLAG_IS_READABLE = 1 << 2,
  G_IO_FLAG_IS_WRITEABLE = 1 << 3,
  G_IO_FLAG_IS_SEEKABLE = 1 << 4,
  G_IO_FLAG_MASK = (1 << 5) - 1,
  G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK,
  G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK
} GIOFlags;

struct _GIOChannel
{

  guint ref_count;
  GIOFuncs *funcs;

  gchar *encoding;
  GIConv read_cd;
  GIConv write_cd;
  gchar *line_term;
  guint line_term_len;

  gsize buf_size;
  GString *read_buf;
  GString *encoded_read_buf;
  GString *write_buf;
  gchar partial_write_buf[6];



  guint use_buffer : 1;
  guint do_encode : 1;
  guint close_on_unref : 1;
  guint is_readable : 1;
  guint is_writeable : 1;
  guint is_seekable : 1;

  gpointer reserved1;
  gpointer reserved2;
};

typedef gboolean (*GIOFunc) (GIOChannel *source,
        GIOCondition condition,
        gpointer data);
struct _GIOFuncs
{
  GIOStatus (*io_read) (GIOChannel *channel,
             gchar *buf,
      gsize count,
      gsize *bytes_read,
      GError **err);
  GIOStatus (*io_write) (GIOChannel *channel,
      const gchar *buf,
      gsize count,
      gsize *bytes_written,
      GError **err);
  GIOStatus (*io_seek) (GIOChannel *channel,
      gint64 offset,
      GSeekType type,
      GError **err);
  GIOStatus (*io_close) (GIOChannel *channel,
      GError **err);
  GSource* (*io_create_watch) (GIOChannel *channel,
      GIOCondition condition);
  void (*io_free) (GIOChannel *channel);
  GIOStatus (*io_set_flags) (GIOChannel *channel,
                                  GIOFlags flags,
      GError **err);
  GIOFlags (*io_get_flags) (GIOChannel *channel);
};

void g_io_channel_init (GIOChannel *channel);
GIOChannel *g_io_channel_ref (GIOChannel *channel);
void g_io_channel_unref (GIOChannel *channel);


GIOError g_io_channel_read (GIOChannel *channel,
            gchar *buf,
            gsize count,
            gsize *bytes_read);
GIOError g_io_channel_write (GIOChannel *channel,
            const gchar *buf,
            gsize count,
            gsize *bytes_written);
GIOError g_io_channel_seek (GIOChannel *channel,
            gint64 offset,
            GSeekType type);
void g_io_channel_close (GIOChannel *channel);


GIOStatus g_io_channel_shutdown (GIOChannel *channel,
     gboolean flush,
     GError **err);
guint g_io_add_watch_full (GIOChannel *channel,
     gint priority,
     GIOCondition condition,
     GIOFunc func,
     gpointer user_data,
     GDestroyNotify notify);
GSource * g_io_create_watch (GIOChannel *channel,
     GIOCondition condition);
guint g_io_add_watch (GIOChannel *channel,
     GIOCondition condition,
     GIOFunc func,
     gpointer user_data);




void g_io_channel_set_buffer_size (GIOChannel *channel,
        gsize size);
gsize g_io_channel_get_buffer_size (GIOChannel *channel);
GIOCondition g_io_channel_get_buffer_condition (GIOChannel *channel);
GIOStatus g_io_channel_set_flags (GIOChannel *channel,
        GIOFlags flags,
        GError **error);
GIOFlags g_io_channel_get_flags (GIOChannel *channel);
void g_io_channel_set_line_term (GIOChannel *channel,
        const gchar *line_term,
        gint length);
const gchar* g_io_channel_get_line_term (GIOChannel *channel,
        gint *length);
void g_io_channel_set_buffered (GIOChannel *channel,
        gboolean buffered);
gboolean g_io_channel_get_buffered (GIOChannel *channel);
GIOStatus g_io_channel_set_encoding (GIOChannel *channel,
        const gchar *encoding,
        GError **error);
const gchar* g_io_channel_get_encoding (GIOChannel *channel);
void g_io_channel_set_close_on_unref (GIOChannel *channel,
        gboolean do_close);
gboolean g_io_channel_get_close_on_unref (GIOChannel *channel);


GIOStatus g_io_channel_flush (GIOChannel *channel,
        GError **error);
GIOStatus g_io_channel_read_line (GIOChannel *channel,
        gchar **str_return,
        gsize *length,
        gsize *terminator_pos,
        GError **error);
GIOStatus g_io_channel_read_line_string (GIOChannel *channel,
        GString *buffer,
        gsize *terminator_pos,
        GError **error);
GIOStatus g_io_channel_read_to_end (GIOChannel *channel,
        gchar **str_return,
        gsize *length,
        GError **error);
GIOStatus g_io_channel_read_chars (GIOChannel *channel,
        gchar *buf,
        gsize count,
        gsize *bytes_read,
        GError **error);
GIOStatus g_io_channel_read_unichar (GIOChannel *channel,
        gunichar *thechar,
        GError **error);
GIOStatus g_io_channel_write_chars (GIOChannel *channel,
        const gchar *buf,
        gssize count,
        gsize *bytes_written,
        GError **error);
GIOStatus g_io_channel_write_unichar (GIOChannel *channel,
        gunichar thechar,
        GError **error);
GIOStatus g_io_channel_seek_position (GIOChannel *channel,
        gint64 offset,
        GSeekType type,
        GError **error);




GIOChannel* g_io_channel_new_file (const gchar *filename,
        const gchar *mode,
        GError **error);



GQuark g_io_channel_error_quark (void);
GIOChannelError g_io_channel_error_from_errno (gint en);
# 294 "/opt/gnome/include/glib-2.0/glib/giochannel.h"
GIOChannel* g_io_channel_unix_new (int fd);
gint g_io_channel_unix_get_fd (GIOChannel *channel);



extern GSourceFuncs g_io_watch_funcs;
# 352 "/opt/gnome/include/glib-2.0/glib/giochannel.h"

# 48 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gkeyfile.h" 1
# 28 "/opt/gnome/include/glib-2.0/glib/gkeyfile.h"


typedef enum
{
  G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
  G_KEY_FILE_ERROR_PARSE,
  G_KEY_FILE_ERROR_NOT_FOUND,
  G_KEY_FILE_ERROR_KEY_NOT_FOUND,
  G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
  G_KEY_FILE_ERROR_INVALID_VALUE
} GKeyFileError;



GQuark g_key_file_error_quark (void);

typedef struct _GKeyFile GKeyFile;

typedef enum
{
  G_KEY_FILE_NONE = 0,
  G_KEY_FILE_KEEP_COMMENTS = 1 << 0,
  G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1
} GKeyFileFlags;

GKeyFile *g_key_file_new (void);
void g_key_file_free (GKeyFile *key_file);
void g_key_file_set_list_separator (GKeyFile *key_file,
          gchar separator);
gboolean g_key_file_load_from_file (GKeyFile *key_file,
          const gchar *file,
          GKeyFileFlags flags,
          GError **error);
gboolean g_key_file_load_from_data (GKeyFile *key_file,
          const gchar *data,
          gsize length,
          GKeyFileFlags flags,
          GError **error);
gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file,
          const gchar *file,
          gchar **full_path,
          GKeyFileFlags flags,
          GError **error);
gchar *g_key_file_to_data (GKeyFile *key_file,
          gsize *length,
          GError **error) __attribute__((__malloc__));
gchar *g_key_file_get_start_group (GKeyFile *key_file) __attribute__((__malloc__));
gchar **g_key_file_get_groups (GKeyFile *key_file,
          gsize *length) __attribute__((__malloc__));
gchar **g_key_file_get_keys (GKeyFile *key_file,
          const gchar *group_name,
          gsize *length,
          GError **error) __attribute__((__malloc__));
gboolean g_key_file_has_group (GKeyFile *key_file,
          const gchar *group_name);
gboolean g_key_file_has_key (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          GError **error);
gchar *g_key_file_get_value (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          GError **error) __attribute__((__malloc__));
void g_key_file_set_value (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          const gchar *value);
gchar *g_key_file_get_string (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          GError **error) __attribute__((__malloc__));
void g_key_file_set_string (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          const gchar *string);
gchar *g_key_file_get_locale_string (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          const gchar *locale,
          GError **error) __attribute__((__malloc__));
void g_key_file_set_locale_string (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          const gchar *locale,
          const gchar *string);
gboolean g_key_file_get_boolean (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          GError **error);
void g_key_file_set_boolean (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          gboolean value);
gint g_key_file_get_integer (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          GError **error);
void g_key_file_set_integer (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          gint value);
gdouble g_key_file_get_double (GKeyFile *key_file,
                                             const gchar *group_name,
                                             const gchar *key,
                                             GError **error);
void g_key_file_set_double (GKeyFile *key_file,
                                             const gchar *group_name,
                                             const gchar *key,
                                             gdouble value);
gchar **g_key_file_get_string_list (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          gsize *length,
          GError **error) __attribute__((__malloc__));
void g_key_file_set_string_list (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          const gchar * const list[],
          gsize length);
gchar **g_key_file_get_locale_string_list (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          const gchar *locale,
          gsize *length,
          GError **error) __attribute__((__malloc__));
void g_key_file_set_locale_string_list (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          const gchar *locale,
          const gchar * const list[],
          gsize length);
gboolean *g_key_file_get_boolean_list (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          gsize *length,
          GError **error) __attribute__((__malloc__));
void g_key_file_set_boolean_list (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          gboolean list[],
          gsize length);
gint *g_key_file_get_integer_list (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          gsize *length,
          GError **error) __attribute__((__malloc__));
void g_key_file_set_double_list (GKeyFile *key_file,
                                             const gchar *group_name,
                                             const gchar *key,
                                             gdouble list[],
                                             gsize length);
gdouble *g_key_file_get_double_list (GKeyFile *key_file,
                                             const gchar *group_name,
                                             const gchar *key,
                                             gsize *length,
                                             GError **error) __attribute__((__malloc__));
void g_key_file_set_integer_list (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          gint list[],
          gsize length);
void g_key_file_set_comment (GKeyFile *key_file,
                                             const gchar *group_name,
                                             const gchar *key,
                                             const gchar *comment,
                                             GError **error);
gchar *g_key_file_get_comment (GKeyFile *key_file,
                                             const gchar *group_name,
                                             const gchar *key,
                                             GError **error) __attribute__((__malloc__));

void g_key_file_remove_comment (GKeyFile *key_file,
                                             const gchar *group_name,
                                             const gchar *key,
          GError **error);
void g_key_file_remove_key (GKeyFile *key_file,
          const gchar *group_name,
          const gchar *key,
          GError **error);
void g_key_file_remove_group (GKeyFile *key_file,
          const gchar *group_name,
          GError **error);


# 49 "/opt/gnome/include/glib-2.0/glib.h" 2



# 1 "/opt/gnome/include/glib-2.0/glib/gmappedfile.h" 1
# 26 "/opt/gnome/include/glib-2.0/glib/gmappedfile.h"


typedef struct _GMappedFile GMappedFile;

GMappedFile *g_mapped_file_new (const gchar *filename,
             gboolean writable,
             GError **error) __attribute__((__malloc__));
gsize g_mapped_file_get_length (GMappedFile *file);
gchar *g_mapped_file_get_contents (GMappedFile *file);
void g_mapped_file_free (GMappedFile *file);


# 53 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gmarkup.h" 1
# 28 "/opt/gnome/include/glib-2.0/glib/gmarkup.h"


typedef enum
{
  G_MARKUP_ERROR_BAD_UTF8,
  G_MARKUP_ERROR_EMPTY,
  G_MARKUP_ERROR_PARSE,



  G_MARKUP_ERROR_UNKNOWN_ELEMENT,
  G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
  G_MARKUP_ERROR_INVALID_CONTENT
} GMarkupError;



GQuark g_markup_error_quark (void);

typedef enum
{
  G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0,
  G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1
} GMarkupParseFlags;

typedef struct _GMarkupParseContext GMarkupParseContext;
typedef struct _GMarkupParser GMarkupParser;

struct _GMarkupParser
{

  void (*start_element) (GMarkupParseContext *context,
                          const gchar *element_name,
                          const gchar **attribute_names,
                          const gchar **attribute_values,
                          gpointer user_data,
                          GError **error);


  void (*end_element) (GMarkupParseContext *context,
                          const gchar *element_name,
                          gpointer user_data,
                          GError **error);



  void (*text) (GMarkupParseContext *context,
                          const gchar *text,
                          gsize text_len,
                          gpointer user_data,
                          GError **error);






  void (*passthrough) (GMarkupParseContext *context,
                          const gchar *passthrough_text,
                          gsize text_len,
                          gpointer user_data,
                          GError **error);




  void (*error) (GMarkupParseContext *context,
                          GError *error,
                          gpointer user_data);
};

GMarkupParseContext *g_markup_parse_context_new (const GMarkupParser *parser,
                                                   GMarkupParseFlags flags,
                                                   gpointer user_data,
                                                   GDestroyNotify user_data_dnotify);
void g_markup_parse_context_free (GMarkupParseContext *context);
gboolean g_markup_parse_context_parse (GMarkupParseContext *context,
                                                   const gchar *text,
                                                   gssize text_len,
                                                   GError **error);

gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context,
                                                       GError **error);
const gchar *g_markup_parse_context_get_element (GMarkupParseContext *context);


void g_markup_parse_context_get_position (GMarkupParseContext *context,
                                                          gint *line_number,
                                                          gint *char_number);


gchar* g_markup_escape_text (const gchar *text,
                             gssize length);

gchar *g_markup_printf_escaped (const char *format,
    ...) __attribute__((__format__ (__printf__, 1, 2)));
gchar *g_markup_vprintf_escaped (const char *format,
     va_list args);


# 54 "/opt/gnome/include/glib-2.0/glib.h" 2

# 1 "/opt/gnome/include/glib-2.0/glib/gmessages.h" 1
# 37 "/opt/gnome/include/glib-2.0/glib/gmessages.h"
       
# 38 "/opt/gnome/include/glib-2.0/glib/gmessages.h" 3






gsize g_printf_string_upper_bound (const gchar* format,
         va_list args);
# 54 "/opt/gnome/include/glib-2.0/glib/gmessages.h" 3
typedef enum
{

  G_LOG_FLAG_RECURSION = 1 << 0,
  G_LOG_FLAG_FATAL = 1 << 1,


  G_LOG_LEVEL_ERROR = 1 << 2,
  G_LOG_LEVEL_CRITICAL = 1 << 3,
  G_LOG_LEVEL_WARNING = 1 << 4,
  G_LOG_LEVEL_MESSAGE = 1 << 5,
  G_LOG_LEVEL_INFO = 1 << 6,
  G_LOG_LEVEL_DEBUG = 1 << 7,

  G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
} GLogLevelFlags;




typedef void (*GLogFunc) (const gchar *log_domain,
                                                 GLogLevelFlags log_level,
                                                 const gchar *message,
                                                 gpointer user_data);



guint g_log_set_handler (const gchar *log_domain,
                                         GLogLevelFlags log_levels,
                                         GLogFunc log_func,
                                         gpointer user_data);
void g_log_remove_handler (const gchar *log_domain,
                                         guint handler_id);
void g_log_default_handler (const gchar *log_domain,
                                         GLogLevelFlags log_level,
                                         const gchar *message,
                                         gpointer unused_data);
GLogFunc g_log_set_default_handler (GLogFunc log_func,
        gpointer user_data);
void g_log (const gchar *log_domain,
                                         GLogLevelFlags log_level,
                                         const gchar *format,
                                         ...) __attribute__((__format__ (__printf__, 3, 4)));
void g_logv (const gchar *log_domain,
                                         GLogLevelFlags log_level,
                                         const gchar *format,
                                         va_list args);
GLogLevelFlags g_log_set_fatal_mask (const gchar *log_domain,
                                         GLogLevelFlags fatal_mask);
GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask);


void _g_log_fallback_handler (const gchar *log_domain,
     GLogLevelFlags log_level,
     const gchar *message,
     gpointer unused_data) __attribute__((visibility("hidden")));


void g_return_if_fail_warning (const char *log_domain,
          const char *pretty_function,
          const char *expression);
void g_assert_warning (const char *log_domain,
          const char *file,
          const int line,
                 const char *pretty_function,
                 const char *expression) __attribute__((__noreturn__));
# 205 "/opt/gnome/include/glib-2.0/glib/gmessages.h" 3
typedef void (*GPrintFunc) (const gchar *string);
void g_print (const gchar *format,
                                         ...) __attribute__((__format__ (__printf__, 1, 2)));
GPrintFunc g_set_print_handler (GPrintFunc func);
void g_printerr (const gchar *format,
                                         ...) __attribute__((__format__ (__printf__, 1, 2)));
GPrintFunc g_set_printerr_handler (GPrintFunc func);
# 361 "/opt/gnome/include/glib-2.0/glib/gmessages.h" 3

# 56 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gnode.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gnode.h"


typedef struct _GNode GNode;


typedef enum
{
  G_TRAVERSE_LEAVES = 1 << 0,
  G_TRAVERSE_NON_LEAVES = 1 << 1,
  G_TRAVERSE_ALL = G_TRAVERSE_LEAVES | G_TRAVERSE_NON_LEAVES,
  G_TRAVERSE_MASK = 0x03,
  G_TRAVERSE_LEAFS = G_TRAVERSE_LEAVES,
  G_TRAVERSE_NON_LEAFS = G_TRAVERSE_NON_LEAVES
} GTraverseFlags;


typedef enum
{
  G_IN_ORDER,
  G_PRE_ORDER,
  G_POST_ORDER,
  G_LEVEL_ORDER
} GTraverseType;

typedef gboolean (*GNodeTraverseFunc) (GNode *node,
       gpointer data);
typedef void (*GNodeForeachFunc) (GNode *node,
       gpointer data);
typedef gpointer (*GCopyFunc) (gconstpointer src,
                                                 gpointer data);



struct _GNode
{
  gpointer data;
  GNode *next;
  GNode *prev;
  GNode *parent;
  GNode *children;
};






GNode* g_node_new (gpointer data);
void g_node_destroy (GNode *root);
void g_node_unlink (GNode *node);
GNode* g_node_copy_deep (GNode *node,
     GCopyFunc copy_func,
     gpointer data);
GNode* g_node_copy (GNode *node);
GNode* g_node_insert (GNode *parent,
     gint position,
     GNode *node);
GNode* g_node_insert_before (GNode *parent,
     GNode *sibling,
     GNode *node);
GNode* g_node_insert_after (GNode *parent,
     GNode *sibling,
     GNode *node);
GNode* g_node_prepend (GNode *parent,
     GNode *node);
guint g_node_n_nodes (GNode *root,
     GTraverseFlags flags);
GNode* g_node_get_root (GNode *node);
gboolean g_node_is_ancestor (GNode *node,
     GNode *descendant);
guint g_node_depth (GNode *node);
GNode* g_node_find (GNode *root,
     GTraverseType order,
     GTraverseFlags flags,
     gpointer data);
# 125 "/opt/gnome/include/glib-2.0/glib/gnode.h"
void g_node_traverse (GNode *root,
     GTraverseType order,
     GTraverseFlags flags,
     gint max_depth,
     GNodeTraverseFunc func,
     gpointer data);






guint g_node_max_height (GNode *root);

void g_node_children_foreach (GNode *node,
      GTraverseFlags flags,
      GNodeForeachFunc func,
      gpointer data);
void g_node_reverse_children (GNode *node);
guint g_node_n_children (GNode *node);
GNode* g_node_nth_child (GNode *node,
      guint n);
GNode* g_node_last_child (GNode *node);
GNode* g_node_find_child (GNode *node,
      GTraverseFlags flags,
      gpointer data);
gint g_node_child_position (GNode *node,
      GNode *child);
gint g_node_child_index (GNode *node,
      gpointer data);

GNode* g_node_first_sibling (GNode *node);
GNode* g_node_last_sibling (GNode *node);
# 167 "/opt/gnome/include/glib-2.0/glib/gnode.h"
void g_node_push_allocator (gpointer dummy);
void g_node_pop_allocator (void);


# 57 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/goption.h" 1
# 27 "/opt/gnome/include/glib-2.0/glib/goption.h"


typedef struct _GOptionContext GOptionContext;
typedef struct _GOptionGroup GOptionGroup;
typedef struct _GOptionEntry GOptionEntry;

typedef enum
{
  G_OPTION_FLAG_HIDDEN = 1 << 0,
  G_OPTION_FLAG_IN_MAIN = 1 << 1,
  G_OPTION_FLAG_REVERSE = 1 << 2,
  G_OPTION_FLAG_NO_ARG = 1 << 3,
  G_OPTION_FLAG_FILENAME = 1 << 4,
  G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5,
  G_OPTION_FLAG_NOALIAS = 1 << 6
} GOptionFlags;

typedef enum
{
  G_OPTION_ARG_NONE,
  G_OPTION_ARG_STRING,
  G_OPTION_ARG_INT,
  G_OPTION_ARG_CALLBACK,
  G_OPTION_ARG_FILENAME,
  G_OPTION_ARG_STRING_ARRAY,
  G_OPTION_ARG_FILENAME_ARRAY,
  G_OPTION_ARG_DOUBLE,
  G_OPTION_ARG_INT64
} GOptionArg;

typedef gboolean (*GOptionArgFunc) (const gchar *option_name,
        const gchar *value,
        gpointer data,
        GError **error);

typedef gboolean (*GOptionParseFunc) (GOptionContext *context,
          GOptionGroup *group,
          gpointer data,
          GError **error);

typedef void (*GOptionErrorFunc) (GOptionContext *context,
      GOptionGroup *group,
      gpointer data,
      GError **error);



typedef enum
{
  G_OPTION_ERROR_UNKNOWN_OPTION,
  G_OPTION_ERROR_BAD_VALUE,
  G_OPTION_ERROR_FAILED
} GOptionError;

GQuark g_option_error_quark (void);


struct _GOptionEntry
{
  const gchar *long_name;
  gchar short_name;
  gint flags;

  GOptionArg arg;
  gpointer arg_data;

  const gchar *description;
  const gchar *arg_description;
};



GOptionContext *g_option_context_new (const gchar *parameter_string);
void g_option_context_set_summary (GOptionContext *context,
                                                   const gchar *summary);
const gchar *g_option_context_get_summary (GOptionContext *context);
void g_option_context_set_description (GOptionContext *context,
                                                   const gchar *description);
const gchar *g_option_context_get_description (GOptionContext *context);
void g_option_context_free (GOptionContext *context);
void g_option_context_set_help_enabled (GOptionContext *context,
         gboolean help_enabled);
gboolean g_option_context_get_help_enabled (GOptionContext *context);
void g_option_context_set_ignore_unknown_options (GOptionContext *context,
            gboolean ignore_unknown);
gboolean g_option_context_get_ignore_unknown_options (GOptionContext *context);

void g_option_context_add_main_entries (GOptionContext *context,
         const GOptionEntry *entries,
         const gchar *translation_domain);
gboolean g_option_context_parse (GOptionContext *context,
         gint *argc,
         gchar ***argv,
         GError **error);
void g_option_context_set_translate_func (GOptionContext *context,
           GTranslateFunc func,
           gpointer data,
           GDestroyNotify destroy_notify);
void g_option_context_set_translation_domain (GOptionContext *context,
        const gchar *domain);

void g_option_context_add_group (GOptionContext *context,
       GOptionGroup *group);
void g_option_context_set_main_group (GOptionContext *context,
            GOptionGroup *group);
GOptionGroup *g_option_context_get_main_group (GOptionContext *context);


GOptionGroup *g_option_group_new (const gchar *name,
           const gchar *description,
           const gchar *help_description,
           gpointer user_data,
           GDestroyNotify destroy);
void g_option_group_set_parse_hooks (GOptionGroup *group,
           GOptionParseFunc pre_parse_func,
           GOptionParseFunc post_parse_func);
void g_option_group_set_error_hook (GOptionGroup *group,
           GOptionErrorFunc error_func);
void g_option_group_free (GOptionGroup *group);
void g_option_group_add_entries (GOptionGroup *group,
           const GOptionEntry *entries);
void g_option_group_set_translate_func (GOptionGroup *group,
           GTranslateFunc func,
           gpointer data,
           GDestroyNotify destroy_notify);
void g_option_group_set_translation_domain (GOptionGroup *group,
           const gchar *domain);



# 58 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gpattern.h" 1
# 24 "/opt/gnome/include/glib-2.0/glib/gpattern.h"



typedef struct _GPatternSpec GPatternSpec;

GPatternSpec* g_pattern_spec_new (const gchar *pattern);
void g_pattern_spec_free (GPatternSpec *pspec);
gboolean g_pattern_spec_equal (GPatternSpec *pspec1,
     GPatternSpec *pspec2);
gboolean g_pattern_match (GPatternSpec *pspec,
     guint string_length,
     const gchar *string,
     const gchar *string_reversed);
gboolean g_pattern_match_string (GPatternSpec *pspec,
     const gchar *string);
gboolean g_pattern_match_simple (const gchar *pattern,
     const gchar *string);


# 59 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gprimes.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gprimes.h"

# 43 "/opt/gnome/include/glib-2.0/glib/gprimes.h"
guint g_spaced_primes_closest (guint num) __attribute__((__const__));


# 60 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gqsort.h" 1
# 33 "/opt/gnome/include/glib-2.0/glib/gqsort.h"


void g_qsort_with_data (gconstpointer pbase,
   gint total_elems,
   gsize size,
   GCompareDataFunc compare_func,
   gpointer user_data);


# 61 "/opt/gnome/include/glib-2.0/glib.h" 2

# 1 "/opt/gnome/include/glib-2.0/glib/gqueue.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gqueue.h"


typedef struct _GQueue GQueue;

struct _GQueue
{
  GList *head;
  GList *tail;
  guint length;
};



GQueue* g_queue_new (void);
void g_queue_free (GQueue *queue);
gboolean g_queue_is_empty (GQueue *queue);
guint g_queue_get_length (GQueue *queue);
void g_queue_reverse (GQueue *queue);
GQueue * g_queue_copy (GQueue *queue);
void g_queue_foreach (GQueue *queue,
     GFunc func,
     gpointer user_data);
GList * g_queue_find (GQueue *queue,
     gconstpointer data);
GList * g_queue_find_custom (GQueue *queue,
     gconstpointer data,
     GCompareFunc func);
void g_queue_sort (GQueue *queue,
     GCompareDataFunc compare_func,
     gpointer user_data);

void g_queue_push_head (GQueue *queue,
     gpointer data);
void g_queue_push_tail (GQueue *queue,
     gpointer data);
void g_queue_push_nth (GQueue *queue,
     gpointer data,
     gint n);
gpointer g_queue_pop_head (GQueue *queue);
gpointer g_queue_pop_tail (GQueue *queue);
gpointer g_queue_pop_nth (GQueue *queue,
     guint n);
gpointer g_queue_peek_head (GQueue *queue);
gpointer g_queue_peek_tail (GQueue *queue);
gpointer g_queue_peek_nth (GQueue *queue,
     guint n);
gint g_queue_index (GQueue *queue,
     gconstpointer data);
void g_queue_remove (GQueue *queue,
     gconstpointer data);
void g_queue_remove_all (GQueue *queue,
     gconstpointer data);
void g_queue_insert_before (GQueue *queue,
     GList *sibling,
     gpointer data);
void g_queue_insert_after (GQueue *queue,
     GList *sibling,
     gpointer data);
void g_queue_insert_sorted (GQueue *queue,
     gpointer data,
     GCompareDataFunc func,
     gpointer user_data);

void g_queue_push_head_link (GQueue *queue,
     GList *link_);
void g_queue_push_tail_link (GQueue *queue,
     GList *link_);
void g_queue_push_nth_link (GQueue *queue,
     gint n,
     GList *link_);
GList* g_queue_pop_head_link (GQueue *queue);
GList* g_queue_pop_tail_link (GQueue *queue);
GList* g_queue_pop_nth_link (GQueue *queue,
     guint n);
GList* g_queue_peek_head_link (GQueue *queue);
GList* g_queue_peek_tail_link (GQueue *queue);
GList* g_queue_peek_nth_link (GQueue *queue,
     guint n);
gint g_queue_link_index (GQueue *queue,
     GList *link_);
void g_queue_unlink (GQueue *queue,
     GList *link_);
void g_queue_delete_link (GQueue *queue,
     GList *link_);


# 63 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/grand.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/grand.h"


typedef struct _GRand GRand;
# 45 "/opt/gnome/include/glib-2.0/glib/grand.h"
GRand* g_rand_new_with_seed (guint32 seed);
GRand* g_rand_new_with_seed_array (const guint32 *seed,
        guint seed_length);
GRand* g_rand_new (void);
void g_rand_free (GRand *rand_);
GRand* g_rand_copy (GRand *rand_);
void g_rand_set_seed (GRand *rand_,
          guint32 seed);
void g_rand_set_seed_array (GRand *rand_,
          const guint32 *seed,
          guint seed_length);



guint32 g_rand_int (GRand *rand_);
gint32 g_rand_int_range (GRand *rand_,
          gint32 begin,
          gint32 end);
gdouble g_rand_double (GRand *rand_);
gdouble g_rand_double_range (GRand *rand_,
          gdouble begin,
          gdouble end);
void g_random_set_seed (guint32 seed);



guint32 g_random_int (void);
gint32 g_random_int_range (gint32 begin,
          gint32 end);
gdouble g_random_double (void);
gdouble g_random_double_range (gdouble begin,
          gdouble end);



# 64 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/grel.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/grel.h"


typedef struct _GRelation GRelation;
typedef struct _GTuples GTuples;

struct _GTuples
{
  guint len;
};
# 65 "/opt/gnome/include/glib-2.0/glib/grel.h"
GRelation* g_relation_new (gint fields);
void g_relation_destroy (GRelation *relation);
void g_relation_index (GRelation *relation,
                               gint field,
                               GHashFunc hash_func,
                               GEqualFunc key_equal_func);
void g_relation_insert (GRelation *relation,
                               ...);
gint g_relation_delete (GRelation *relation,
                               gconstpointer key,
                               gint field);
GTuples* g_relation_select (GRelation *relation,
                               gconstpointer key,
                               gint field);
gint g_relation_count (GRelation *relation,
                               gconstpointer key,
                               gint field);
gboolean g_relation_exists (GRelation *relation,
                               ...);
void g_relation_print (GRelation *relation);

void g_tuples_destroy (GTuples *tuples);
gpointer g_tuples_index (GTuples *tuples,
                               gint index_,
                               gint field);


# 65 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gscanner.h" 1
# 33 "/opt/gnome/include/glib-2.0/glib/gscanner.h"


typedef struct _GScanner GScanner;
typedef struct _GScannerConfig GScannerConfig;
typedef union _GTokenValue GTokenValue;

typedef void (*GScannerMsgFunc) (GScanner *scanner,
       gchar *message,
       gboolean error);
# 60 "/opt/gnome/include/glib-2.0/glib/gscanner.h"
typedef enum
{
  G_ERR_UNKNOWN,
  G_ERR_UNEXP_EOF,
  G_ERR_UNEXP_EOF_IN_STRING,
  G_ERR_UNEXP_EOF_IN_COMMENT,
  G_ERR_NON_DIGIT_IN_CONST,
  G_ERR_DIGIT_RADIX,
  G_ERR_FLOAT_RADIX,
  G_ERR_FLOAT_MALFORMED
} GErrorType;


typedef enum
{
  G_TOKEN_EOF = 0,

  G_TOKEN_LEFT_PAREN = '(',
  G_TOKEN_RIGHT_PAREN = ')',
  G_TOKEN_LEFT_CURLY = '{',
  G_TOKEN_RIGHT_CURLY = '}',
  G_TOKEN_LEFT_BRACE = '[',
  G_TOKEN_RIGHT_BRACE = ']',
  G_TOKEN_EQUAL_SIGN = '=',
  G_TOKEN_COMMA = ',',

  G_TOKEN_NONE = 256,

  G_TOKEN_ERROR,

  G_TOKEN_CHAR,
  G_TOKEN_BINARY,
  G_TOKEN_OCTAL,
  G_TOKEN_INT,
  G_TOKEN_HEX,
  G_TOKEN_FLOAT,
  G_TOKEN_STRING,

  G_TOKEN_SYMBOL,
  G_TOKEN_IDENTIFIER,
  G_TOKEN_IDENTIFIER_NULL,

  G_TOKEN_COMMENT_SINGLE,
  G_TOKEN_COMMENT_MULTI,
  G_TOKEN_LAST
} GTokenType;

union _GTokenValue
{
  gpointer v_symbol;
  gchar *v_identifier;
  gulong v_binary;
  gulong v_octal;
  gulong v_int;
  guint64 v_int64;
  gdouble v_float;
  gulong v_hex;
  gchar *v_string;
  gchar *v_comment;
  guchar v_char;
  guint v_error;
};

struct _GScannerConfig
{


  gchar *cset_skip_characters;
  gchar *cset_identifier_first;
  gchar *cset_identifier_nth;
  gchar *cpair_comment_single;



  guint case_sensitive : 1;




  guint skip_comment_multi : 1;
  guint skip_comment_single : 1;
  guint scan_comment_multi : 1;
  guint scan_identifier : 1;
  guint scan_identifier_1char : 1;
  guint scan_identifier_NULL : 1;
  guint scan_symbols : 1;
  guint scan_binary : 1;
  guint scan_octal : 1;
  guint scan_float : 1;
  guint scan_hex : 1;
  guint scan_hex_dollar : 1;
  guint scan_string_sq : 1;
  guint scan_string_dq : 1;
  guint numbers_2_int : 1;
  guint int_2_float : 1;
  guint identifier_2_string : 1;
  guint char_2_token : 1;
  guint symbol_2_token : 1;
  guint scope_0_fallback : 1;
  guint store_int64 : 1;
  guint padding_dummy;
};

struct _GScanner
{

  gpointer user_data;
  guint max_parse_errors;


  guint parse_errors;


  const gchar *input_name;


  GData *qdata;


  GScannerConfig *config;


  GTokenType token;
  GTokenValue value;
  guint line;
  guint position;


  GTokenType next_token;
  GTokenValue next_value;
  guint next_line;
  guint next_position;


  GHashTable *symbol_table;
  gint input_fd;
  const gchar *text;
  const gchar *text_end;
  gchar *buffer;
  guint scope_id;


  GScannerMsgFunc msg_handler;
};

GScanner* g_scanner_new (const GScannerConfig *config_templ);
void g_scanner_destroy (GScanner *scanner);
void g_scanner_input_file (GScanner *scanner,
       gint input_fd);
void g_scanner_sync_file_offset (GScanner *scanner);
void g_scanner_input_text (GScanner *scanner,
       const gchar *text,
       guint text_len);
GTokenType g_scanner_get_next_token (GScanner *scanner);
GTokenType g_scanner_peek_next_token (GScanner *scanner);
GTokenType g_scanner_cur_token (GScanner *scanner);
GTokenValue g_scanner_cur_value (GScanner *scanner);
guint g_scanner_cur_line (GScanner *scanner);
guint g_scanner_cur_position (GScanner *scanner);
gboolean g_scanner_eof (GScanner *scanner);
guint g_scanner_set_scope (GScanner *scanner,
       guint scope_id);
void g_scanner_scope_add_symbol (GScanner *scanner,
       guint scope_id,
       const gchar *symbol,
       gpointer value);
void g_scanner_scope_remove_symbol (GScanner *scanner,
       guint scope_id,
       const gchar *symbol);
gpointer g_scanner_scope_lookup_symbol (GScanner *scanner,
       guint scope_id,
       const gchar *symbol);
void g_scanner_scope_foreach_symbol (GScanner *scanner,
       guint scope_id,
       GHFunc func,
       gpointer user_data);
gpointer g_scanner_lookup_symbol (GScanner *scanner,
       const gchar *symbol);
void g_scanner_unexp_token (GScanner *scanner,
       GTokenType expected_token,
       const gchar *identifier_spec,
       const gchar *symbol_spec,
       const gchar *symbol_name,
       const gchar *message,
       gint is_error);
void g_scanner_error (GScanner *scanner,
       const gchar *format,
       ...) __attribute__((__format__ (__printf__, 2, 3)));
void g_scanner_warn (GScanner *scanner,
       const gchar *format,
       ...) __attribute__((__format__ (__printf__, 2, 3)));
# 272 "/opt/gnome/include/glib-2.0/glib/gscanner.h"

# 66 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gshell.h" 1
# 26 "/opt/gnome/include/glib-2.0/glib/gshell.h"




typedef enum
{

  G_SHELL_ERROR_BAD_QUOTING,

  G_SHELL_ERROR_EMPTY_STRING,
  G_SHELL_ERROR_FAILED
} GShellError;

GQuark g_shell_error_quark (void);

gchar* g_shell_quote (const gchar *unquoted_string);
gchar* g_shell_unquote (const gchar *quoted_string,
                             GError **error);
gboolean g_shell_parse_argv (const gchar *command_line,
                             gint *argcp,
                             gchar ***argvp,
                             GError **error);


# 67 "/opt/gnome/include/glib-2.0/glib.h" 2

# 1 "/opt/gnome/include/glib-2.0/glib/gspawn.h" 1
# 26 "/opt/gnome/include/glib-2.0/glib/gspawn.h"





typedef enum
{
  G_SPAWN_ERROR_FORK,
  G_SPAWN_ERROR_READ,
  G_SPAWN_ERROR_CHDIR,
  G_SPAWN_ERROR_ACCES,
  G_SPAWN_ERROR_PERM,
  G_SPAWN_ERROR_2BIG,
  G_SPAWN_ERROR_NOEXEC,
  G_SPAWN_ERROR_NAMETOOLONG,
  G_SPAWN_ERROR_NOENT,
  G_SPAWN_ERROR_NOMEM,
  G_SPAWN_ERROR_NOTDIR,
  G_SPAWN_ERROR_LOOP,
  G_SPAWN_ERROR_TXTBUSY,
  G_SPAWN_ERROR_IO,
  G_SPAWN_ERROR_NFILE,
  G_SPAWN_ERROR_MFILE,
  G_SPAWN_ERROR_INVAL,
  G_SPAWN_ERROR_ISDIR,
  G_SPAWN_ERROR_LIBBAD,
  G_SPAWN_ERROR_FAILED


} GSpawnError;

typedef void (* GSpawnChildSetupFunc) (gpointer user_data);

typedef enum
{
  G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0,
  G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1,

  G_SPAWN_SEARCH_PATH = 1 << 2,

  G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3,
  G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4,
  G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5,
  G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6
} GSpawnFlags;

GQuark g_spawn_error_quark (void);
# 82 "/opt/gnome/include/glib-2.0/glib/gspawn.h"
gboolean g_spawn_async (const gchar *working_directory,
                        gchar **argv,
                        gchar **envp,
                        GSpawnFlags flags,
                        GSpawnChildSetupFunc child_setup,
                        gpointer user_data,
                        GPid *child_pid,
                        GError **error);





gboolean g_spawn_async_with_pipes (const gchar *working_directory,
                                   gchar **argv,
                                   gchar **envp,
                                   GSpawnFlags flags,
                                   GSpawnChildSetupFunc child_setup,
                                   gpointer user_data,
                                   GPid *child_pid,
                                   gint *standard_input,
                                   gint *standard_output,
                                   gint *standard_error,
                                   GError **error);






gboolean g_spawn_sync (const gchar *working_directory,
                               gchar **argv,
                               gchar **envp,
                               GSpawnFlags flags,
                               GSpawnChildSetupFunc child_setup,
                               gpointer user_data,
                               gchar **standard_output,
                               gchar **standard_error,
                               gint *exit_status,
                               GError **error);

gboolean g_spawn_command_line_sync (const gchar *command_line,
                                     gchar **standard_output,
                                     gchar **standard_error,
                                     gint *exit_status,
                                     GError **error);
gboolean g_spawn_command_line_async (const gchar *command_line,
                                     GError **error);

void g_spawn_close_pid (GPid pid);



# 69 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gstrfuncs.h" 1
# 33 "/opt/gnome/include/glib-2.0/glib/gstrfuncs.h"



typedef enum {
  G_ASCII_ALNUM = 1 << 0,
  G_ASCII_ALPHA = 1 << 1,
  G_ASCII_CNTRL = 1 << 2,
  G_ASCII_DIGIT = 1 << 3,
  G_ASCII_GRAPH = 1 << 4,
  G_ASCII_LOWER = 1 << 5,
  G_ASCII_PRINT = 1 << 6,
  G_ASCII_PUNCT = 1 << 7,
  G_ASCII_SPACE = 1 << 8,
  G_ASCII_UPPER = 1 << 9,
  G_ASCII_XDIGIT = 1 << 10
} GAsciiType;

extern const guint16 * const g_ascii_table;
# 85 "/opt/gnome/include/glib-2.0/glib/gstrfuncs.h"
gchar g_ascii_tolower (gchar c) __attribute__((__const__));
gchar g_ascii_toupper (gchar c) __attribute__((__const__));

gint g_ascii_digit_value (gchar c) __attribute__((__const__));
gint g_ascii_xdigit_value (gchar c) __attribute__((__const__));





gchar* g_strdelimit (gchar *string,
     const gchar *delimiters,
     gchar new_delimiter);
gchar* g_strcanon (gchar *string,
     const gchar *valid_chars,
     gchar substitutor);
const gchar* g_strerror (gint errnum) __attribute__((__const__));
const gchar* g_strsignal (gint signum) __attribute__((__const__));
gchar* g_strreverse (gchar *string);
gsize g_strlcpy (gchar *dest,
     const gchar *src,
     gsize dest_size);
gsize g_strlcat (gchar *dest,
     const gchar *src,
     gsize dest_size);
gchar * g_strstr_len (const gchar *haystack,
     gssize haystack_len,
     const gchar *needle);
gchar * g_strrstr (const gchar *haystack,
     const gchar *needle);
gchar * g_strrstr_len (const gchar *haystack,
     gssize haystack_len,
     const gchar *needle);

gboolean g_str_has_suffix (const gchar *str,
     const gchar *suffix);
gboolean g_str_has_prefix (const gchar *str,
     const gchar *prefix);



gdouble g_strtod (const gchar *nptr,
     gchar **endptr);
gdouble g_ascii_strtod (const gchar *nptr,
     gchar **endptr);
guint64 g_ascii_strtoull (const gchar *nptr,
     gchar **endptr,
     guint base);
gint64 g_ascii_strtoll (const gchar *nptr,
     gchar **endptr,
     guint base);




gchar * g_ascii_dtostr (gchar *buffer,
     gint buf_len,
     gdouble d);
gchar * g_ascii_formatd (gchar *buffer,
     gint buf_len,
     const gchar *format,
     gdouble d);


gchar* g_strchug (gchar *string);

gchar* g_strchomp (gchar *string);



gint g_ascii_strcasecmp (const gchar *s1,
        const gchar *s2);
gint g_ascii_strncasecmp (const gchar *s1,
        const gchar *s2,
        gsize n);
gchar* g_ascii_strdown (const gchar *str,
        gssize len) __attribute__((__malloc__));
gchar* g_ascii_strup (const gchar *str,
        gssize len) __attribute__((__malloc__));
# 172 "/opt/gnome/include/glib-2.0/glib/gstrfuncs.h"
gint g_strcasecmp (const gchar *s1,
     const gchar *s2);
gint g_strncasecmp (const gchar *s1,
     const gchar *s2,
     guint n);
gchar* g_strdown (gchar *string);
gchar* g_strup (gchar *string);






gchar* g_strdup (const gchar *str) __attribute__((__malloc__));
gchar* g_strdup_printf (const gchar *format,
     ...) __attribute__((__format__ (__printf__, 1, 2))) __attribute__((__malloc__));
gchar* g_strdup_vprintf (const gchar *format,
     va_list args) __attribute__((__malloc__));
gchar* g_strndup (const gchar *str,
     gsize n) __attribute__((__malloc__));
gchar* g_strnfill (gsize length,
     gchar fill_char) __attribute__((__malloc__));
gchar* g_strconcat (const gchar *string1,
     ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
gchar* g_strjoin (const gchar *separator,
     ...) __attribute__((__malloc__)) __attribute__((__sentinel__));





gchar* g_strcompress (const gchar *source) __attribute__((__malloc__));
# 213 "/opt/gnome/include/glib-2.0/glib/gstrfuncs.h"
gchar* g_strescape (const gchar *source,
     const gchar *exceptions) __attribute__((__malloc__));

gpointer g_memdup (gconstpointer mem,
     guint byte_size) __attribute__((__malloc__));
# 228 "/opt/gnome/include/glib-2.0/glib/gstrfuncs.h"
gchar** g_strsplit (const gchar *string,
     const gchar *delimiter,
     gint max_tokens) __attribute__((__malloc__));
gchar ** g_strsplit_set (const gchar *string,
     const gchar *delimiters,
     gint max_tokens) __attribute__((__malloc__));
gchar* g_strjoinv (const gchar *separator,
     gchar **str_array) __attribute__((__malloc__));
void g_strfreev (gchar **str_array);
gchar** g_strdupv (gchar **str_array) __attribute__((__malloc__));
guint g_strv_length (gchar **str_array);

gchar* g_stpcpy (gchar *dest,
                                        const char *src);

const gchar *g_strip_context (const gchar *msgid,
     const gchar *msgval);


# 70 "/opt/gnome/include/glib-2.0/glib.h" 2


# 1 "/opt/gnome/include/glib-2.0/glib/gthreadpool.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gthreadpool.h"


typedef struct _GThreadPool GThreadPool;






struct _GThreadPool
{
  GFunc func;
  gpointer user_data;
  gboolean exclusive;
};






GThreadPool* g_thread_pool_new (GFunc func,
                                               gpointer user_data,
                                               gint max_threads,
                                               gboolean exclusive,
                                               GError **error);





void g_thread_pool_push (GThreadPool *pool,
                                               gpointer data,
                                               GError **error);




void g_thread_pool_set_max_threads (GThreadPool *pool,
                                               gint max_threads,
                                               GError **error);
gint g_thread_pool_get_max_threads (GThreadPool *pool);



guint g_thread_pool_get_num_threads (GThreadPool *pool);


guint g_thread_pool_unprocessed (GThreadPool *pool);





void g_thread_pool_free (GThreadPool *pool,
                                               gboolean immediate,
                                               gboolean wait);



void g_thread_pool_set_max_unused_threads (gint max_threads);
gint g_thread_pool_get_max_unused_threads (void);
guint g_thread_pool_get_num_unused_threads (void);


void g_thread_pool_stop_unused_threads (void);


void g_thread_pool_set_sort_function (GThreadPool *pool,
                                        GCompareDataFunc func,
            gpointer user_data);


void g_thread_pool_set_max_idle_time (guint interval);
guint g_thread_pool_get_max_idle_time (void);


# 73 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gtimer.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gtimer.h"






typedef struct _GTimer GTimer;



GTimer* g_timer_new (void);
void g_timer_destroy (GTimer *timer);
void g_timer_start (GTimer *timer);
void g_timer_stop (GTimer *timer);
void g_timer_reset (GTimer *timer);
void g_timer_continue (GTimer *timer);
gdouble g_timer_elapsed (GTimer *timer,
      gulong *microseconds);

void g_usleep (gulong microseconds);

void g_time_val_add (GTimeVal *time_,
                                  glong microseconds);
gboolean g_time_val_from_iso8601 (const gchar *iso_date,
      GTimeVal *time_);
gchar* g_time_val_to_iso8601 (GTimeVal *time_) __attribute__((__malloc__));


# 74 "/opt/gnome/include/glib-2.0/glib.h" 2
# 1 "/opt/gnome/include/glib-2.0/glib/gtree.h" 1
# 32 "/opt/gnome/include/glib-2.0/glib/gtree.h"


typedef struct _GTree GTree;

typedef gboolean (*GTraverseFunc) (gpointer key,
                                   gpointer value,
                                   gpointer data);



GTree* g_tree_new (GCompareFunc key_compare_func);
GTree* g_tree_new_with_data (GCompareDataFunc key_compare_func,
                                 gpointer key_compare_data);
GTree* g_tree_new_full (GCompareDataFunc key_compare_func,
                                 gpointer key_compare_data,
                                 GDestroyNotify key_destroy_func,
                                 GDestroyNotify value_destroy_func);
void g_tree_destroy (GTree *tree);
void g_tree_insert (GTree *tree,
                                 gpointer key,
                                 gpointer value);
void g_tree_replace (GTree *tree,
                                 gpointer key,
                                 gpointer value);
gboolean g_tree_remove (GTree *tree,
                                 gconstpointer key);
gboolean g_tree_steal (GTree *tree,
                                 gconstpointer key);
gpointer g_tree_lookup (GTree *tree,
                                 gconstpointer key);
gboolean g_tree_lookup_extended (GTree *tree,
                                 gconstpointer lookup_key,
                                 gpointer *orig_key,
                                 gpointer *value);
void g_tree_foreach (GTree *tree,
                                 GTraverseFunc func,
                                 gpointer user_data);


void g_tree_traverse (GTree *tree,
                                 GTraverseFunc traverse_func,
                                 GTraverseType traverse_type,
                                 gpointer user_data);


gpointer g_tree_search (GTree *tree,
                                 GCompareFunc search_func,
                                 gconstpointer user_data);
gint g_tree_height (GTree *tree);
gint g_tree_nnodes (GTree *tree);




# 75 "/opt/gnome/include/glib-2.0/glib.h" 2
# 35 "../../../camel/camel-folder.h" 2
# 1 "../../../camel/camel-object.h" 1
# 34 "../../../camel/camel-object.h"
# 1 "/usr/include/stdio.h" 1 3 4
# 30 "/usr/include/stdio.h" 3 4




# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 35 "/usr/include/stdio.h" 2 3 4
# 44 "/usr/include/stdio.h" 3 4


typedef struct _IO_FILE FILE;





# 62 "/usr/include/stdio.h" 3 4
typedef struct _IO_FILE __FILE;
# 72 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/libio.h" 1 3 4
# 32 "/usr/include/libio.h" 3 4
# 1 "/usr/include/_G_config.h" 1 3 4
# 14 "/usr/include/_G_config.h" 3 4
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 355 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 3 4
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3 4
# 24 "/usr/include/_G_config.h" 3 4
# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4

# 1 "/usr/include/bits/wchar.h" 1 3 4
# 51 "/usr/include/wchar.h" 2 3 4
# 76 "/usr/include/wchar.h" 3 4
typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    char __wchb[4];
  } __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3 4

typedef struct
{
  __off_t __pos;
  __mbstate_t __state;
} _G_fpos_t;
typedef struct
{
  __off64_t __pos;
  __mbstate_t __state;
} _G_fpos64_t;
# 44 "/usr/include/_G_config.h" 3 4
# 1 "/usr/include/gconv.h" 1 3 4
# 28 "/usr/include/gconv.h" 3 4
# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4
# 29 "/usr/include/gconv.h" 2 3 4


# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 32 "/usr/include/gconv.h" 2 3 4





enum
{
  __GCONV_OK = 0,
  __GCONV_NOCONV,
  __GCONV_NODB,
  __GCONV_NOMEM,

  __GCONV_EMPTY_INPUT,
  __GCONV_FULL_OUTPUT,
  __GCONV_ILLEGAL_INPUT,
  __GCONV_INCOMPLETE_INPUT,

  __GCONV_ILLEGAL_DESCRIPTOR,
  __GCONV_INTERNAL_ERROR
};



enum
{
  __GCONV_IS_LAST = 0x0001,
  __GCONV_IGNORE_ERRORS = 0x0002
};



struct __gconv_step;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_trans_data;



typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
       __const unsigned char **, __const unsigned char *,
       unsigned char **, size_t *, int, int);


typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);


typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);



typedef int (*__gconv_trans_fct) (struct __gconv_step *,
      struct __gconv_step_data *, void *,
      __const unsigned char *,
      __const unsigned char **,
      __const unsigned char *, unsigned char **,
      size_t *);


typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
       __const unsigned char *,
       unsigned char *, unsigned char *);


typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
     size_t *);


typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);

struct __gconv_trans_data
{

  __gconv_trans_fct __trans_fct;
  __gconv_trans_context_fct __trans_context_fct;
  __gconv_trans_end_fct __trans_end_fct;
  void *__data;
  struct __gconv_trans_data *__next;
};



struct __gconv_step
{
  struct __gconv_loaded_object *__shlib_handle;
  __const char *__modname;

  int __counter;

  char *__from_name;
  char *__to_name;

  __gconv_fct __fct;
  __gconv_btowc_fct __btowc_fct;
  __gconv_init_fct __init_fct;
  __gconv_end_fct __end_fct;



  int __min_needed_from;
  int __max_needed_from;
  int __min_needed_to;
  int __max_needed_to;


  int __stateful;

  void *__data;
};



struct __gconv_step_data
{
  unsigned char *__outbuf;
  unsigned char *__outbufend;



  int __flags;



  int __invocation_counter;



  int __internal_use;

  __mbstate_t *__statep;
  __mbstate_t __state;



  struct __gconv_trans_data *__trans;
};



typedef struct __gconv_info
{
  size_t __nsteps;
  struct __gconv_step *__steps;
  __extension__ struct __gconv_step_data __data [];
} *__gconv_t;
# 45 "/usr/include/_G_config.h" 2 3 4
typedef union
{
  struct __gconv_info __cd;
  struct
  {
    struct __gconv_info __cd;
    struct __gconv_step_data __data;
  } __combined;
} _G_iconv_t;

typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 33 "/usr/include/libio.h" 2 3 4
# 166 "/usr/include/libio.h" 3 4
struct _IO_jump_t; struct _IO_FILE;
# 176 "/usr/include/libio.h" 3 4
typedef void _IO_lock_t;





struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;



  int _pos;
# 199 "/usr/include/libio.h" 3 4
};


enum __codecvt_result
{
  __codecvt_ok,
  __codecvt_partial,
  __codecvt_error,
  __codecvt_noconv
};
# 267 "/usr/include/libio.h" 3 4
struct _IO_FILE {
  int _flags;




  char* _IO_read_ptr;
  char* _IO_read_end;
  char* _IO_read_base;
  char* _IO_write_base;
  char* _IO_write_ptr;
  char* _IO_write_end;
  char* _IO_buf_base;
  char* _IO_buf_end;

  char *_IO_save_base;
  char *_IO_backup_base;
  char *_IO_save_end;

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;



  int _flags2;

  __off_t _old_offset;



  unsigned short _cur_column;
  signed char _vtable_offset;
  char _shortbuf[1];



  _IO_lock_t *_lock;
# 315 "/usr/include/libio.h" 3 4
  __off64_t _offset;
# 324 "/usr/include/libio.h" 3 4
  void *__pad1;
  void *__pad2;
  void *__pad3;
  void *__pad4;
  size_t __pad5;

  int _mode;

  char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];

};


typedef struct _IO_FILE _IO_FILE;


struct _IO_FILE_plus;

extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 360 "/usr/include/libio.h" 3 4
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);







typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
     size_t __n);







typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);


typedef int __io_close_fn (void *__cookie);
# 412 "/usr/include/libio.h" 3 4
extern int __underflow (_IO_FILE *) __attribute__ ((__nothrow__));
extern int __uflow (_IO_FILE *) __attribute__ ((__nothrow__));
extern int __overflow (_IO_FILE *, int) __attribute__ ((__nothrow__));
extern wint_t __wunderflow (_IO_FILE *) __attribute__ ((__nothrow__));
extern wint_t __wuflow (_IO_FILE *) __attribute__ ((__nothrow__));
extern wint_t __woverflow (_IO_FILE *, wint_t) __attribute__ ((__nothrow__));
# 450 "/usr/include/libio.h" 3 4
extern int _IO_getc (_IO_FILE *__fp) __attribute__ ((__nothrow__));
extern int _IO_putc (int __c, _IO_FILE *__fp) __attribute__ ((__nothrow__));
extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));

extern int _IO_peekc_locked (_IO_FILE *__fp) __attribute__ ((__nothrow__));





extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
# 480 "/usr/include/libio.h" 3 4
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
   __gnuc_va_list, int *__restrict);
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
    __gnuc_va_list);
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) __attribute__ ((__nothrow__));
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) __attribute__ ((__nothrow__));

extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) __attribute__ ((__nothrow__));
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) __attribute__ ((__nothrow__));

extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
# 73 "/usr/include/stdio.h" 2 3 4
# 86 "/usr/include/stdio.h" 3 4


typedef _G_fpos_t fpos_t;





typedef _G_fpos64_t fpos64_t;
# 138 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/bits/stdio_lim.h" 1 3 4
# 139 "/usr/include/stdio.h" 2 3 4



extern struct _IO_FILE *stdin;
extern struct _IO_FILE *stdout;
extern struct _IO_FILE *stderr;









extern int remove (__const char *__filename) __attribute__ ((__nothrow__));

extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));














extern FILE *tmpfile (void);
# 181 "/usr/include/stdio.h" 3 4
extern FILE *tmpfile64 (void);



extern char *tmpnam (char *__s) __attribute__ ((__nothrow__));





extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__));
# 203 "/usr/include/stdio.h" 3 4
extern char *tempnam (__const char *__dir, __const char *__pfx)
     __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));








extern int fclose (FILE *__stream);




extern int fflush (FILE *__stream);

# 228 "/usr/include/stdio.h" 3 4
extern int fflush_unlocked (FILE *__stream);
# 242 "/usr/include/stdio.h" 3 4






extern FILE *fopen (__const char *__restrict __filename,
      __const char *__restrict __modes);




extern FILE *freopen (__const char *__restrict __filename,
        __const char *__restrict __modes,
        FILE *__restrict __stream);
# 269 "/usr/include/stdio.h" 3 4


extern FILE *fopen64 (__const char *__restrict __filename,
        __const char *__restrict __modes);
extern FILE *freopen64 (__const char *__restrict __filename,
   __const char *__restrict __modes,
   FILE *__restrict __stream);




extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__));
# 306 "/usr/include/stdio.h" 3 4



extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));



extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
      int __modes, size_t __n) __attribute__ ((__nothrow__));





extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
         size_t __size) __attribute__ ((__nothrow__));


extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));








extern int fprintf (FILE *__restrict __stream,
      __const char *__restrict __format, ...);




extern int printf (__const char *__restrict __format, ...);

extern int sprintf (char *__restrict __s,
      __const char *__restrict __format, ...) __attribute__ ((__nothrow__));





extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
       __gnuc_va_list __arg);




extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);

extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
       __gnuc_va_list __arg) __attribute__ ((__nothrow__));





extern int snprintf (char *__restrict __s, size_t __maxlen,
       __const char *__restrict __format, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));

extern int vsnprintf (char *__restrict __s, size_t __maxlen,
        __const char *__restrict __format, __gnuc_va_list __arg)
     __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));

# 400 "/usr/include/stdio.h" 3 4





extern int fscanf (FILE *__restrict __stream,
     __const char *__restrict __format, ...) ;




extern int scanf (__const char *__restrict __format, ...) ;

extern int sscanf (__const char *__restrict __s,
     __const char *__restrict __format, ...) __attribute__ ((__nothrow__));

# 442 "/usr/include/stdio.h" 3 4





extern int fgetc (FILE *__stream);
extern int getc (FILE *__stream);





extern int getchar (void);

# 466 "/usr/include/stdio.h" 3 4
extern int getc_unlocked (FILE *__stream);
extern int getchar_unlocked (void);
# 477 "/usr/include/stdio.h" 3 4
extern int fgetc_unlocked (FILE *__stream);











extern int fputc (int __c, FILE *__stream);
extern int putc (int __c, FILE *__stream);





extern int putchar (int __c);

# 510 "/usr/include/stdio.h" 3 4
extern int fputc_unlocked (int __c, FILE *__stream);







extern int putc_unlocked (int __c, FILE *__stream);
extern int putchar_unlocked (int __c);






extern int getw (FILE *__stream);


extern int putw (int __w, FILE *__stream);








extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
     ;






extern char *gets (char *__s) ;

# 591 "/usr/include/stdio.h" 3 4





extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);





extern int puts (__const char *__s);






extern int ungetc (int __c, FILE *__stream);






extern size_t fread (void *__restrict __ptr, size_t __size,
       size_t __n, FILE *__restrict __stream) ;




extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
        size_t __n, FILE *__restrict __s) ;

# 644 "/usr/include/stdio.h" 3 4
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
         size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
          size_t __n, FILE *__restrict __stream) ;








extern int fseek (FILE *__stream, long int __off, int __whence);




extern long int ftell (FILE *__stream) ;




extern void rewind (FILE *__stream);

# 680 "/usr/include/stdio.h" 3 4
extern int fseeko (FILE *__stream, __off_t __off, int __whence);




extern __off_t ftello (FILE *__stream) ;
# 699 "/usr/include/stdio.h" 3 4






extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);




extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
# 722 "/usr/include/stdio.h" 3 4



extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
extern __off64_t ftello64 (FILE *__stream) ;
extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);




extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));

extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ;

extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ;




extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;








extern void perror (__const char *__s);






# 1 "/usr/include/bits/sys_errlist.h" 1 3 4
# 27 "/usr/include/bits/sys_errlist.h" 3 4
extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 761 "/usr/include/stdio.h" 2 3 4




extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ;




extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
# 780 "/usr/include/stdio.h" 3 4
extern FILE *popen (__const char *__command, __const char *__modes) ;





extern int pclose (FILE *__stream);





extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
# 820 "/usr/include/stdio.h" 3 4
extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));



extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ;


extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
# 841 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/bits/stdio.h" 1 3 4
# 33 "/usr/include/bits/stdio.h" 3 4
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
  return vfprintf (stdout, __fmt, __arg);
}


extern __inline int
getchar (void)
{
  return _IO_getc (stdin);
}




extern __inline int
getc_unlocked (FILE *__fp)
{
  return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}


extern __inline int
getchar_unlocked (void)
{
  return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}




extern __inline int
putchar (int __c)
{
  return _IO_putc (__c, stdout);
}




extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
  return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}





extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
  return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}


extern __inline int
putchar_unlocked (int __c)
{
  return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 111 "/usr/include/bits/stdio.h" 3 4
extern __inline int
__attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x10) != 0);
}


extern __inline int
__attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x20) != 0);
}
# 842 "/usr/include/stdio.h" 2 3 4
# 850 "/usr/include/stdio.h" 3 4

# 35 "../../../camel/camel-object.h" 2
# 1 "/usr/include/stdlib.h" 1 3 4
# 33 "/usr/include/stdlib.h" 3 4
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 34 "/usr/include/stdlib.h" 2 3 4


# 96 "/usr/include/stdlib.h" 3 4


typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;



# 140 "/usr/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ;




extern double atof (__const char *__nptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;

extern int atoi (__const char *__nptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;

extern long int atol (__const char *__nptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;





__extension__ extern long long int atoll (__const char *__nptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;





extern double strtod (__const char *__restrict __nptr,
        char **__restrict __endptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

# 182 "/usr/include/stdlib.h" 3 4


extern long int strtol (__const char *__restrict __nptr,
   char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

extern unsigned long int strtoul (__const char *__restrict __nptr,
      char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;




__extension__
extern long long int strtoq (__const char *__restrict __nptr,
        char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
           char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;





__extension__
extern long long int strtoll (__const char *__restrict __nptr,
         char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
     char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

# 279 "/usr/include/stdlib.h" 3 4
extern double __strtod_internal (__const char *__restrict __nptr,
     char **__restrict __endptr, int __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern float __strtof_internal (__const char *__restrict __nptr,
    char **__restrict __endptr, int __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern long double __strtold_internal (__const char *__restrict __nptr,
           char **__restrict __endptr,
           int __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;

extern long int __strtol_internal (__const char *__restrict __nptr,
       char **__restrict __endptr,
       int __base, int __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
          char **__restrict __endptr,
          int __base, int __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;




__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
      char **__restrict __endptr,
      int __base, int __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



__extension__
extern unsigned long long int __strtoull_internal (__const char *
         __restrict __nptr,
         char **__restrict __endptr,
         int __base, int __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;








extern __inline double
__attribute__ ((__nothrow__)) strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
  return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
__attribute__ ((__nothrow__)) strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base)

{
  return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
__attribute__ ((__nothrow__)) strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base)

{
  return __strtoul_internal (__nptr, __endptr, __base, 0);
}

# 364 "/usr/include/stdlib.h" 3 4
__extension__ extern __inline long long int
__attribute__ ((__nothrow__)) strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base)

{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
__attribute__ ((__nothrow__)) strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base)

{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}




__extension__ extern __inline long long int
__attribute__ ((__nothrow__)) strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base)

{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
__attribute__ ((__nothrow__)) strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base)

{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}




extern __inline double
__attribute__ ((__nothrow__)) atof (__const char *__nptr)
{
  return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
__attribute__ ((__nothrow__)) atoi (__const char *__nptr)
{
  return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
__attribute__ ((__nothrow__)) atol (__const char *__nptr)
{
  return strtol (__nptr, (char **) ((void *)0), 10);
}




__extension__ extern __inline long long int
__attribute__ ((__nothrow__)) atoll (__const char *__nptr)
{
  return strtoll (__nptr, (char **) ((void *)0), 10);
}

# 429 "/usr/include/stdlib.h" 3 4
extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ;


extern long int a64l (__const char *__s)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;




# 1 "/usr/include/sys/types.h" 1 3 4
# 29 "/usr/include/sys/types.h" 3 4






typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;




typedef __loff_t loff_t;



typedef __ino_t ino_t;






typedef __ino64_t ino64_t;




typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;






typedef __off64_t off64_t;
# 105 "/usr/include/sys/types.h" 3 4
typedef __id_t id_t;




typedef __ssize_t ssize_t;





typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;
# 147 "/usr/include/sys/types.h" 3 4
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 148 "/usr/include/sys/types.h" 2 3 4



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 195 "/usr/include/sys/types.h" 3 4
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));


typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));

typedef int register_t __attribute__ ((__mode__ (__word__)));
# 217 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/endian.h" 1 3 4
# 37 "/usr/include/endian.h" 3 4
# 1 "/usr/include/bits/endian.h" 1 3 4
# 38 "/usr/include/endian.h" 2 3 4
# 218 "/usr/include/sys/types.h" 2 3 4


# 1 "/usr/include/sys/select.h" 1 3 4
# 31 "/usr/include/sys/select.h" 3 4
# 1 "/usr/include/bits/select.h" 1 3 4
# 32 "/usr/include/sys/select.h" 2 3 4


# 1 "/usr/include/bits/sigset.h" 1 3 4
# 23 "/usr/include/bits/sigset.h" 3 4
typedef int __sig_atomic_t;




typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  } __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3 4



typedef __sigset_t sigset_t;







# 1 "/usr/include/bits/time.h" 1 3 4
# 69 "/usr/include/bits/time.h" 3 4
struct timeval
  {
    __time_t tv_sec;
    __suseconds_t tv_usec;
  };
# 47 "/usr/include/sys/select.h" 2 3 4


typedef __suseconds_t suseconds_t;





typedef long int __fd_mask;
# 67 "/usr/include/sys/select.h" 3 4
typedef struct
  {






    __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];


  } fd_set;






typedef __fd_mask fd_mask;
# 99 "/usr/include/sys/select.h" 3 4

# 109 "/usr/include/sys/select.h" 3 4
extern int select (int __nfds, fd_set *__restrict __readfds,
     fd_set *__restrict __writefds,
     fd_set *__restrict __exceptfds,
     struct timeval *__restrict __timeout);
# 121 "/usr/include/sys/select.h" 3 4
extern int pselect (int __nfds, fd_set *__restrict __readfds,
      fd_set *__restrict __writefds,
      fd_set *__restrict __exceptfds,
      const struct timespec *__restrict __timeout,
      const __sigset_t *__restrict __sigmask);



# 221 "/usr/include/sys/types.h" 2 3 4


# 1 "/usr/include/sys/sysmacros.h" 1 3 4
# 29 "/usr/include/sys/sysmacros.h" 3 4
__extension__
extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
     __attribute__ ((__nothrow__));
__extension__
extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
     __attribute__ ((__nothrow__));
__extension__
extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
       unsigned int __minor)
     __attribute__ ((__nothrow__));


__extension__ extern __inline unsigned int
__attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
{
  return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
}

__extension__ extern __inline unsigned int
__attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
{
  return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
}

__extension__ extern __inline unsigned long long int
__attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
{
  return ((__minor & 0xff) | ((__major & 0xfff) << 8)
   | (((unsigned long long int) (__minor & ~0xff)) << 12)
   | (((unsigned long long int) (__major & ~0xfff)) << 32));
}
# 224 "/usr/include/sys/types.h" 2 3 4
# 235 "/usr/include/sys/types.h" 3 4
typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 262 "/usr/include/sys/types.h" 3 4
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;





# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
# 36 "/usr/include/bits/pthreadtypes.h" 3 4
typedef unsigned long int pthread_t;


typedef union
{
  char __size[36];
  long int __align;
} pthread_attr_t;


typedef struct __pthread_internal_slist
{
  struct __pthread_internal_slist *__next;
} __pthread_slist_t;




typedef union
{
  struct __pthread_mutex_s
  {
    int __lock;
    unsigned int __count;
    int __owner;


    int __kind;
    unsigned int __nusers;
    __extension__ union
    {
      int __spins;
      __pthread_slist_t __list;
    };
  } __data;
  char __size[24];
  long int __align;
} pthread_mutex_t;

typedef union
{
  char __size[4];
  long int __align;
} pthread_mutexattr_t;




typedef union
{
  struct
  {
    int __lock;
    unsigned int __futex;
    __extension__ unsigned long long int __total_seq;
    __extension__ unsigned long long int __wakeup_seq;
    __extension__ unsigned long long int __woken_seq;
    void *__mutex;
    unsigned int __nwaiters;
    unsigned int __broadcast_seq;
  } __data;
  char __size[48];
  __extension__ long long int __align;
} pthread_cond_t;

typedef union
{
  char __size[4];
  long int __align;
} pthread_condattr_t;



typedef unsigned int pthread_key_t;



typedef int pthread_once_t;





typedef union
{
  struct
  {
    int __lock;
    unsigned int __nr_readers;
    unsigned int __readers_wakeup;
    unsigned int __writer_wakeup;
    unsigned int __nr_readers_queued;
    unsigned int __nr_writers_queued;


    unsigned int __flags;
    int __writer;
  } __data;
  char __size[32];
  long int __align;
} pthread_rwlock_t;

typedef union
{
  char __size[8];
  long int __align;
} pthread_rwlockattr_t;





typedef volatile int pthread_spinlock_t;




typedef union
{
  char __size[20];
  long int __align;
} pthread_barrier_t;

typedef union
{
  char __size[4];
  int __align;
} pthread_barrierattr_t;
# 271 "/usr/include/sys/types.h" 2 3 4



# 439 "/usr/include/stdlib.h" 2 3 4






extern long int random (void) __attribute__ ((__nothrow__));


extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));





extern char *initstate (unsigned int __seed, char *__statebuf,
   size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));



extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));







struct random_data
  {
    int32_t *fptr;
    int32_t *rptr;
    int32_t *state;
    int rand_type;
    int rand_deg;
    int rand_sep;
    int32_t *end_ptr;
  };

extern int random_r (struct random_data *__restrict __buf,
       int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

extern int srandom_r (unsigned int __seed, struct random_data *__buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
   size_t __statelen,
   struct random_data *__restrict __buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));

extern int setstate_r (char *__restrict __statebuf,
         struct random_data *__restrict __buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));






extern int rand (void) __attribute__ ((__nothrow__));

extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));




extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));







extern double drand48 (void) __attribute__ ((__nothrow__));
extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern long int lrand48 (void) __attribute__ ((__nothrow__));
extern long int nrand48 (unsigned short int __xsubi[3])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern long int mrand48 (void) __attribute__ ((__nothrow__));
extern long int jrand48 (unsigned short int __xsubi[3])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    unsigned long long int __a;
  };


extern int drand48_r (struct drand48_data *__restrict __buffer,
        double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int erand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern int lrand48_r (struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int nrand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern int mrand48_r (struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int jrand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));

extern int seed48_r (unsigned short int __seed16v[3],
       struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

extern int lcong48_r (unsigned short int __param[7],
        struct drand48_data *__buffer)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));









extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;

extern void *calloc (size_t __nmemb, size_t __size)
     __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;







extern void *realloc (void *__ptr, size_t __size)
     __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));

extern void free (void *__ptr) __attribute__ ((__nothrow__));




extern void cfree (void *__ptr) __attribute__ ((__nothrow__));



# 1 "/usr/include/alloca.h" 1 3 4
# 25 "/usr/include/alloca.h" 3 4
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 26 "/usr/include/alloca.h" 2 3 4







extern void *alloca (size_t __size) __attribute__ ((__nothrow__));






# 613 "/usr/include/stdlib.h" 2 3 4




extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;




extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;




extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));



extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));





extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));






extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));

# 658 "/usr/include/stdlib.h" 3 4


extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;




extern char *__secure_getenv (__const char *__name)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;





extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));





extern int setenv (__const char *__name, __const char *__value, int __replace)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));


extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));






extern int clearenv (void) __attribute__ ((__nothrow__));
# 698 "/usr/include/stdlib.h" 3 4
extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 709 "/usr/include/stdlib.h" 3 4
extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 719 "/usr/include/stdlib.h" 3 4
extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 729 "/usr/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;








extern int system (__const char *__command) ;

# 757 "/usr/include/stdlib.h" 3 4
extern char *realpath (__const char *__restrict __name,
         char *__restrict __resolved) __attribute__ ((__nothrow__)) ;






typedef int (*__compar_fn_t) (__const void *, __const void *);









extern void *bsearch (__const void *__key, __const void *__base,
        size_t __nmemb, size_t __size, __compar_fn_t __compar)
     __attribute__ ((__nonnull__ (1, 2, 5))) ;



extern void qsort (void *__base, size_t __nmemb, size_t __size,
     __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));



extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;












extern div_t div (int __numer, int __denom)
     __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
extern ldiv_t ldiv (long int __numer, long int __denom)
     __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;

# 822 "/usr/include/stdlib.h" 3 4
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;




extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;




extern char *gcvt (double __value, int __ndigit, char *__buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;




extern char *qecvt (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qfcvt (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;




extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign, char *__restrict __buf,
     size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign, char *__restrict __buf,
     size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));

extern int qecvt_r (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qfcvt_r (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));







extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ;


extern int mbtowc (wchar_t *__restrict __pwc,
     __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ;


extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ;



extern size_t mbstowcs (wchar_t *__restrict __pwcs,
   __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));

extern size_t wcstombs (char *__restrict __s,
   __const wchar_t *__restrict __pwcs, size_t __n)
     __attribute__ ((__nothrow__));








extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 927 "/usr/include/stdlib.h" 3 4
extern int posix_openpt (int __oflag) ;
# 962 "/usr/include/stdlib.h" 3 4
extern int getloadavg (double __loadavg[], int __nelem)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 978 "/usr/include/stdlib.h" 3 4

# 36 "../../../camel/camel-object.h" 2

# 1 "/usr/include/pthread.h" 1 3 4
# 23 "/usr/include/pthread.h" 3 4
# 1 "/usr/include/sched.h" 1 3 4
# 32 "/usr/include/sched.h" 3 4
# 1 "/usr/include/bits/sched.h" 1 3 4
# 65 "/usr/include/bits/sched.h" 3 4
struct sched_param
  {
    int __sched_priority;
  };





extern int clone (int (*__fn) (void *__arg), void *__child_stack,
    int __flags, void *__arg, ...) __attribute__ ((__nothrow__));


extern int unshare (int __flags) __attribute__ ((__nothrow__));










struct __sched_param
  {
    int __sched_priority;
  };
# 104 "/usr/include/bits/sched.h" 3 4
typedef unsigned long int __cpu_mask;






typedef struct
{
  __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
} cpu_set_t;
# 33 "/usr/include/sched.h" 2 3 4







extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
     __attribute__ ((__nothrow__));


extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__));


extern int sched_setscheduler (__pid_t __pid, int __policy,
          __const struct sched_param *__param) __attribute__ ((__nothrow__));


extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__));


extern int sched_yield (void) __attribute__ ((__nothrow__));


extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__));


extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__));


extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__));
# 84 "/usr/include/sched.h" 3 4

# 24 "/usr/include/pthread.h" 2 3 4



# 1 "/usr/include/signal.h" 1 3 4
# 31 "/usr/include/signal.h" 3 4


# 1 "/usr/include/bits/sigset.h" 1 3 4
# 34 "/usr/include/signal.h" 2 3 4
# 400 "/usr/include/signal.h" 3 4

# 28 "/usr/include/pthread.h" 2 3 4

# 1 "/usr/include/bits/setjmp.h" 1 3 4
# 29 "/usr/include/bits/setjmp.h" 3 4
typedef int __jmp_buf[6];
# 30 "/usr/include/pthread.h" 2 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 31 "/usr/include/pthread.h" 2 3 4



enum
{
  PTHREAD_CREATE_JOINABLE,

  PTHREAD_CREATE_DETACHED

};



enum
{
  PTHREAD_MUTEX_TIMED_NP,
  PTHREAD_MUTEX_RECURSIVE_NP,
  PTHREAD_MUTEX_ERRORCHECK_NP,
  PTHREAD_MUTEX_ADAPTIVE_NP
# 61 "/usr/include/pthread.h" 3 4
};
# 113 "/usr/include/pthread.h" 3 4
enum
{
  PTHREAD_RWLOCK_PREFER_READER_NP,
  PTHREAD_RWLOCK_PREFER_WRITER_NP,
  PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
  PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
};
# 143 "/usr/include/pthread.h" 3 4
enum
{
  PTHREAD_INHERIT_SCHED,

  PTHREAD_EXPLICIT_SCHED

};



enum
{
  PTHREAD_SCOPE_SYSTEM,

  PTHREAD_SCOPE_PROCESS

};



enum
{
  PTHREAD_PROCESS_PRIVATE,

  PTHREAD_PROCESS_SHARED

};
# 178 "/usr/include/pthread.h" 3 4
struct _pthread_cleanup_buffer
{
  void (*__routine) (void *);
  void *__arg;
  int __canceltype;
  struct _pthread_cleanup_buffer *__prev;
};


enum
{
  PTHREAD_CANCEL_ENABLE,

  PTHREAD_CANCEL_DISABLE

};
enum
{
  PTHREAD_CANCEL_DEFERRED,

  PTHREAD_CANCEL_ASYNCHRONOUS

};
# 216 "/usr/include/pthread.h" 3 4





extern int pthread_create (pthread_t *__restrict __newthread,
      __const pthread_attr_t *__restrict __attr,
      void *(*__start_routine) (void *),
      void *__restrict __arg) __attribute__ ((__nothrow__));





extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));







extern int pthread_join (pthread_t __th, void **__thread_return);
# 259 "/usr/include/pthread.h" 3 4
extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__));



extern pthread_t pthread_self (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));


extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __attribute__ ((__nothrow__));







extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_attr_destroy (pthread_attr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
     int *__detachstate) __attribute__ ((__nothrow__));


extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
     int __detachstate) __attribute__ ((__nothrow__));



extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
          size_t *__guardsize) __attribute__ ((__nothrow__));


extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
          size_t __guardsize) __attribute__ ((__nothrow__));



extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
           __attr,
           struct sched_param *__restrict __param)
     __attribute__ ((__nothrow__));


extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
           __const struct sched_param *__restrict
           __param) __attribute__ ((__nothrow__));


extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
     __attr, int *__restrict __policy)
     __attribute__ ((__nothrow__));


extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
     __attribute__ ((__nothrow__));


extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
      __attr, int *__restrict __inherit)
     __attribute__ ((__nothrow__));


extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
      int __inherit) __attribute__ ((__nothrow__));



extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
      int *__restrict __scope) __attribute__ ((__nothrow__));


extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
     __attribute__ ((__nothrow__));


extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
          __attr, void **__restrict __stackaddr)
     __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));





extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
          void *__stackaddr)
     __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));


extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
          __attr, size_t *__restrict __stacksize)
     __attribute__ ((__nothrow__));




extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
          size_t __stacksize) __attribute__ ((__nothrow__));



extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
      void **__restrict __stackaddr,
      size_t *__restrict __stacksize) __attribute__ ((__nothrow__));




extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
      size_t __stacksize) __attribute__ ((__nothrow__));
# 397 "/usr/include/pthread.h" 3 4
extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
      __const struct sched_param *__param)
     __attribute__ ((__nothrow__));


extern int pthread_getschedparam (pthread_t __target_thread,
      int *__restrict __policy,
      struct sched_param *__restrict __param)
     __attribute__ ((__nothrow__));


extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
     __attribute__ ((__nothrow__));
# 448 "/usr/include/pthread.h" 3 4
extern int pthread_once (pthread_once_t *__once_control,
    void (*__init_routine) (void));
# 460 "/usr/include/pthread.h" 3 4
extern int pthread_setcancelstate (int __state, int *__oldstate);



extern int pthread_setcanceltype (int __type, int *__oldtype);


extern int pthread_cancel (pthread_t __th);




extern void pthread_testcancel (void);




typedef struct
{
  struct
  {
    __jmp_buf __cancel_jmp_buf;
    int __mask_was_saved;
  } __cancel_jmp_buf[1];
  void *__pad[4];
} __pthread_unwind_buf_t __attribute__ ((__aligned__));
# 494 "/usr/include/pthread.h" 3 4
struct __pthread_cleanup_frame
{
  void (*__cancel_routine) (void *);
  void *__cancel_arg;
  int __do_it;
  int __cancel_type;
};
# 634 "/usr/include/pthread.h" 3 4
extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
     __attribute__ ((__regparm__ (1)));
# 645 "/usr/include/pthread.h" 3 4
extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
  __attribute__ ((__regparm__ (1)));
# 685 "/usr/include/pthread.h" 3 4
extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
     __attribute__ ((__regparm__ (1))) __attribute__ ((__noreturn__))

     __attribute__ ((__weak__))

     ;



struct __jmp_buf_tag;
extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__));





extern int pthread_mutex_init (pthread_mutex_t *__mutex,
          __const pthread_mutexattr_t *__mutexattr)
     __attribute__ ((__nothrow__));


extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__));


extern int pthread_mutex_trylock (pthread_mutex_t *_mutex) __attribute__ ((__nothrow__));


extern int pthread_mutex_lock (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__));



extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
                                    __const struct timespec *__restrict
                                    __abstime) __attribute__ ((__nothrow__));



extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__));
# 751 "/usr/include/pthread.h" 3 4
extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
      __restrict __attr,
      int *__restrict __pshared) __attribute__ ((__nothrow__));


extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
      int __pshared) __attribute__ ((__nothrow__));
# 813 "/usr/include/pthread.h" 3 4
extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
    __const pthread_rwlockattr_t *__restrict
    __attr) __attribute__ ((__nothrow__));


extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));


extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));


extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));



extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
           __const struct timespec *__restrict
           __abstime) __attribute__ ((__nothrow__));



extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));


extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));



extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
           __const struct timespec *__restrict
           __abstime) __attribute__ ((__nothrow__));



extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__));





extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
       __restrict __attr,
       int *__restrict __pshared) __attribute__ ((__nothrow__));


extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
       int __pshared) __attribute__ ((__nothrow__));


extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
       __restrict __attr,
       int *__restrict __pref) __attribute__ ((__nothrow__));


extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
       int __pref) __attribute__ ((__nothrow__));







extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
         __const pthread_condattr_t *__restrict
         __cond_attr) __attribute__ ((__nothrow__));


extern int pthread_cond_destroy (pthread_cond_t *__cond) __attribute__ ((__nothrow__));


extern int pthread_cond_signal (pthread_cond_t *__cond) __attribute__ ((__nothrow__));


extern int pthread_cond_broadcast (pthread_cond_t *__cond) __attribute__ ((__nothrow__));






extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
         pthread_mutex_t *__restrict __mutex);
# 910 "/usr/include/pthread.h" 3 4
extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
       pthread_mutex_t *__restrict __mutex,
       __const struct timespec *__restrict
       __abstime);




extern int pthread_condattr_init (pthread_condattr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_condattr_getpshared (__const pthread_condattr_t *
                                        __restrict __attr,
                                        int *__restrict __pshared) __attribute__ ((__nothrow__));


extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
                                        int __pshared) __attribute__ ((__nothrow__));



extern int pthread_condattr_getclock (__const pthread_condattr_t *
          __restrict __attr,
          __clockid_t *__restrict __clock_id)
     __attribute__ ((__nothrow__));


extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
          __clockid_t __clock_id) __attribute__ ((__nothrow__));
# 951 "/usr/include/pthread.h" 3 4
extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
     __attribute__ ((__nothrow__));


extern int pthread_spin_destroy (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__));


extern int pthread_spin_lock (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__));


extern int pthread_spin_trylock (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__));


extern int pthread_spin_unlock (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__));






extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
     __const pthread_barrierattr_t *__restrict
     __attr, unsigned int __count) __attribute__ ((__nothrow__));


extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __attribute__ ((__nothrow__));


extern int pthread_barrier_wait (pthread_barrier_t *__barrier) __attribute__ ((__nothrow__));



extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __attribute__ ((__nothrow__));


extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
        __restrict __attr,
        int *__restrict __pshared) __attribute__ ((__nothrow__));


extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
                                           int __pshared) __attribute__ ((__nothrow__));
# 1007 "/usr/include/pthread.h" 3 4
extern int pthread_key_create (pthread_key_t *__key,
          void (*__destr_function) (void *)) __attribute__ ((__nothrow__));


extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__));


extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__));


extern int pthread_setspecific (pthread_key_t __key,
    __const void *__pointer) __attribute__ ((__nothrow__));




extern int pthread_getcpuclockid (pthread_t __thread_id,
      __clockid_t *__clock_id) __attribute__ ((__nothrow__));
# 1039 "/usr/include/pthread.h" 3 4
extern int pthread_atfork (void (*__prepare) (void),
      void (*__parent) (void),
      void (*__child) (void)) __attribute__ ((__nothrow__));


# 38 "../../../camel/camel-object.h" 2

# 1 "../../../camel/camel-arg.h" 1
# 34 "../../../camel/camel-arg.h"
enum camel_arg_t {
 CAMEL_ARG_END = 0,
 CAMEL_ARG_IGNORE = 1,

 CAMEL_ARG_FIRST = 1024,

 CAMEL_ARG_TYPE = 0xf0000000,
 CAMEL_ARG_TAG = 0x0fffffff,

 CAMEL_ARG_OBJ = 0x00000000,
 CAMEL_ARG_INT = 0x10000000,
 CAMEL_ARG_DBL = 0x20000000,
 CAMEL_ARG_STR = 0x30000000,
 CAMEL_ARG_PTR = 0x40000000,
 CAMEL_ARG_BOO = 0x50000000,
};

typedef struct _CamelArg CamelArg;
typedef struct _CamelArgV CamelArgV;

typedef struct _CamelArgGet CamelArgGet;
typedef struct _CamelArgGetV CamelArgGetV;

struct _CamelArg {
 guint32 tag;
 union {
  void *ca_object;
  int ca_int;
  double ca_double;
  char *ca_str;
  void *ca_ptr;
 } u;
};
struct _CamelArgGet {
 guint32 tag;
 union {
  void **ca_object;
  int *ca_int;
  double *ca_double;
  char **ca_str;
  void **ca_ptr;
 } u;
};
# 86 "../../../camel/camel-arg.h"
struct _CamelArgV {
 va_list ap;
 int argc;
 CamelArg argv[(20)];
};

struct _CamelArgGetV {
 va_list ap;
 int argc;
 CamelArgGet argv[(20)];
};



int camel_argv_build(CamelArgV *tv);
int camel_arggetv_build(CamelArgGetV *tv);





typedef struct _CamelProperty CamelProperty;

struct _CamelProperty {
 guint32 tag;
 char *name;
 char *description;
};
# 40 "../../../camel/camel-object.h" 2
# 1 "../../../camel/camel-types.h" 1
# 29 "../../../camel/camel-types.h"
typedef struct _CamelAddress CamelAddress;
typedef struct _CamelDigestFolder CamelDigestFolder;
typedef struct _CamelDigestStore CamelDigestStore;
typedef struct _CamelDiscoDiary CamelDiscoDiary;
typedef struct _CamelDiscoFolder CamelDiscoFolder;
typedef struct _CamelDiscoStore CamelDiscoStore;
typedef struct _CamelDataWrapper CamelDataWrapper;
typedef struct _CamelException CamelException;
typedef struct _CamelFilterDriver CamelFilterDriver;
typedef struct _CamelFolder CamelFolder;
typedef struct _CamelFolderSearch CamelFolderSearch;
typedef struct _CamelFolderSummary CamelFolderSummary;
typedef struct _CamelInternetAddress CamelInternetAddress;
typedef struct _CamelMedium CamelMedium;
typedef struct _CamelMessageContentInfo CamelMessageContentInfo;
typedef struct _CamelMimeFilter CamelMimeFilter;
typedef struct _CamelMimeFilterBasic CamelMimeFilterBasic;
typedef struct _CamelMimeFilterBestenc CamelMimeFilterBestenc;
typedef struct _CamelMimeFilterCharset CamelMimeFilterCharset;
typedef struct _CamelMimeFilterChomp CamelMimeFilterChomp;
typedef struct _CamelMimeFilterIndex CamelMimeFilterIndex;
typedef struct _CamelMimeFilterLinewrap CamelMimeFilterLinewrap;
typedef struct _CamelMimeFilterSave CamelMimeFilterSave;
typedef struct _CamelMimeFilterCRLF CamelMimeFilterCRLF;
typedef struct _CamelMimeMessage CamelMimeMessage;
typedef struct _CamelMimeParser CamelMimeParser;
typedef struct _CamelMimePart CamelMimePart;
typedef struct _CamelMultipart CamelMultipart;
typedef struct _CamelNewsAddress CamelNewsAddress;
typedef struct _CamelSeekableStream CamelSeekableStream;
typedef struct _CamelSeekableSubstream CamelSeekableSubstream;
typedef struct _CamelService CamelService;
typedef struct _CamelSession CamelSession;
typedef struct _CamelSimpleDataWrapper CamelSimpleDataWrapper;
typedef struct _CamelStore CamelStore;
typedef struct _CamelStream CamelStream;
typedef struct _CamelStreamNull CamelStreamNull;
typedef struct _CamelStreamBuffer CamelStreamBuffer;
typedef struct _CamelStreamDataWrapper CamelStreamDataWrapper;
typedef struct _CamelStreamFilter CamelStreamFilter;
typedef struct _CamelStreamFs CamelStreamFs;
typedef struct _CamelStreamMem CamelStreamMem;
typedef struct _CamelTcpStream CamelTcpStream;
typedef struct _CamelTcpStreamRaw CamelTcpStreamRaw;
typedef struct _CamelTcpStreamSSL CamelTcpStreamSSL;
typedef struct _CamelTcpStreamOpenSSL CamelTcpStreamOpenSSL;
typedef struct _CamelHttpStream CamelHttpStream;
typedef struct _CamelTransport CamelTransport;
# 41 "../../../camel/camel-object.h" 2




typedef struct _CamelObjectClass *CamelType;
# 57 "../../../camel/camel-object.h"
extern CamelType camel_object_type;
# 70 "../../../camel/camel-object.h"
typedef struct _CamelObjectClass CamelObjectClass;
typedef struct _CamelObject CamelObject;
typedef unsigned int CamelObjectHookID;
typedef struct _CamelObjectMeta CamelObjectMeta;

extern CamelType camel_interface_type;

typedef struct _CamelInterface CamelInterface;

typedef void (*CamelObjectClassInitFunc) (CamelObjectClass *);
typedef void (*CamelObjectClassFinalizeFunc) (CamelObjectClass *);
typedef void (*CamelObjectInitFunc) (CamelObject *, CamelObjectClass *);
typedef void (*CamelObjectFinalizeFunc) (CamelObject *);

typedef gboolean (*CamelObjectEventPrepFunc) (CamelObject *, gpointer);
typedef void (*CamelObjectEventHookFunc) (CamelObject *, gpointer, gpointer);




enum {

 CAMEL_OBJECT_ARG_DESCRIPTION = CAMEL_ARG_FIRST,
 CAMEL_OBJECT_ARG_METADATA,
 CAMEL_OBJECT_ARG_STATE_FILE,
 CAMEL_OBJECT_ARG_PERSISTENT_PROPERTIES,
};

enum {
 CAMEL_OBJECT_DESCRIPTION = CAMEL_OBJECT_ARG_DESCRIPTION | CAMEL_ARG_STR,

 CAMEL_OBJECT_METADATA = CAMEL_OBJECT_ARG_METADATA | CAMEL_ARG_PTR,

 CAMEL_OBJECT_STATE_FILE = CAMEL_OBJECT_ARG_STATE_FILE | CAMEL_ARG_STR,

 CAMEL_OBJECT_PERSISTENT_PROPERTIES = CAMEL_OBJECT_ARG_PERSISTENT_PROPERTIES | CAMEL_ARG_PTR,
};

typedef enum _CamelObjectFlags {
 CAMEL_OBJECT_DESTROY = (1<<0),
} CamelObjectFlags;


struct _CamelObjectMeta {
 struct _CamelObjectMeta *next;

 char *value;
 char name[1];
};


struct _CamelObject {
 struct _CamelObjectClass *klass;

 guint32 magic;


 struct _CamelHookList *hooks;

 guint32 ref_count:24;
 guint32 flags:8;


 struct _CamelObject *next, *prev;

};

struct _CamelObjectClass
{
 struct _CamelObjectClass *parent;

 guint32 magic;

 struct _CamelObjectClass *next, *child;

 const char *name;

 void *lock;




 unsigned short object_size ;
 unsigned short klass_size ;


 struct _CamelHookPair *hooks;


 struct _EMemChunk *instance_chunks;

 struct _CamelObject *instances;



 void (*klass_init)(struct _CamelObjectClass *);
 void (*klass_finalise)(struct _CamelObjectClass *);


 void (*init)(struct _CamelObject *, struct _CamelObjectClass *);
 void (*finalise)(struct _CamelObject *);




 int (*setv)(struct _CamelObject *, struct _CamelException *ex, CamelArgV *args);
 int (*getv)(struct _CamelObject *, struct _CamelException *ex, CamelArgGetV *args);

 void (*free)(struct _CamelObject *, guint32 tag, void *ptr);


 char *(*meta_get)(struct _CamelObject *, const char * name);
 gboolean (*meta_set)(struct _CamelObject *, const char * name, const char *value);


 int (*state_read)(struct _CamelObject *, FILE *fp);
 int (*state_write)(struct _CamelObject *, FILE *fp);
};


struct _CamelInterface {
 struct _CamelObjectClass type;
};


void camel_type_init (void);
CamelType camel_type_register(CamelType parent, const char * name,
         size_t instance_size,
         size_t classfuncs_size,
         CamelObjectClassInitFunc class_init,
         CamelObjectClassFinalizeFunc class_finalize,
         CamelObjectInitFunc instance_init,
         CamelObjectFinalizeFunc instance_finalize);

CamelType camel_interface_register(CamelType parent, const char *name,
       size_t classfuncs_size,
       CamelObjectClassInitFunc class_init,
       CamelObjectClassFinalizeFunc class_finalize);





const char *camel_type_to_name (CamelType type);
CamelType camel_name_to_type (const char *name);
void camel_object_class_add_event (CamelObjectClass *klass, const char *name, CamelObjectEventPrepFunc prep);
void camel_object_class_add_interface(CamelObjectClass *klass, CamelType itype);

void camel_object_class_dump_tree (CamelType root);


CamelObject *camel_object_cast(CamelObject *obj, CamelType ctype);
gboolean camel_object_is(CamelObject *obj, CamelType ctype);

CamelObjectClass *camel_object_class_cast (CamelObjectClass *klass, CamelType ctype);
gboolean camel_object_class_is (CamelObjectClass *klass, CamelType ctype);

CamelObjectClass *camel_interface_cast(CamelObjectClass *klass, CamelType ctype);
gboolean camel_interface_is(CamelObjectClass *k, CamelType ctype);

CamelType camel_object_get_type (void);

CamelObject *camel_object_new (CamelType type);
CamelObject *camel_object_new_name (const char *name);

void camel_object_ref(void *);
void camel_object_unref(void *);







CamelObjectHookID camel_object_hook_event(void *obj, const char *name, CamelObjectEventHookFunc hook, void *data);
void camel_object_remove_event(void *obj, CamelObjectHookID id);
void camel_object_unhook_event(void *obj, const char *name, CamelObjectEventHookFunc hook, void *data);
void camel_object_trigger_event(void *obj, const char *name, void *event_data);


void *camel_object_get_interface(void *vo, CamelType itype);


int camel_object_set(void *obj, struct _CamelException *ex, ...);
int camel_object_setv(void *obj, struct _CamelException *ex, CamelArgV *);
int camel_object_get(void *obj, struct _CamelException *ex, ...);
int camel_object_getv(void *obj, struct _CamelException *ex, CamelArgGetV *);


void *camel_object_get_ptr(void *vo, CamelException *ex, int tag);
int camel_object_get_int(void *vo, CamelException *ex, int tag);


char *camel_object_meta_get(void *vo, const char * name);
gboolean camel_object_meta_set(void *vo, const char * name, const char *value);


int camel_object_state_read(void *vo);
int camel_object_state_write(void *vo);


void camel_object_free(void *vo, guint32 tag, void *value);


typedef struct _CamelObjectBag CamelObjectBag;
typedef void *(*CamelCopyFunc)(const void *vo);

CamelObjectBag *camel_object_bag_new(GHashFunc hash, GEqualFunc equal, CamelCopyFunc keycopy, GFreeFunc keyfree);
void *camel_object_bag_get(CamelObjectBag *bag, const void *key);
void *camel_object_bag_peek(CamelObjectBag *bag, const void *key);
void *camel_object_bag_reserve(CamelObjectBag *bag, const void *key);
void camel_object_bag_add(CamelObjectBag *bag, const void *key, void *o);
void camel_object_bag_abort(CamelObjectBag *bag, const void *key);
void camel_object_bag_rekey(CamelObjectBag *bag, void *o, const void *newkey);
GPtrArray *camel_object_bag_list(CamelObjectBag *bag);
void camel_object_bag_remove(CamelObjectBag *bag, void *o);
void camel_object_bag_destroy(CamelObjectBag *bag);
# 311 "../../../camel/camel-object.h"
typedef struct _CamelIteratorVTable CamelIteratorVTable;
typedef struct _CamelIterator CamelIterator;

struct _CamelIteratorVTable {

 void (*free)(void *it);

 const void *(*next)(void *it, CamelException *ex);

 void (*reset)(void *it);

 int (*length)(void *it);
};

struct _CamelIterator {
 CamelIteratorVTable *klass;


};

void *camel_iterator_new(CamelIteratorVTable *klass, size_t size);
void camel_iterator_free(void *it);
const void *camel_iterator_next(void *it, CamelException *ex);
void camel_iterator_reset(void *it);
int camel_iterator_length(void *it);
# 36 "../../../camel/camel-folder.h" 2
# 1 "../../../camel/camel-folder-summary.h" 1
# 32 "../../../camel/camel-folder-summary.h"
# 1 "../../../camel/camel-mime-parser.h" 1
# 33 "../../../camel/camel-mime-parser.h"
# 1 "../../../camel/camel-mime-utils.h" 1
# 46 "../../../camel/camel-mime-utils.h"
typedef enum _CamelTransferEncoding {
 CAMEL_TRANSFER_ENCODING_DEFAULT,
 CAMEL_TRANSFER_ENCODING_7BIT,
 CAMEL_TRANSFER_ENCODING_8BIT,
 CAMEL_TRANSFER_ENCODING_BASE64,
 CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE,
 CAMEL_TRANSFER_ENCODING_BINARY,
 CAMEL_TRANSFER_ENCODING_UUENCODE,
 CAMEL_TRANSFER_NUM_ENCODINGS
} CamelTransferEncoding;


struct _camel_header_references {
 struct _camel_header_references *next;
 char *id;
};

struct _camel_header_param {
 struct _camel_header_param *next;
 char *name;
 char *value;
};


typedef struct {
 char *type;
 char *subtype;
 struct _camel_header_param *params;
 unsigned int refcount;
} CamelContentType;



struct _camel_header_raw {
 struct _camel_header_raw *next;
 char *name;
 char *value;
 int offset;
};

typedef struct _CamelContentDisposition {
 char *disposition;
 struct _camel_header_param *params;
 unsigned int refcount;
} CamelContentDisposition;

typedef enum _camel_header_address_t {
 CAMEL_HEADER_ADDRESS_NONE,
 CAMEL_HEADER_ADDRESS_NAME,
 CAMEL_HEADER_ADDRESS_GROUP
} camel_header_address_t;

struct _camel_header_address {
 struct _camel_header_address *next;
 camel_header_address_t type;
 char *name;
 union {
  char *addr;
  struct _camel_header_address *members;
 } v;
 unsigned int refcount;
};

struct _camel_header_newsgroup {
 struct _camel_header_newsgroup *next;

 char *newsgroup;
};


struct _camel_header_address *camel_header_address_new (void);
struct _camel_header_address *camel_header_address_new_name (const char *name, const char *addr);
struct _camel_header_address *camel_header_address_new_group (const char *name);
void camel_header_address_ref (struct _camel_header_address *addrlist);
void camel_header_address_unref (struct _camel_header_address *addrlist);
void camel_header_address_set_name (struct _camel_header_address *addrlist, const char *name);
void camel_header_address_set_addr (struct _camel_header_address *addrlist, const char *addr);
void camel_header_address_set_members (struct _camel_header_address *addrlist, struct _camel_header_address *group);
void camel_header_address_add_member (struct _camel_header_address *addrlist, struct _camel_header_address *member);
void camel_header_address_list_append_list (struct _camel_header_address **addrlistp, struct _camel_header_address **addrs);
void camel_header_address_list_append (struct _camel_header_address **addrlistp, struct _camel_header_address *addr);
void camel_header_address_list_clear (struct _camel_header_address **addrlistp);

struct _camel_header_address *camel_header_address_decode (const char *in, const char *charset);
struct _camel_header_address *camel_header_mailbox_decode (const char *in, const char *charset);

char *camel_header_address_list_encode (struct _camel_header_address *addrlist);

char *camel_header_address_list_format (struct _camel_header_address *addrlist);


struct _camel_header_param *camel_header_param_list_decode (const char *in);
char *camel_header_param (struct _camel_header_param *params, const char *name);
struct _camel_header_param *camel_header_set_param (struct _camel_header_param **paramsp, const char *name, const char *value);
void camel_header_param_list_format_append (GString *out, struct _camel_header_param *params);
char *camel_header_param_list_format (struct _camel_header_param *params);
void camel_header_param_list_free (struct _camel_header_param *params);


CamelContentType *camel_content_type_new (const char *type, const char *subtype);
CamelContentType *camel_content_type_decode (const char *in);
void camel_content_type_unref (CamelContentType *content_type);
void camel_content_type_ref (CamelContentType *content_type);
const char *camel_content_type_param (CamelContentType *content_type, const char *name);
void camel_content_type_set_param (CamelContentType *content_type, const char *name, const char *value);
int camel_content_type_is (CamelContentType *content_type, const char *type, const char *subtype);
char *camel_content_type_format (CamelContentType *content_type);
char *camel_content_type_simple (CamelContentType *content_type);


void camel_content_type_dump (CamelContentType *content_type);


CamelContentDisposition *camel_content_disposition_decode (const char *in);
void camel_content_disposition_ref (CamelContentDisposition *disposition);
void camel_content_disposition_unref (CamelContentDisposition *disposition);
char *camel_content_disposition_format (CamelContentDisposition *disposition);


char *camel_content_transfer_encoding_decode (const char *in);


void camel_header_raw_append (struct _camel_header_raw **list, const char *name, const char *value, int offset);
void camel_header_raw_append_parse (struct _camel_header_raw **list, const char *header, int offset);
const char *camel_header_raw_find (struct _camel_header_raw **list, const char *name, int *offset);
const char *camel_header_raw_find_next (struct _camel_header_raw **list, const char *name, int *offset, const char *last);
void camel_header_raw_replace (struct _camel_header_raw **list, const char *name, const char *value, int offset);
void camel_header_raw_remove (struct _camel_header_raw **list, const char *name);
void camel_header_raw_fold (struct _camel_header_raw **list);
void camel_header_raw_clear (struct _camel_header_raw **list);

char *camel_header_raw_check_mailing_list (struct _camel_header_raw **list);


char *camel_header_address_fold (const char *in, size_t headerlen);
char *camel_header_fold (const char *in, size_t headerlen);
char *camel_header_unfold (const char *in);


char *camel_header_token_decode (const char *in);

int camel_header_decode_int (const char **in);


char *camel_header_decode_string (const char *in, const char *default_charset);
char *camel_header_encode_string (const unsigned char *in);


char *camel_header_format_ctext (const char *in, const char *default_charset);


char *camel_header_encode_phrase (const unsigned char *in);





time_t camel_header_decode_date (const char *in, int *saveoffset);
char *camel_header_format_date (time_t time, int offset);


char *camel_header_msgid_decode (const char *in);
char *camel_header_contentid_decode (const char *in);


char *camel_header_msgid_generate (void);


struct _camel_header_references *camel_header_references_inreplyto_decode (const char *in);
struct _camel_header_references *camel_header_references_decode (const char *in);
void camel_header_references_list_clear (struct _camel_header_references **list);
void camel_header_references_list_append_asis (struct _camel_header_references **list, char *ref);
int camel_header_references_list_size (struct _camel_header_references **list);
struct _camel_header_references *camel_header_references_dup (const struct _camel_header_references *list);


char *camel_header_location_decode (const char *in);


struct _camel_header_newsgroup *camel_header_newsgroups_decode(const char *in);
void camel_header_newsgroups_free(struct _camel_header_newsgroup *ng);

const char *camel_transfer_encoding_to_string (CamelTransferEncoding encoding);
CamelTransferEncoding camel_transfer_encoding_from_string (const char *string);


void camel_header_mime_decode (const char *in, int *maj, int *min);


size_t camel_base64_decode_step (unsigned char *in, size_t len, unsigned char *out, int *state, unsigned int *save);

size_t camel_base64_encode_step (unsigned char *in, size_t len, gboolean break_lines, unsigned char *out, int *state, int *save);
size_t camel_base64_encode_close (unsigned char *in, size_t len, gboolean break_lines, unsigned char *out, int *state, int *save);

size_t camel_uudecode_step (unsigned char *in, size_t len, unsigned char *out, int *state, guint32 *save);

size_t camel_uuencode_step (unsigned char *in, size_t len, unsigned char *out, unsigned char *uubuf, int *state,
        guint32 *save);
size_t camel_uuencode_close (unsigned char *in, size_t len, unsigned char *out, unsigned char *uubuf, int *state,
         guint32 *save);

size_t camel_quoted_decode_step (unsigned char *in, size_t len, unsigned char *out, int *savestate, int *saveme);

size_t camel_quoted_encode_step (unsigned char *in, size_t len, unsigned char *out, int *state, int *save);
size_t camel_quoted_encode_close (unsigned char *in, size_t len, unsigned char *out, int *state, int *save);

char *camel_base64_encode_simple (const char *data, size_t len);
size_t camel_base64_decode_simple (char *data, size_t len);


enum {
 CAMEL_MIME_IS_CTRL = 1<<0,
 CAMEL_MIME_IS_LWSP = 1<<1,
 CAMEL_MIME_IS_TSPECIAL = 1<<2,
 CAMEL_MIME_IS_SPECIAL = 1<<3,
 CAMEL_MIME_IS_SPACE = 1<<4,
 CAMEL_MIME_IS_DSPECIAL = 1<<5,
 CAMEL_MIME_IS_QPSAFE = 1<<6,
 CAMEL_MIME_IS_ESAFE = 1<<7,
 CAMEL_MIME_IS_PSAFE = 1<<8,
 CAMEL_MIME_IS_ATTRCHAR = 1<<9,
};

extern unsigned short camel_mime_special_table[256];
# 34 "../../../camel/camel-mime-parser.h" 2
# 1 "../../../camel/camel-mime-filter.h" 1
# 40 "../../../camel/camel-mime-filter.h"
typedef struct _CamelMimeFilterClass CamelMimeFilterClass;

struct _CamelMimeFilter {
 CamelObject parent;

 struct _CamelMimeFilterPrivate *priv;

 char *outreal;
 char *outbuf;
 char *outptr;
 size_t outsize;
 size_t outpre;

 char *backbuf;
 size_t backsize;
 size_t backlen;
};

struct _CamelMimeFilterClass {
 CamelObjectClass parent_class;


 void (*filter)(CamelMimeFilter *f,
         char *in, size_t len, size_t prespace,
         char **out, size_t *outlen, size_t *outprespace);
 void (*complete)(CamelMimeFilter *f,
    char *in, size_t len, size_t prespace,
    char **out, size_t *outlen, size_t *outprespace);
 void (*reset)(CamelMimeFilter *f);
};

CamelType camel_mime_filter_get_type (void);
CamelMimeFilter *camel_mime_filter_new (void);

void camel_mime_filter_filter(CamelMimeFilter *filter,
         char *in, size_t len, size_t prespace,
         char **out, size_t *outlen, size_t *outprespace);

void camel_mime_filter_complete(CamelMimeFilter *filter,
    char *in, size_t len, size_t prespace,
    char **out, size_t *outlen, size_t *outprespace);

void camel_mime_filter_reset(CamelMimeFilter *filter);


void camel_mime_filter_backup(CamelMimeFilter *filter, const char *data, size_t length);


void camel_mime_filter_set_size(CamelMimeFilter *filter, size_t size, int keep);
# 35 "../../../camel/camel-mime-parser.h" 2
# 1 "../../../camel/camel-stream.h" 1
# 36 "../../../camel/camel-stream.h"
# 1 "/usr/include/unistd.h" 1 3 4
# 28 "/usr/include/unistd.h" 3 4

# 171 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/bits/posix_opt.h" 1 3 4
# 172 "/usr/include/unistd.h" 2 3 4
# 195 "/usr/include/unistd.h" 3 4
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 196 "/usr/include/unistd.h" 2 3 4
# 224 "/usr/include/unistd.h" 3 4
typedef __useconds_t useconds_t;
# 236 "/usr/include/unistd.h" 3 4
typedef __intptr_t intptr_t;






typedef __socklen_t socklen_t;
# 256 "/usr/include/unistd.h" 3 4
extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 299 "/usr/include/unistd.h" 3 4
extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
# 310 "/usr/include/unistd.h" 3 4
extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
     __attribute__ ((__nothrow__));






extern int close (int __fd);






extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;





extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
# 382 "/usr/include/unistd.h" 3 4
extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) ;
# 391 "/usr/include/unistd.h" 3 4
extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
# 403 "/usr/include/unistd.h" 3 4
extern unsigned int sleep (unsigned int __seconds);






extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
     __attribute__ ((__nothrow__));






extern int usleep (__useconds_t __useconds);
# 427 "/usr/include/unistd.h" 3 4
extern int pause (void);



extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) ;




extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 455 "/usr/include/unistd.h" 3 4
extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ;
# 469 "/usr/include/unistd.h" 3 4
extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) ;
# 482 "/usr/include/unistd.h" 3 4
extern char *getwd (char *__buf)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;




extern int dup (int __fd) __attribute__ ((__nothrow__)) ;


extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));


extern char **__environ;







extern int execve (__const char *__path, char *__const __argv[],
     char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 514 "/usr/include/unistd.h" 3 4
extern int execv (__const char *__path, char *__const __argv[])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));



extern int execle (__const char *__path, __const char *__arg, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));



extern int execl (__const char *__path, __const char *__arg, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));



extern int execvp (__const char *__file, char *__const __argv[])
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));




extern int execlp (__const char *__file, __const char *__arg, ...)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));




extern int nice (int __inc) __attribute__ ((__nothrow__)) ;




extern void _exit (int __status) __attribute__ ((__noreturn__));





# 1 "/usr/include/bits/confname.h" 1 3 4
# 26 "/usr/include/bits/confname.h" 3 4
enum
  {
    _PC_LINK_MAX,

    _PC_MAX_CANON,

    _PC_MAX_INPUT,

    _PC_NAME_MAX,

    _PC_PATH_MAX,

    _PC_PIPE_BUF,

    _PC_CHOWN_RESTRICTED,

    _PC_NO_TRUNC,

    _PC_VDISABLE,

    _PC_SYNC_IO,

    _PC_ASYNC_IO,

    _PC_PRIO_IO,

    _PC_SOCK_MAXBUF,

    _PC_FILESIZEBITS,

    _PC_REC_INCR_XFER_SIZE,

    _PC_REC_MAX_XFER_SIZE,

    _PC_REC_MIN_XFER_SIZE,

    _PC_REC_XFER_ALIGN,

    _PC_ALLOC_SIZE_MIN,

    _PC_SYMLINK_MAX,

    _PC_2_SYMLINKS

  };


enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,




    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_IOV_MAX = _SC_UIO_MAXIOV,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,



    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS,


    _SC_ADVISORY_INFO,

    _SC_BARRIERS,

    _SC_BASE,

    _SC_C_LANG_SUPPORT,

    _SC_C_LANG_SUPPORT_R,

    _SC_CLOCK_SELECTION,

    _SC_CPUTIME,

    _SC_THREAD_CPUTIME,

    _SC_DEVICE_IO,

    _SC_DEVICE_SPECIFIC,

    _SC_DEVICE_SPECIFIC_R,

    _SC_FD_MGMT,

    _SC_FIFO,

    _SC_PIPE,

    _SC_FILE_ATTRIBUTES,

    _SC_FILE_LOCKING,

    _SC_FILE_SYSTEM,

    _SC_MONOTONIC_CLOCK,

    _SC_MULTI_PROCESS,

    _SC_SINGLE_PROCESS,

    _SC_NETWORKING,

    _SC_READER_WRITER_LOCKS,

    _SC_SPIN_LOCKS,

    _SC_REGEXP,

    _SC_REGEX_VERSION,

    _SC_SHELL,

    _SC_SIGNALS,

    _SC_SPAWN,

    _SC_SPORADIC_SERVER,

    _SC_THREAD_SPORADIC_SERVER,

    _SC_SYSTEM_DATABASE,

    _SC_SYSTEM_DATABASE_R,

    _SC_TIMEOUTS,

    _SC_TYPED_MEMORY_OBJECTS,

    _SC_USER_GROUPS,

    _SC_USER_GROUPS_R,

    _SC_2_PBS,

    _SC_2_PBS_ACCOUNTING,

    _SC_2_PBS_LOCATE,

    _SC_2_PBS_MESSAGE,

    _SC_2_PBS_TRACK,

    _SC_SYMLOOP_MAX,

    _SC_STREAMS,

    _SC_2_PBS_CHECKPOINT,


    _SC_V6_ILP32_OFF32,

    _SC_V6_ILP32_OFFBIG,

    _SC_V6_LP64_OFF64,

    _SC_V6_LPBIG_OFFBIG,


    _SC_HOST_NAME_MAX,

    _SC_TRACE,

    _SC_TRACE_EVENT_FILTER,

    _SC_TRACE_INHERIT,

    _SC_TRACE_LOG,


    _SC_LEVEL1_ICACHE_SIZE,

    _SC_LEVEL1_ICACHE_ASSOC,

    _SC_LEVEL1_ICACHE_LINESIZE,

    _SC_LEVEL1_DCACHE_SIZE,

    _SC_LEVEL1_DCACHE_ASSOC,

    _SC_LEVEL1_DCACHE_LINESIZE,

    _SC_LEVEL2_CACHE_SIZE,

    _SC_LEVEL2_CACHE_ASSOC,

    _SC_LEVEL2_CACHE_LINESIZE,

    _SC_LEVEL3_CACHE_SIZE,

    _SC_LEVEL3_CACHE_ASSOC,

    _SC_LEVEL3_CACHE_LINESIZE,

    _SC_LEVEL4_CACHE_SIZE,

    _SC_LEVEL4_CACHE_ASSOC,

    _SC_LEVEL4_CACHE_LINESIZE,



    _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,

    _SC_RAW_SOCKETS

  };


enum
  {
    _CS_PATH,


    _CS_V6_WIDTH_RESTRICTED_ENVS,


    _CS_GNU_LIBC_VERSION,

    _CS_GNU_LIBPTHREAD_VERSION,


    _CS_LFS_CFLAGS = 1000,

    _CS_LFS_LDFLAGS,

    _CS_LFS_LIBS,

    _CS_LFS_LINTFLAGS,

    _CS_LFS64_CFLAGS,

    _CS_LFS64_LDFLAGS,

    _CS_LFS64_LIBS,

    _CS_LFS64_LINTFLAGS,


    _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,

    _CS_XBS5_ILP32_OFF32_LDFLAGS,

    _CS_XBS5_ILP32_OFF32_LIBS,

    _CS_XBS5_ILP32_OFF32_LINTFLAGS,

    _CS_XBS5_ILP32_OFFBIG_CFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LDFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LIBS,

    _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,

    _CS_XBS5_LP64_OFF64_CFLAGS,

    _CS_XBS5_LP64_OFF64_LDFLAGS,

    _CS_XBS5_LP64_OFF64_LIBS,

    _CS_XBS5_LP64_OFF64_LINTFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_CFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LIBS,

    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,


    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LIBS,

    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,

    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,

    _CS_POSIX_V6_LP64_OFF64_CFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LIBS,

    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS

  };
# 553 "/usr/include/unistd.h" 2 3 4


extern long int pathconf (__const char *__path, int __name)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));


extern long int sysconf (int __name) __attribute__ ((__nothrow__)) __attribute__ ((__const__));



extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));




extern __pid_t getpid (void) __attribute__ ((__nothrow__));


extern __pid_t getppid (void) __attribute__ ((__nothrow__));




extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
# 589 "/usr/include/unistd.h" 3 4
extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
# 598 "/usr/include/unistd.h" 3 4
extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
# 615 "/usr/include/unistd.h" 3 4
extern int setpgrp (void) __attribute__ ((__nothrow__));
# 632 "/usr/include/unistd.h" 3 4
extern __pid_t setsid (void) __attribute__ ((__nothrow__));







extern __uid_t getuid (void) __attribute__ ((__nothrow__));


extern __uid_t geteuid (void) __attribute__ ((__nothrow__));


extern __gid_t getgid (void) __attribute__ ((__nothrow__));


extern __gid_t getegid (void) __attribute__ ((__nothrow__));




extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) ;
# 665 "/usr/include/unistd.h" 3 4
extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));




extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));




extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));






extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));




extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));




extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
# 721 "/usr/include/unistd.h" 3 4
extern __pid_t fork (void) __attribute__ ((__nothrow__));






extern __pid_t vfork (void) __attribute__ ((__nothrow__));





extern char *ttyname (int __fd) __attribute__ ((__nothrow__));



extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;



extern int isatty (int __fd) __attribute__ ((__nothrow__));





extern int ttyslot (void) __attribute__ ((__nothrow__));




extern int link (__const char *__from, __const char *__to)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
# 767 "/usr/include/unistd.h" 3 4
extern int symlink (__const char *__from, __const char *__to)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;




extern ssize_t readlink (__const char *__restrict __path,
    char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
# 790 "/usr/include/unistd.h" 3 4
extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 799 "/usr/include/unistd.h" 3 4
extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));



extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));


extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));






extern char *getlogin (void);







extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));




extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 835 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/getopt.h" 1 3 4
# 59 "/usr/include/getopt.h" 3 4
extern char *optarg;
# 73 "/usr/include/getopt.h" 3 4
extern int optind;




extern int opterr;



extern int optopt;
# 152 "/usr/include/getopt.h" 3 4
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
       __attribute__ ((__nothrow__));
# 836 "/usr/include/unistd.h" 2 3 4







extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));






extern int sethostname (__const char *__name, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ;





extern int getdomainname (char *__name, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int setdomainname (__const char *__name, size_t __len)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;





extern int vhangup (void) __attribute__ ((__nothrow__));


extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;







extern int profil (unsigned short int *__sample_buffer, size_t __size,
     size_t __offset, unsigned int __scale)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));





extern int acct (__const char *__name) __attribute__ ((__nothrow__));



extern char *getusershell (void) __attribute__ ((__nothrow__));
extern void endusershell (void) __attribute__ ((__nothrow__));
extern void setusershell (void) __attribute__ ((__nothrow__));





extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) ;






extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;



extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
# 921 "/usr/include/unistd.h" 3 4
extern int fsync (int __fd);






extern long int gethostid (void);


extern void sync (void) __attribute__ ((__nothrow__));




extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));




extern int getdtablesize (void) __attribute__ ((__nothrow__));




extern int truncate (__const char *__file, __off_t __length)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 958 "/usr/include/unistd.h" 3 4
extern int truncate64 (__const char *__file, __off64_t __length)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 968 "/usr/include/unistd.h" 3 4
extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) ;
# 978 "/usr/include/unistd.h" 3 4
extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__)) ;
# 988 "/usr/include/unistd.h" 3 4
extern int brk (void *__addr) __attribute__ ((__nothrow__)) ;





extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
# 1009 "/usr/include/unistd.h" 3 4
extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
# 1032 "/usr/include/unistd.h" 3 4
extern int lockf (int __fd, int __cmd, __off_t __len) ;
# 1042 "/usr/include/unistd.h" 3 4
extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
# 1063 "/usr/include/unistd.h" 3 4
extern int fdatasync (int __fildes) __attribute__ ((__nothrow__));
# 1101 "/usr/include/unistd.h" 3 4

# 37 "../../../camel/camel-stream.h" 2







struct _CamelStream
{
 CamelObject parent_object;

 gboolean eos;
};

typedef struct {
 CamelObjectClass parent_class;



 ssize_t (*read) (CamelStream *stream, char *buffer, size_t n);
 ssize_t (*write) (CamelStream *stream, const char *buffer, size_t n);
 int (*close) (CamelStream *stream);
 int (*flush) (CamelStream *stream);
 gboolean (*eos) (CamelStream *stream);
 int (*reset) (CamelStream *stream);

} CamelStreamClass;


CamelType camel_stream_get_type (void);


ssize_t camel_stream_read (CamelStream *stream, char *buffer, size_t n);
ssize_t camel_stream_write (CamelStream *stream, const char *buffer, size_t n);
int camel_stream_flush (CamelStream *stream);
int camel_stream_close (CamelStream *stream);
gboolean camel_stream_eos (CamelStream *stream);
int camel_stream_reset (CamelStream *stream);


ssize_t camel_stream_write_string (CamelStream *stream, const char *string);
ssize_t camel_stream_printf (CamelStream *stream, const char *fmt, ... ) __attribute__((__format__ (__printf__, 2, 3)));
ssize_t camel_stream_vprintf (CamelStream *stream, const char *fmt, va_list ap);




ssize_t camel_stream_write_to_stream (CamelStream *stream, CamelStream *output_stream);
# 36 "../../../camel/camel-mime-parser.h" 2





typedef struct _CamelMimeParserClass CamelMimeParserClass;




typedef enum _camel_mime_parser_state_t {
 CAMEL_MIME_PARSER_STATE_INITIAL,
 CAMEL_MIME_PARSER_STATE_PRE_FROM,
 CAMEL_MIME_PARSER_STATE_FROM,
 CAMEL_MIME_PARSER_STATE_HEADER,
 CAMEL_MIME_PARSER_STATE_BODY,
 CAMEL_MIME_PARSER_STATE_MULTIPART,
 CAMEL_MIME_PARSER_STATE_MESSAGE,

 CAMEL_MIME_PARSER_STATE_PART,

 CAMEL_MIME_PARSER_STATE_END = 8,

 CAMEL_MIME_PARSER_STATE_EOF = 8,
 CAMEL_MIME_PARSER_STATE_PRE_FROM_END,
 CAMEL_MIME_PARSER_STATE_FROM_END,
 CAMEL_MIME_PARSER_STATE_HEADER_END,
 CAMEL_MIME_PARSER_STATE_BODY_END,
 CAMEL_MIME_PARSER_STATE_MULTIPART_END,
 CAMEL_MIME_PARSER_STATE_MESSAGE_END,
} camel_mime_parser_state_t;

struct _CamelMimeParser {
 CamelObject parent;

 struct _CamelMimeParserPrivate *priv;
};

struct _CamelMimeParserClass {
 CamelObjectClass parent_class;

 void (*message) (CamelMimeParser *parser, void *headers);
 void (*part) (CamelMimeParser *parser);
 void (*content) (CamelMimeParser *parser);
};

CamelType camel_mime_parser_get_type (void);
CamelMimeParser *camel_mime_parser_new (void);


int camel_mime_parser_errno (CamelMimeParser *parser);


int camel_mime_parser_init_with_fd (CamelMimeParser *parser, int fd);
int camel_mime_parser_init_with_stream (CamelMimeParser *parser, CamelStream *stream);


CamelStream *camel_mime_parser_stream (CamelMimeParser *parser);
int camel_mime_parser_fd (CamelMimeParser *parser);


void camel_mime_parser_scan_from (CamelMimeParser *parser, gboolean scan_from);

void camel_mime_parser_scan_pre_from (CamelMimeParser *parser, gboolean scan_pre_from);


int camel_mime_parser_set_header_regex (CamelMimeParser *parser, char *matchstr);


camel_mime_parser_state_t camel_mime_parser_step (CamelMimeParser *parser, char **buf, size_t *buflen);
void camel_mime_parser_unstep (CamelMimeParser *parser);
void camel_mime_parser_drop_step (CamelMimeParser *parser);
camel_mime_parser_state_t camel_mime_parser_state (CamelMimeParser *parser);
void camel_mime_parser_push_state(CamelMimeParser *mp, camel_mime_parser_state_t newstate, const char *boundary);


int camel_mime_parser_read (CamelMimeParser *parser, const char **databuffer, int len);


CamelContentType *camel_mime_parser_content_type (CamelMimeParser *parser);


const char *camel_mime_parser_header (CamelMimeParser *parser, const char *name, int *offset);


struct _camel_header_raw *camel_mime_parser_headers_raw (CamelMimeParser *parser);


const char *camel_mime_parser_preface (CamelMimeParser *parser);
const char *camel_mime_parser_postface (CamelMimeParser *parser);


const char *camel_mime_parser_from_line (CamelMimeParser *parser);


int camel_mime_parser_filter_add (CamelMimeParser *parser, CamelMimeFilter *filter);
void camel_mime_parser_filter_remove (CamelMimeParser *parser, int id);




off_t camel_mime_parser_tell (CamelMimeParser *parser);
off_t camel_mime_parser_seek (CamelMimeParser *parser, off_t offset, int whence);

off_t camel_mime_parser_tell_start_headers (CamelMimeParser *parser);
off_t camel_mime_parser_tell_start_from (CamelMimeParser *parser);
off_t camel_mime_parser_tell_start_boundary(CamelMimeParser *parser);
# 33 "../../../camel/camel-folder-summary.h" 2

# 1 "../../../camel/camel-index.h" 1
# 24 "../../../camel/camel-index.h"
# 1 "../../../camel/camel-exception.h" 1
# 39 "../../../camel/camel-exception.h"
typedef enum {
# 1 "../../../camel/camel-exception-list.def" 1







CAMEL_EXCEPTION_NONE = 0,


CAMEL_EXCEPTION_INVALID_PARAM,
CAMEL_EXCEPTION_SYSTEM,
CAMEL_EXCEPTION_USER_CANCEL,


CAMEL_EXCEPTION_FOLDER_NULL = 100,
CAMEL_EXCEPTION_FOLDER_INVALID,
CAMEL_EXCEPTION_FOLDER_INVALID_STATE,
CAMEL_EXCEPTION_FOLDER_NON_EMPTY,
CAMEL_EXCEPTION_FOLDER_NON_UID,
CAMEL_EXCEPTION_FOLDER_INSUFFICIENT_PERMISSION,
CAMEL_EXCEPTION_FOLDER_INVALID_PATH,
CAMEL_EXCEPTION_FOLDER_INVALID_UID,
CAMEL_EXCEPTION_FOLDER_SUMMARY_INVALID,


CAMEL_EXCEPTION_STORE_NULL = 200,
CAMEL_EXCEPTION_STORE_INVALID,
CAMEL_EXCEPTION_STORE_NO_FOLDER,


CAMEL_EXCEPTION_SERVICE_NULL = 300,
CAMEL_EXCEPTION_SERVICE_INVALID,
CAMEL_EXCEPTION_SERVICE_URL_INVALID,
CAMEL_EXCEPTION_SERVICE_UNAVAILABLE,
CAMEL_EXCEPTION_SERVICE_CANT_AUTHENTICATE,
CAMEL_EXCEPTION_SERVICE_NOT_CONNECTED
# 41 "../../../camel/camel-exception.h" 2

} ExceptionId;

struct _CamelException {

 ExceptionId id;
 char *desc;
};




CamelException * camel_exception_new (void);
void camel_exception_free (CamelException *ex);
void camel_exception_init (CamelException *ex);



void camel_exception_clear (CamelException *ex);
void camel_exception_set (CamelException *ex,
        ExceptionId id,
        const char *desc);
void camel_exception_setv (CamelException *ex,
        ExceptionId id,
        const char *format,
        ...);


void camel_exception_xfer (CamelException *ex_dst,
        CamelException *ex_src);



ExceptionId camel_exception_get_id (CamelException *ex);
const char * camel_exception_get_description (CamelException *ex);
# 25 "../../../camel/camel-index.h" 2






typedef struct _CamelIndex CamelIndex;
typedef struct _CamelIndexClass CamelIndexClass;





typedef struct _CamelIndexName CamelIndexName;
typedef struct _CamelIndexNameClass CamelIndexNameClass;





typedef struct _CamelIndexCursor CamelIndexCursor;
typedef struct _CamelIndexCursorClass CamelIndexCursorClass;

typedef char * (*CamelIndexNorm)(CamelIndex *idx, const char *word, void *data);



struct _CamelIndexCursor {
 CamelObject parent;

 struct _CamelIndexCursorPrivate *priv;

 CamelIndex *index;
};

struct _CamelIndexCursorClass {
 CamelObjectClass parent;

 const char * (*next) (CamelIndexCursor *idc);
 void (*reset) (CamelIndexCursor *idc);
};

CamelType camel_index_cursor_get_type(void);

CamelIndexCursor *camel_index_cursor_new(CamelIndex *idx, const char *name);

const char *camel_index_cursor_next(CamelIndexCursor *idc);
void camel_index_cursor_reset(CamelIndexCursor *idc);



struct _CamelIndexName {
 CamelObject parent;

 struct _CamelIndexNamePrivate *priv;

 CamelIndex *index;

 char *name;

 GByteArray *buffer;
 GHashTable *words;
};

struct _CamelIndexNameClass {
 CamelObjectClass parent;

 int (*sync)(CamelIndexName *name);
 void (*add_word)(CamelIndexName *name, const char *word);
 size_t (*add_buffer)(CamelIndexName *name, const char *buffer, size_t len);
};

CamelType camel_index_name_get_type (void);

CamelIndexName *camel_index_name_new(CamelIndex *idx, const char *name);

void camel_index_name_add_word(CamelIndexName *name, const char *word);
size_t camel_index_name_add_buffer(CamelIndexName *name, const char *buffer, size_t len);



struct _CamelIndex {
 CamelObject parent;

 struct _CamelIndexPrivate *priv;

 char *path;
 guint32 version;
 guint32 flags;
 guint32 state;

 CamelIndexNorm normalise;
 void *normalise_data;
};

struct _CamelIndexClass {
 CamelObjectClass parent_class;

 int (*sync)(CamelIndex *idx);
 int (*compress)(CamelIndex *idx);
 int (*delete)(CamelIndex *idx);

 int (*rename)(CamelIndex *idx, const char *path);

 int (*has_name)(CamelIndex *idx, const char *name);
 CamelIndexName * (*add_name)(CamelIndex *idx, const char *name);
 int (*write_name)(CamelIndex *idx, CamelIndexName *idn);
 CamelIndexCursor * (*find_name)(CamelIndex *idx, const char *name);
 void (*delete_name)(CamelIndex *idx, const char *name);
 CamelIndexCursor * (*find)(CamelIndex *idx, const char *word);

 CamelIndexCursor * (*words)(CamelIndex *idx);
 CamelIndexCursor * (*names)(CamelIndex *idx);
};




CamelType camel_index_get_type (void);

CamelIndex *camel_index_new(const char *path, int flags);
void camel_index_construct(CamelIndex *, const char *path, int flags);
int camel_index_rename(CamelIndex *, const char *path);

void camel_index_set_normalise(CamelIndex *idx, CamelIndexNorm func, void *data);

int camel_index_sync(CamelIndex *idx);
int camel_index_compress(CamelIndex *idx);
int camel_index_delete(CamelIndex *idx);

int camel_index_has_name(CamelIndex *idx, const char *name);
CamelIndexName *camel_index_add_name(CamelIndex *idx, const char *name);
int camel_index_write_name(CamelIndex *idx, CamelIndexName *idn);
CamelIndexCursor *camel_index_find_name(CamelIndex *idx, const char *name);
void camel_index_delete_name(CamelIndex *idx, const char *name);
CamelIndexCursor *camel_index_find(CamelIndex *idx, const char *word);

CamelIndexCursor *camel_index_words(CamelIndex *idx);
CamelIndexCursor *camel_index_names(CamelIndex *idx);
# 35 "../../../camel/camel-folder-summary.h" 2

struct _CamelFolder;







typedef struct _CamelFolderSummaryClass CamelFolderSummaryClass;

typedef struct _CamelMessageInfo CamelMessageInfo;
typedef struct _CamelMessageInfoBase CamelMessageInfoBase;

typedef struct _CamelFolderMetaSummary CamelFolderMetaSummary;



struct _CamelMessageContentInfo {
 struct _CamelMessageContentInfo *next;

 struct _CamelMessageContentInfo *childs;
 struct _CamelMessageContentInfo *parent;

 CamelContentType *type;
 char *id;
 char *description;
 char *encoding;
 guint32 size;
};


typedef enum _CamelMessageFlags {
 CAMEL_MESSAGE_ANSWERED = 1<<0,
 CAMEL_MESSAGE_DELETED = 1<<1,
 CAMEL_MESSAGE_DRAFT = 1<<2,
 CAMEL_MESSAGE_FLAGGED = 1<<3,
 CAMEL_MESSAGE_SEEN = 1<<4,


 CAMEL_MESSAGE_ATTACHMENTS = 1<<5,
 CAMEL_MESSAGE_ANSWERED_ALL = 1<<6,
 CAMEL_MESSAGE_JUNK = 1<<7,
 CAMEL_MESSAGE_SECURE = 1<<8,


 CAMEL_MESSAGE_FOLDER_FLAGGED = 1<<16,




 CAMEL_MESSAGE_JUNK_LEARN = 1<<30,


 CAMEL_MESSAGE_USER = 1<<31
} CamelMessageFlags;




typedef struct _CamelFlag {
 struct _CamelFlag *next;
 char name[1];
} CamelFlag;

typedef struct _CamelTag {
 struct _CamelTag *next;
 char *value;
 char name[1];
} CamelTag;


typedef struct _CamelSummaryMessageID {
 union {
  guint64 id;
  unsigned char hash[8];
  struct {
   guint32 hi;
   guint32 lo;
  } part;
 } id;
} CamelSummaryMessageID;


typedef struct _CamelSummaryReferences {
 int size;
 CamelSummaryMessageID references[1];
} CamelSummaryReferences;


enum {
 CAMEL_MESSAGE_INFO_SUBJECT,
 CAMEL_MESSAGE_INFO_FROM,
 CAMEL_MESSAGE_INFO_TO,
 CAMEL_MESSAGE_INFO_CC,
 CAMEL_MESSAGE_INFO_MLIST,

 CAMEL_MESSAGE_INFO_FLAGS,
 CAMEL_MESSAGE_INFO_SIZE,

 CAMEL_MESSAGE_INFO_DATE_SENT,
 CAMEL_MESSAGE_INFO_DATE_RECEIVED,

 CAMEL_MESSAGE_INFO_MESSAGE_ID,
 CAMEL_MESSAGE_INFO_REFERENCES,
 CAMEL_MESSAGE_INFO_USER_FLAGS,
 CAMEL_MESSAGE_INFO_USER_TAGS,

 CAMEL_MESSAGE_INFO_LAST
};


struct _CamelMessageInfo {
 CamelFolderSummary *summary;

 guint32 refcount;
 char *uid;
};




struct _CamelMessageInfoBase {
 CamelFolderSummary *summary;

 guint32 refcount;
 char *uid;

 const char *subject;
 const char *from;
 const char *to;
 const char *cc;
 const char *mlist;

 guint32 flags;
 guint32 size;

 time_t date_sent;
 time_t date_received;

 CamelSummaryMessageID message_id;
 CamelSummaryReferences *references;

 struct _CamelFlag *user_flags;
 struct _CamelTag *user_tags;


 CamelMessageContentInfo *content;
};
# 195 "../../../camel/camel-folder-summary.h"
typedef enum _CamelFolderSummaryFlags {
 CAMEL_SUMMARY_DIRTY = 1<<0,
} CamelFolderSummaryFlags;

struct _CamelFolderSummary {
 CamelObject parent;

 struct _CamelFolderSummaryPrivate *priv;


 guint32 version;
 guint32 flags;
 guint32 nextuid;
 time_t time;
 guint32 saved_count;
 guint32 unread_count;
 guint32 deleted_count;
 guint32 junk_count;


 guint32 message_info_size;
 guint32 content_info_size;


 struct _EMemChunk *message_info_chunks;
 struct _EMemChunk *content_info_chunks;

 char *summary_path;
 gboolean build_content;

 GPtrArray *messages;
 GHashTable *messages_uid;

 struct _CamelFolder *folder;
 struct _CamelFolderMetaSummary *meta_summary;
};

struct _CamelFolderSummaryClass {
 CamelObjectClass parent_class;


 int (*summary_header_load)(CamelFolderSummary *, FILE *);
 int (*summary_header_save)(CamelFolderSummary *, FILE *);


 CamelMessageInfo * (*message_info_new_from_header)(CamelFolderSummary *, struct _camel_header_raw *);
 CamelMessageInfo * (*message_info_new_from_parser)(CamelFolderSummary *, CamelMimeParser *);
 CamelMessageInfo * (*message_info_new_from_message)(CamelFolderSummary *, CamelMimeMessage *);
 CamelMessageInfo * (*message_info_load)(CamelFolderSummary *, FILE *);
  int (*message_info_save)(CamelFolderSummary *, FILE *, CamelMessageInfo *);
 int (*meta_message_info_save)(CamelFolderSummary *, FILE *, FILE *, CamelMessageInfo *);

 void (*message_info_free)(CamelFolderSummary *, CamelMessageInfo *);
 CamelMessageInfo * (*message_info_clone)(CamelFolderSummary *, const CamelMessageInfo *);


 CamelMessageContentInfo * (*content_info_new_from_header)(CamelFolderSummary *, struct _camel_header_raw *);
 CamelMessageContentInfo * (*content_info_new_from_parser)(CamelFolderSummary *, CamelMimeParser *);
 CamelMessageContentInfo * (*content_info_new_from_message)(CamelFolderSummary *, CamelMimePart *);
 CamelMessageContentInfo * (*content_info_load)(CamelFolderSummary *, FILE *);
 int (*content_info_save)(CamelFolderSummary *, FILE *, CamelMessageContentInfo *);
 void (*content_info_free)(CamelFolderSummary *, CamelMessageContentInfo *);


 char *(*next_uid_string)(CamelFolderSummary *);


 const void *(*info_ptr)(const CamelMessageInfo *mi, int id);
 guint32 (*info_uint32)(const CamelMessageInfo *mi, int id);
 time_t (*info_time)(const CamelMessageInfo *mi, int id);

 gboolean (*info_user_flag)(const CamelMessageInfo *mi, const char *id);
 const char *(*info_user_tag)(const CamelMessageInfo *mi, const char *id);
# 276 "../../../camel/camel-folder-summary.h"
 gboolean (*info_set_user_flag)(CamelMessageInfo *mi, const char *id, gboolean state);
 gboolean (*info_set_user_tag)(CamelMessageInfo *mi, const char *id, const char *val);
 gboolean (*info_set_flags)(CamelMessageInfo *mi, guint32 mask, guint32 set);
};


struct _CamelFolderMetaSummary {
 guint32 major;
 guint32 minor;
 guint32 uid_len;
 gboolean msg_expunged;
 char *path;
};

CamelType camel_folder_summary_get_type (void);
CamelFolderSummary *camel_folder_summary_new (struct _CamelFolder *folder);

void camel_folder_summary_set_filename(CamelFolderSummary *summary, const char *filename);
void camel_folder_summary_set_index(CamelFolderSummary *summary, CamelIndex *index);
void camel_folder_summary_set_build_content(CamelFolderSummary *summary, gboolean state);

guint32 camel_folder_summary_next_uid (CamelFolderSummary *summary);
char *camel_folder_summary_next_uid_string (CamelFolderSummary *summary);
void camel_folder_summary_set_uid (CamelFolderSummary *summary, guint32 uid);


int camel_folder_summary_load(CamelFolderSummary *summary);
int camel_folder_summary_save(CamelFolderSummary *summary);


int camel_folder_summary_header_load(CamelFolderSummary *summary);


void camel_folder_summary_touch(CamelFolderSummary *summary);


void camel_folder_summary_add(CamelFolderSummary *summary, CamelMessageInfo *info);


CamelMessageInfo *camel_folder_summary_add_from_header(CamelFolderSummary *summary, struct _camel_header_raw *headers);
CamelMessageInfo *camel_folder_summary_add_from_parser(CamelFolderSummary *summary, CamelMimeParser *parser);
CamelMessageInfo *camel_folder_summary_add_from_message(CamelFolderSummary *summary, CamelMimeMessage *message);


CamelMessageInfo *camel_folder_summary_info_new_from_header(CamelFolderSummary *summary, struct _camel_header_raw *headers);
CamelMessageInfo *camel_folder_summary_info_new_from_parser(CamelFolderSummary *summary, CamelMimeParser *parser);
CamelMessageInfo *camel_folder_summary_info_new_from_message(CamelFolderSummary *summary, CamelMimeMessage *message);

CamelMessageContentInfo *camel_folder_summary_content_info_new(CamelFolderSummary *summary);
void camel_folder_summary_content_info_free(CamelFolderSummary *summary, CamelMessageContentInfo *ci);


void camel_folder_summary_remove(CamelFolderSummary *summary, CamelMessageInfo *info);
void camel_folder_summary_remove_uid(CamelFolderSummary *summary, const char *uid);
void camel_folder_summary_remove_index(CamelFolderSummary *summary, int index);
void camel_folder_summary_remove_range(CamelFolderSummary *summary, int start, int end);


void camel_folder_summary_clear(CamelFolderSummary *summary);


int camel_folder_summary_count(CamelFolderSummary *summary);
CamelMessageInfo *camel_folder_summary_index(CamelFolderSummary *summary, int index);
CamelMessageInfo *camel_folder_summary_uid(CamelFolderSummary *summary, const char *uid);
GPtrArray *camel_folder_summary_array(CamelFolderSummary *summary);
void camel_folder_summary_array_free(CamelFolderSummary *summary, GPtrArray *array);


int camel_folder_summary_encode_token(FILE *out, const char *str);
int camel_folder_summary_decode_token(FILE *in, char **str);


gboolean camel_flag_get(CamelFlag **list, const char *name);
gboolean camel_flag_set(CamelFlag **list, const char *name, gboolean state);
gboolean camel_flag_list_copy(CamelFlag **to, CamelFlag **from);
int camel_flag_list_size(CamelFlag **list);
void camel_flag_list_free(CamelFlag **list);

guint32 camel_system_flag (const char *name);
gboolean camel_system_flag_get (guint32 flags, const char *name);


const char *camel_tag_get(CamelTag **list, const char *name);
gboolean camel_tag_set(CamelTag **list, const char *name, const char *value);
gboolean camel_tag_list_copy(CamelTag **to, CamelTag **from);
int camel_tag_list_size(CamelTag **list);
void camel_tag_list_free(CamelTag **list);



void *camel_message_info_new(CamelFolderSummary *summary);
void camel_message_info_ref(void *info);
CamelMessageInfo *camel_message_info_new_from_header(CamelFolderSummary *summary, struct _camel_header_raw *header);
void camel_message_info_free(void *info);
void *camel_message_info_clone(const void *info);


const void *camel_message_info_ptr(const CamelMessageInfo *mi, int id);
guint32 camel_message_info_uint32(const CamelMessageInfo *mi, int id);
time_t camel_message_info_time(const CamelMessageInfo *mi, int id);
# 396 "../../../camel/camel-folder-summary.h"
gboolean camel_message_info_user_flag(const CamelMessageInfo *mi, const char *id);
const char *camel_message_info_user_tag(const CamelMessageInfo *mi, const char *id);

gboolean camel_message_info_set_flags(CamelMessageInfo *mi, guint32 mask, guint32 set);
gboolean camel_message_info_set_user_flag(CamelMessageInfo *mi, const char *id, gboolean state);
gboolean camel_message_info_set_user_tag(CamelMessageInfo *mi, const char *id, const char *val);


void camel_content_info_dump (CamelMessageContentInfo *ci, int depth);

void camel_message_info_dump (CamelMessageInfo *mi);
# 37 "../../../camel/camel-folder.h" 2






typedef struct _CamelFolderChangeInfo CamelFolderChangeInfo;

enum {
 CAMEL_FOLDER_ARG_FIRST = CAMEL_ARG_FIRST + 0x1000,
 CAMEL_FOLDER_ARG_NAME = CAMEL_FOLDER_ARG_FIRST,
 CAMEL_FOLDER_ARG_FULL_NAME,
 CAMEL_FOLDER_ARG_STORE,
 CAMEL_FOLDER_ARG_PERMANENTFLAGS,
 CAMEL_FOLDER_ARG_TOTAL,
 CAMEL_FOLDER_ARG_UNREAD,
 CAMEL_FOLDER_ARG_DELETED,
 CAMEL_FOLDER_ARG_JUNKED,
 CAMEL_FOLDER_ARG_VISIBLE,
 CAMEL_FOLDER_ARG_UID_ARRAY,
 CAMEL_FOLDER_ARG_INFO_ARRAY,
 CAMEL_FOLDER_ARG_PROPERTIES,
 CAMEL_FOLDER_ARG_LAST = CAMEL_ARG_FIRST + 0x2000,
};

enum {
 CAMEL_FOLDER_NAME = CAMEL_FOLDER_ARG_NAME | CAMEL_ARG_STR,
 CAMEL_FOLDER_FULL_NAME = CAMEL_FOLDER_ARG_FULL_NAME | CAMEL_ARG_STR,
 CAMEL_FOLDER_STORE = CAMEL_FOLDER_ARG_STORE | CAMEL_ARG_OBJ,
 CAMEL_FOLDER_PERMANENTFLAGS = CAMEL_FOLDER_ARG_PERMANENTFLAGS | CAMEL_ARG_INT,
 CAMEL_FOLDER_TOTAL = CAMEL_FOLDER_ARG_TOTAL | CAMEL_ARG_INT,
 CAMEL_FOLDER_UNREAD = CAMEL_FOLDER_ARG_UNREAD | CAMEL_ARG_INT,
 CAMEL_FOLDER_DELETED = CAMEL_FOLDER_ARG_DELETED | CAMEL_ARG_INT,
 CAMEL_FOLDER_JUNKED = CAMEL_FOLDER_ARG_JUNKED | CAMEL_ARG_INT,
 CAMEL_FOLDER_VISIBLE = CAMEL_FOLDER_ARG_VISIBLE | CAMEL_ARG_INT,

 CAMEL_FOLDER_UID_ARRAY = CAMEL_FOLDER_ARG_UID_ARRAY | CAMEL_ARG_PTR,
 CAMEL_FOLDER_INFO_ARRAY = CAMEL_FOLDER_ARG_INFO_ARRAY | CAMEL_ARG_PTR,


 CAMEL_FOLDER_PROPERTIES = CAMEL_FOLDER_ARG_PROPERTIES | CAMEL_ARG_PTR,
};

struct _CamelFolderChangeInfo {
 GPtrArray *uid_added;
 GPtrArray *uid_removed;
 GPtrArray *uid_changed;
 GPtrArray *uid_recent;

 struct _CamelFolderChangeInfoPrivate *priv;
};

struct _CamelFolder {
 CamelObject parent_object;

 struct _CamelFolderPrivate *priv;


 char *name;
 char *full_name;
 char *description;

 CamelStore *parent_store;
 CamelFolderSummary *summary;

 guint32 folder_flags;
 guint32 permanent_flags;
};
# 114 "../../../camel/camel-folder.h"
typedef struct {
 CamelObjectClass parent_class;


 void (*refresh_info) (CamelFolder *folder, CamelException *ex);

 void (*sync) (CamelFolder *folder, gboolean expunge,
   CamelException *ex);

 const char * (*get_name) (CamelFolder *folder);
 const char * (*get_full_name) (CamelFolder *folder);

 CamelStore * (*get_parent_store) (CamelFolder *folder);

 void (*expunge) (CamelFolder *folder,
     CamelException *ex);

 int (*get_message_count) (CamelFolder *folder);

 void (*append_message) (CamelFolder *folder,
     CamelMimeMessage *message,
     const CamelMessageInfo *info,
     char **appended_uid,
     CamelException *ex);

 guint32 (*get_permanent_flags) (CamelFolder *folder);
 guint32 (*get_message_flags) (CamelFolder *folder,
     const char *uid);
 gboolean (*set_message_flags) (CamelFolder *folder,
      const char *uid,
      guint32 flags, guint32 set);

 gboolean (*get_message_user_flag) (CamelFolder *folder,
        const char *uid,
        const char *name);
 void (*set_message_user_flag) (CamelFolder *folder,
        const char *uid,
        const char *name,
        gboolean value);

 const char * (*get_message_user_tag) (CamelFolder *folder,
           const char *uid,
           const char *name);
 void (*set_message_user_tag) (CamelFolder *folder,
       const char *uid,
       const char *name,
       const char *value);

 CamelMimeMessage * (*get_message) (CamelFolder *folder,
         const char *uid,
         CamelException *ex);

 GPtrArray * (*get_uids) (CamelFolder *folder);
 void (*free_uids) (CamelFolder *folder,
           GPtrArray *array);

 GPtrArray * (*get_summary) (CamelFolder *folder);
 void (*free_summary) (CamelFolder *folder,
           GPtrArray *summary);

 gboolean (*has_search_capability) (CamelFolder *folder);

 GPtrArray * (*search_by_expression) (CamelFolder *, const char *, CamelException *);
 GPtrArray * (*search_by_uids) (CamelFolder *, const char *, GPtrArray *uids, CamelException *);

 void (*search_free) (CamelFolder *folder, GPtrArray *result);

 CamelMessageInfo * (*get_message_info) (CamelFolder *, const char *uid);
 void (*ref_message_info) (CamelFolder *, CamelMessageInfo *);
 void (*free_message_info) (CamelFolder *, CamelMessageInfo *);

 void (*transfer_messages_to) (CamelFolder *source,
          GPtrArray *uids,
          CamelFolder *destination,
          GPtrArray **transferred_uids,
          gboolean delete_originals,
          CamelException *ex);

 void (*delete) (CamelFolder *folder);
 void (*rename) (CamelFolder *folder, const char *newname);

 void (*freeze) (CamelFolder *folder);
 void (*thaw) (CamelFolder *folder);
 gboolean (*is_frozen) (CamelFolder *folder);
} CamelFolderClass;


CamelType camel_folder_get_type (void);



void camel_folder_construct (CamelFolder *folder,
       CamelStore *parent_store,
       const char *full_name,
       const char *name);

void camel_folder_refresh_info (CamelFolder *folder,
       CamelException *ex);
void camel_folder_sync (CamelFolder *folder,
       gboolean expunge,
       CamelException *ex);

CamelStore * camel_folder_get_parent_store (CamelFolder *folder);



void camel_folder_expunge (CamelFolder *folder,
       CamelException *ex);



const char * camel_folder_get_name (CamelFolder *folder);
const char * camel_folder_get_full_name (CamelFolder *folder);



guint32 camel_folder_get_permanent_flags (CamelFolder *folder);

guint32 camel_folder_get_message_flags (CamelFolder *folder,
       const char *uid);

gboolean camel_folder_set_message_flags (CamelFolder *folder,
       const char *uid,
       guint32 flags,
       guint32 set);

gboolean camel_folder_get_message_user_flag (CamelFolder *folder,
       const char *uid,
       const char *name);

void camel_folder_set_message_user_flag (CamelFolder *folder,
       const char *uid,
       const char *name,
       gboolean value);
const char * camel_folder_get_message_user_tag (CamelFolder *folder,
             const char *uid,
             const char *name);

void camel_folder_set_message_user_tag (CamelFolder *folder,
             const char *uid,
             const char *name,
             const char *value);




void camel_folder_append_message (CamelFolder *folder,
       CamelMimeMessage *message,
       const CamelMessageInfo *info,
       char **appended_uid,
       CamelException *ex);



gboolean camel_folder_has_summary_capability (CamelFolder *folder);


int camel_folder_get_message_count (CamelFolder *folder);

int camel_folder_get_unread_message_count (CamelFolder *folder);

int camel_folder_get_deleted_message_count (CamelFolder *folder);

GPtrArray * camel_folder_get_summary (CamelFolder *folder);
void camel_folder_free_summary (CamelFolder *folder,
             GPtrArray *array);


CamelMimeMessage * camel_folder_get_message (CamelFolder *folder,
             const char *uid,
             CamelException *ex);



GPtrArray * camel_folder_get_uids (CamelFolder *folder);
void camel_folder_free_uids (CamelFolder *folder,
             GPtrArray *array);


gboolean camel_folder_has_search_capability (CamelFolder *folder);
GPtrArray * camel_folder_search_by_expression (CamelFolder *folder, const char *expr, CamelException *ex);
GPtrArray * camel_folder_search_by_uids (CamelFolder *folder, const char *expr, GPtrArray *uids, CamelException *ex);
void camel_folder_search_free (CamelFolder *folder, GPtrArray *result);


CamelMessageInfo *camel_folder_get_message_info (CamelFolder *folder, const char *uid);
void camel_folder_free_message_info (CamelFolder *folder, CamelMessageInfo *info);
void camel_folder_ref_message_info (CamelFolder *folder, CamelMessageInfo *info);

void camel_folder_transfer_messages_to (CamelFolder *source,
       GPtrArray *uids,
       CamelFolder *dest,
       GPtrArray **transferred_uids,
       gboolean delete_originals,
       CamelException *ex);

void camel_folder_delete (CamelFolder *folder);
void camel_folder_rename (CamelFolder *folder, const char *new);


void camel_folder_freeze (CamelFolder *folder);
void camel_folder_thaw (CamelFolder *folder);
gboolean camel_folder_is_frozen (CamelFolder *folder);


void camel_folder_free_nop (CamelFolder *folder, GPtrArray *array);
void camel_folder_free_shallow (CamelFolder *folder, GPtrArray *array);
void camel_folder_free_deep (CamelFolder *folder, GPtrArray *array);


CamelFolderChangeInfo * camel_folder_change_info_new (void);
void camel_folder_change_info_clear (CamelFolderChangeInfo *info);
void camel_folder_change_info_free (CamelFolderChangeInfo *info);
gboolean camel_folder_change_info_changed (CamelFolderChangeInfo *info);


void camel_folder_change_info_add_source (CamelFolderChangeInfo *info, const char *uid);
void camel_folder_change_info_add_source_list(CamelFolderChangeInfo *info, const GPtrArray *list);
void camel_folder_change_info_add_update (CamelFolderChangeInfo *info, const char *uid);
void camel_folder_change_info_add_update_list(CamelFolderChangeInfo *info, const GPtrArray *list);
void camel_folder_change_info_build_diff (CamelFolderChangeInfo *info);


void camel_folder_change_info_cat (CamelFolderChangeInfo *info, CamelFolderChangeInfo *src);
void camel_folder_change_info_add_uid (CamelFolderChangeInfo *info, const char *uid);
void camel_folder_change_info_remove_uid (CamelFolderChangeInfo *info, const char *uid);
void camel_folder_change_info_change_uid (CamelFolderChangeInfo *info, const char *uid);
void camel_folder_change_info_recent_uid (CamelFolderChangeInfo *info, const char *uid);
# 35 "camel-pop3-folder.h" 2






typedef struct {
 guint32 id;
 guint32 size;
 guint32 flags;
 guint32 index;
 char *uid;
 int err;
 struct _CamelPOP3Command *cmd;
 struct _CamelStream *stream;
} CamelPOP3FolderInfo;

typedef struct {
 CamelFolder parent_object;

 GPtrArray *uids;
 GHashTable *uids_uid;
 GHashTable *uids_id;
} CamelPOP3Folder;

typedef struct {
 CamelFolderClass parent_class;



} CamelPOP3FolderClass;


CamelFolder *camel_pop3_folder_new (CamelStore *parent, CamelException *ex);


CamelType camel_pop3_folder_get_type (void);

int camel_pop3_delete_old(CamelFolder *folder, int days_to_delete, CamelException *ex);
# 33 "camel-pop3-folder.c" 2
# 1 "camel-pop3-store.h" 1
# 37 "camel-pop3-store.h"
# 1 "../../../camel/camel-store.h" 1
# 39 "../../../camel/camel-store.h"
# 1 "../../../camel/camel-service.h" 1
# 35 "../../../camel/camel-service.h"
# 1 "../../../camel/camel-url.h" 1
# 39 "../../../camel/camel-url.h"
typedef struct _CamelURL {
 char *protocol;
 char *user;
 char *authmech;
 char *passwd;
 char *host;
 int port;
 char *path;
 GData *params;
 char *query;
 char *fragment;
} CamelURL;







CamelURL *camel_url_new_with_base (CamelURL *base, const char *url_string);
CamelURL *camel_url_new (const char *url_string, CamelException *ex);
char *camel_url_to_string (CamelURL *url, guint32 flags);
void camel_url_free (CamelURL *url);

char *camel_url_encode (const char *part, const char *escape_extra);
void camel_url_decode (char *part);


void camel_url_set_protocol (CamelURL *url, const char *protocol);
void camel_url_set_user (CamelURL *url, const char *user);
void camel_url_set_authmech (CamelURL *url, const char *authmech);
void camel_url_set_passwd (CamelURL *url, const char *passwd);
void camel_url_set_host (CamelURL *url, const char *host);
void camel_url_set_port (CamelURL *url, int port);
void camel_url_set_path (CamelURL *url, const char *path);
void camel_url_set_param (CamelURL *url, const char *name, const char *value);
void camel_url_set_query (CamelURL *url, const char *query);
void camel_url_set_fragment (CamelURL *url, const char *fragment);

const char *camel_url_get_param (CamelURL *url, const char *name);


guint camel_url_hash (const void *v);
int camel_url_equal(const void *v, const void *v2);
CamelURL *camel_url_copy(const CamelURL *in);
# 36 "../../../camel/camel-service.h" 2
# 1 "../../../camel/camel-provider.h" 1
# 44 "../../../camel/camel-provider.h"
typedef enum {
 CAMEL_PROVIDER_STORE,
 CAMEL_PROVIDER_TRANSPORT,
 CAMEL_NUM_PROVIDER_TYPES
} CamelProviderType;

extern char *camel_provider_type_name[CAMEL_NUM_PROVIDER_TYPES];
# 126 "../../../camel/camel-provider.h"
typedef enum {
 CAMEL_PROVIDER_CONF_END,
 CAMEL_PROVIDER_CONF_SECTION_START,
 CAMEL_PROVIDER_CONF_SECTION_END,
 CAMEL_PROVIDER_CONF_CHECKBOX,
 CAMEL_PROVIDER_CONF_CHECKSPIN,
 CAMEL_PROVIDER_CONF_ENTRY,
 CAMEL_PROVIDER_CONF_LABEL,
 CAMEL_PROVIDER_CONF_HIDDEN
} CamelProviderConfType;

typedef struct {
 CamelProviderConfType type;
 char *name, *depname;
 char *text, *value;
} CamelProviderConfEntry;






typedef int (*CamelProviderAutoDetectFunc) (CamelURL *url, GHashTable **auto_detected, CamelException *ex);

typedef struct {

 char *protocol;


 char *name;







 char *description;





 char *domain;


 int flags, url_flags;





 CamelProviderConfEntry *extra_conf;


 CamelProviderAutoDetectFunc auto_detect;






 CamelType object_types[CAMEL_NUM_PROVIDER_TYPES];


 GList *authtypes;

 CamelObjectBag *service_cache[CAMEL_NUM_PROVIDER_TYPES];

 GHashFunc url_hash;
 GCompareFunc url_equal;




 char *translation_domain;



 const char *license;





 const char *license_file;


 void *priv;
} CamelProvider;

typedef struct _CamelProviderModule CamelProviderModule;

struct _CamelProviderModule {
 char *path;
 GSList *types;
 guint loaded:1;
};

void camel_provider_init(void);

void camel_provider_load(const char *path, CamelException *ex);
void camel_provider_register(CamelProvider *provider);
GList *camel_provider_list(gboolean load);
CamelProvider *camel_provider_get(const char *url_string, CamelException *ex);


void camel_provider_module_init(void);


int camel_provider_auto_detect (CamelProvider *provider, CamelURL *url,
    GHashTable **auto_detected, CamelException *ex);
# 37 "../../../camel/camel-service.h" 2
# 1 "../../../camel/camel-operation.h" 1
# 32 "../../../camel/camel-operation.h"
typedef struct _CamelOperation CamelOperation;

typedef void (*CamelOperationStatusFunc)(struct _CamelOperation *op, const char *what, int pc, void *data);

typedef enum _camel_operation_status_t {
 CAMEL_OPERATION_START = -1,
 CAMEL_OPERATION_END = -2,
} camel_operation_status_t;


CamelOperation *camel_operation_new(CamelOperationStatusFunc status, void *status_data);
void camel_operation_mute(CamelOperation *cc);
void camel_operation_ref(CamelOperation *cc);
void camel_operation_unref(CamelOperation *cc);
void camel_operation_cancel(CamelOperation *cc);
void camel_operation_uncancel(CamelOperation *cc);

CamelOperation *camel_operation_register(CamelOperation *cc);
void camel_operation_unregister (CamelOperation *cc);


void camel_operation_cancel_block(CamelOperation *cc);
void camel_operation_cancel_unblock(CamelOperation *cc);
int camel_operation_cancel_check(CamelOperation *cc);
int camel_operation_cancel_fd(CamelOperation *cc);

struct PRFileDesc *camel_operation_cancel_prfd(CamelOperation *cc);


CamelOperation *camel_operation_registered(void);

void camel_operation_start(CamelOperation *cc, char *what, ...);
void camel_operation_start_transient(CamelOperation *cc, char *what, ...);
void camel_operation_progress(CamelOperation *cc, int pc);
void camel_operation_progress_count(CamelOperation *cc, int sofar);
void camel_operation_end(CamelOperation *cc);
# 38 "../../../camel/camel-service.h" 2






enum {
 CAMEL_SERVICE_ARG_FIRST = CAMEL_ARG_FIRST + 100,
 CAMEL_SERVICE_ARG_USERNAME,
 CAMEL_SERVICE_ARG_AUTH,
 CAMEL_SERVICE_ARG_HOSTNAME,
 CAMEL_SERVICE_ARG_PORT,
 CAMEL_SERVICE_ARG_PATH,
};







typedef enum {
 CAMEL_SERVICE_DISCONNECTED,
 CAMEL_SERVICE_CONNECTING,
 CAMEL_SERVICE_CONNECTED,
 CAMEL_SERVICE_DISCONNECTING
} CamelServiceConnectionStatus;

struct _CamelService {
 CamelObject parent_object;
 struct _CamelServicePrivate *priv;

 CamelSession *session;
 CamelProvider *provider;
 CamelServiceConnectionStatus status;
 CamelOperation *connect_op;
 CamelURL *url;
};

typedef struct {
 CamelObjectClass parent_class;

 void (*construct) (CamelService *service,
     CamelSession *session,
     CamelProvider *provider,
     CamelURL *url,
     CamelException *ex);

 gboolean (*connect) (CamelService *service,
     CamelException *ex);
 gboolean (*disconnect) (CamelService *service,
     gboolean clean,
     CamelException *ex);
 void (*cancel_connect) (CamelService *service);

 GList * (*query_auth_types) (CamelService *service,
     CamelException *ex);

 char * (*get_name) (CamelService *service,
     gboolean brief);
 char * (*get_path) (CamelService *service);

} CamelServiceClass;


typedef struct {
 char *name;
 char *description;
 char *authproto;

 gboolean need_password;
} CamelServiceAuthType;


void camel_service_construct (CamelService *service,
            CamelSession *session,
            CamelProvider *provider,
            CamelURL *url,
            CamelException *ex);
gboolean camel_service_connect (CamelService *service,
            CamelException *ex);
gboolean camel_service_disconnect (CamelService *service,
            gboolean clean,
            CamelException *ex);
void camel_service_cancel_connect (CamelService *service);
char * camel_service_get_url (CamelService *service);
char * camel_service_get_name (CamelService *service,
            gboolean brief);
char * camel_service_get_path (CamelService *service);
CamelSession * camel_service_get_session (CamelService *service);
CamelProvider * camel_service_get_provider (CamelService *service);
GList * camel_service_query_auth_types (CamelService *service,
            CamelException *ex);


CamelType camel_service_get_type (void);
# 40 "../../../camel/camel-store.h" 2

enum {
 CAMEL_STORE_ARG_FIRST = CAMEL_SERVICE_ARG_FIRST + 100,
};

typedef struct _CamelFolderInfo {
 struct _CamelFolderInfo *next;
 struct _CamelFolderInfo *parent;
 struct _CamelFolderInfo *child;

 char *uri;
 char *name;
 char *full_name;

 guint32 flags;
 guint32 unread;
 guint32 total;
} CamelFolderInfo;
# 105 "../../../camel/camel-store.h"
typedef struct _CamelRenameInfo {
 char *old_base;
 struct _CamelFolderInfo *new;
} CamelRenameInfo;
# 122 "../../../camel/camel-store.h"
struct _CamelStore {
 CamelService parent_object;
 struct _CamelStorePrivate *priv;

 CamelObjectBag *folders;

 guint32 flags;
 guint32 mode;
};
# 145 "../../../camel/camel-store.h"
typedef struct {
 CamelServiceClass parent_class;

 GHashFunc hash_folder_name;
 GCompareFunc compare_folder_name;

 CamelFolder * (*get_folder) (CamelStore *store,
           const char *folder_name,
           guint32 flags,
           CamelException *ex);

 CamelFolder * (*get_inbox) (CamelStore *store, CamelException *ex);
 CamelFolder * (*get_trash) (CamelStore *store, CamelException *ex);
 CamelFolder * (*get_junk) (CamelStore *store, CamelException *ex);

 CamelFolderInfo *(*create_folder) (CamelStore *store,
           const char *parent_name,
           const char *folder_name,
           CamelException *ex);
 void (*delete_folder) (CamelStore *store,
           const char *folder_name,
           CamelException *ex);
 void (*rename_folder) (CamelStore *store,
           const char *old_name,
           const char *new_name,
           CamelException *ex);

 void (*sync) (CamelStore *store, int expunge, CamelException *ex);

 CamelFolderInfo *(*get_folder_info) (CamelStore *store,
           const char *top,
           guint32 flags,
           CamelException *ex);
 void (*free_folder_info) (CamelStore *store,
           CamelFolderInfo *fi);

 gboolean (*folder_subscribed) (CamelStore *store,
           const char *folder_name);
 void (*subscribe_folder) (CamelStore *store,
           const char *folder_name,
           CamelException *ex);
 void (*unsubscribe_folder) (CamelStore *store,
           const char *folder_name,
           CamelException *ex);
 void (*noop) (CamelStore *store,
           CamelException *ex);
} CamelStoreClass;


CamelType camel_store_get_type (void);


CamelFolder * camel_store_get_folder (CamelStore *store,
              const char *folder_name,
       guint32 flags,
              CamelException *ex);
CamelFolder * camel_store_get_inbox (CamelStore *store,
       CamelException *ex);
CamelFolder * camel_store_get_trash (CamelStore *store,
       CamelException *ex);
CamelFolder * camel_store_get_junk (CamelStore *store,
       CamelException *ex);

CamelFolderInfo *camel_store_create_folder (CamelStore *store,
       const char *parent_name,
       const char *folder_name,
       CamelException *ex);
void camel_store_delete_folder (CamelStore *store,
       const char *folder_name,
       CamelException *ex);
void camel_store_rename_folder (CamelStore *store,
       const char *old_name,
       const char *new_name,
       CamelException *ex);

void camel_store_sync (CamelStore *store, int expunge, CamelException *ex);

CamelFolderInfo *camel_store_get_folder_info (CamelStore *store,
       const char *top,
       guint32 flags,
       CamelException *ex);
void camel_store_free_folder_info (CamelStore *store,
       CamelFolderInfo *fi);

void camel_store_free_folder_info_full (CamelStore *store,
          CamelFolderInfo *fi);
void camel_store_free_folder_info_nop (CamelStore *store,
          CamelFolderInfo *fi);

void camel_folder_info_free (CamelFolderInfo *fi);
CamelFolderInfo *camel_folder_info_build (GPtrArray *folders,
          const char *namespace,
          char separator,
          gboolean short_names);
CamelFolderInfo *camel_folder_info_clone (CamelFolderInfo *fi);

gboolean camel_store_supports_subscriptions (CamelStore *store);

gboolean camel_store_folder_subscribed (CamelStore *store,
             const char *folder_name);
void camel_store_subscribe_folder (CamelStore *store,
             const char *folder_name,
             CamelException *ex);
void camel_store_unsubscribe_folder (CamelStore *store,
             const char *folder_name,
             CamelException *ex);

void camel_store_noop (CamelStore *store,
             CamelException *ex);

int camel_store_folder_uri_equal (CamelStore *store,
             const char *uri0,
             const char *uri1);

typedef struct _CamelISubscribe CamelISubscribe;
struct _CamelISubscribe {
 CamelInterface iface;

 gboolean (*subscribed)(CamelStore *store, const char *folder_name);
 void (*subscribe)(CamelStore *store, const char *folder_name, CamelException *ex);
 void (*unsubscribe)(CamelStore *store, const char *folder_name, CamelException *ex);
};

CamelType camel_isubscribe_get_type (void);
gboolean camel_isubscribe_subscribed(CamelStore *store, const char *name);
void camel_isubscribe_subscribe(CamelStore *store, const char *folder_name, CamelException *ex);
void camel_isubscribe_unsubscribe(CamelStore *store, const char *folder_name, CamelException *ex);
# 38 "camel-pop3-store.h" 2
# 1 "camel-pop3-engine.h" 1
# 25 "camel-pop3-engine.h"
# 1 "../../../libedataserver/e-msgport.h" 1
# 9 "../../../libedataserver/e-msgport.h"
typedef struct _EDListNode {
 struct _EDListNode *next;
 struct _EDListNode *prev;
} EDListNode;

typedef struct _EDList {
 struct _EDListNode *head;
 struct _EDListNode *tail;
 struct _EDListNode *tailpred;
} EDList;



void e_dlist_init(EDList *v);
EDListNode *e_dlist_addhead(EDList *l, EDListNode *n);
EDListNode *e_dlist_addtail(EDList *l, EDListNode *n);
EDListNode *e_dlist_remove(EDListNode *n);
EDListNode *e_dlist_remhead(EDList *l);
EDListNode *e_dlist_remtail(EDList *l);
int e_dlist_empty(EDList *l);
int e_dlist_length(EDList *l);


typedef struct _EMCache EMCache;
typedef struct _EMCacheNode EMCacheNode;


struct _EMCacheNode {
 struct _EMCacheNode *next, *prev;
 char *key;
 int ref_count;
 time_t stamp;
};

EMCache *em_cache_new(time_t timeout, size_t nodesize, GFreeFunc nodefree);
void em_cache_destroy(EMCache *emc);
EMCacheNode *em_cache_lookup(EMCache *emc, const char *key);
EMCacheNode *em_cache_node_new(EMCache *emc, const char *key);
void em_cache_node_unref(EMCache *emc, EMCacheNode *n);
void em_cache_add(EMCache *emc, EMCacheNode *n);
void em_cache_clear(EMCache *emc);



typedef struct _EMsgPort EMsgPort;


typedef struct _EMsg {
 EDListNode ln;
 EMsgPort *reply_port;
} EMsg;

EMsgPort *e_msgport_new(void);
void e_msgport_destroy(EMsgPort *mp);

int e_msgport_fd(EMsgPort *mp);
void e_msgport_put(EMsgPort *mp, EMsg *msg);
EMsg *e_msgport_wait(EMsgPort *mp);
EMsg *e_msgport_get(EMsgPort *mp);
void e_msgport_reply(EMsg *msg);

struct PRFileDesc *e_msgport_prfd(EMsgPort *mp);



typedef struct _EThread EThread;

typedef enum {
 E_THREAD_QUEUE = 0,
 E_THREAD_DROP,
 E_THREAD_NEW,

} e_thread_t;

typedef void (*EThreadFunc)(EThread *, EMsg *, void *data);

EThread *e_thread_new(e_thread_t type);
void e_thread_destroy(EThread *e);
void e_thread_set_queue_limit(EThread *e, int limit);
void e_thread_set_msg_lost(EThread *e, EThreadFunc destroy, void *data);
void e_thread_set_msg_destroy(EThread *e, EThreadFunc destroy, void *data);
void e_thread_set_reply_port(EThread *e, EMsgPort *reply_port);
void e_thread_set_msg_received(EThread *e, EThreadFunc received, void *data);
void e_thread_put(EThread *e, EMsg *msg);
int e_thread_busy(EThread *e);


typedef struct _EMutex EMutex;

typedef enum _e_mutex_t {
 E_MUTEX_SIMPLE,
 E_MUTEX_REC,
} e_mutex_t;

EMutex *e_mutex_new(e_mutex_t type);
int e_mutex_destroy(EMutex *m);
int e_mutex_lock(EMutex *m);
int e_mutex_unlock(EMutex *m);
void e_mutex_assert_locked(EMutex *m);

int e_mutex_cond_wait(void *cond, EMutex *m);
# 26 "camel-pop3-engine.h" 2
# 1 "camel-pop3-stream.h" 1
# 33 "camel-pop3-stream.h"
typedef struct _CamelPOP3StreamClass CamelPOP3StreamClass;
typedef struct _CamelPOP3Stream CamelPOP3Stream;

typedef enum {
 CAMEL_POP3_STREAM_LINE,
 CAMEL_POP3_STREAM_DATA,
 CAMEL_POP3_STREAM_EOD,
} camel_pop3_stream_mode_t;

struct _CamelPOP3Stream {
 CamelStream parent;

 CamelStream *source;

 camel_pop3_stream_mode_t mode;
 int state;

 unsigned char *buf, *ptr, *end;
 unsigned char *linebuf, *lineptr, *lineend;
};

struct _CamelPOP3StreamClass {
 CamelStreamClass parent_class;
};

CamelType camel_pop3_stream_get_type (void);

CamelStream *camel_pop3_stream_new (CamelStream *source);


void camel_pop3_stream_set_mode (CamelPOP3Stream *is, camel_pop3_stream_mode_t mode);

int camel_pop3_stream_line (CamelPOP3Stream *is, unsigned char **data, unsigned int *len);
int camel_pop3_stream_gets (CamelPOP3Stream *is, unsigned char **start, unsigned int *len);
int camel_pop3_stream_getd (CamelPOP3Stream *is, unsigned char **start, unsigned int *len);
# 27 "camel-pop3-engine.h" 2





typedef struct _CamelPOP3EngineClass CamelPOP3EngineClass;
typedef struct _CamelPOP3Engine CamelPOP3Engine;
typedef struct _CamelPOP3Command CamelPOP3Command;


typedef enum {
 CAMEL_POP3_ENGINE_DISCONNECT = 0,
 CAMEL_POP3_ENGINE_AUTH,
 CAMEL_POP3_ENGINE_TRANSACTION,
 CAMEL_POP3_ENGINE_UPDATE,
} camel_pop3_engine_t;


typedef enum {
 CAMEL_POP3_COMMAND_IDLE = 0,
 CAMEL_POP3_COMMAND_DISPATCHED,


 CAMEL_POP3_COMMAND_OK,
 CAMEL_POP3_COMMAND_DATA,
 CAMEL_POP3_COMMAND_ERR,
} camel_pop3_command_t;


enum {
 CAMEL_POP3_COMMAND_SIMPLE = 0,
 CAMEL_POP3_COMMAND_MULTI = 1,
};


enum {
 CAMEL_POP3_CAP_APOP = 1<<0,
 CAMEL_POP3_CAP_UIDL = 1<<1,
 CAMEL_POP3_CAP_SASL = 1<<2,
 CAMEL_POP3_CAP_TOP = 1<<3,
 CAMEL_POP3_CAP_PIPE = 1<<4,
 CAMEL_POP3_CAP_STLS = 1<<5
};


enum {
 CAMEL_POP3_ENGINE_DISABLE_EXTENSIONS = 1<<0,
};

typedef void (*CamelPOP3CommandFunc)(CamelPOP3Engine *pe, CamelPOP3Stream *stream, void *data);

struct _CamelPOP3Command {
 struct _CamelPOP3Command *next;
 struct _CamelPOP3Command *prev;

 guint32 flags;
 camel_pop3_command_t state;

 CamelPOP3CommandFunc func;
 void *func_data;

 int data_size;
 char *data;
};

struct _CamelPOP3Engine {
 CamelObject parent;

 guint32 flags;

 camel_pop3_engine_t state;

 GList *auth;

 guint32 capa;
 char *apop;

 unsigned char *line;
 unsigned int linelen;

 struct _CamelPOP3Stream *stream;

 unsigned int sentlen;

 EDList active;
 EDList queue;
 EDList done;

 CamelPOP3Command *current;
};

struct _CamelPOP3EngineClass {
 CamelObjectClass parent_class;
};

CamelType camel_pop3_engine_get_type (void);

CamelPOP3Engine *camel_pop3_engine_new (CamelStream *source, guint32 flags);

void camel_pop3_engine_reget_capabilities (CamelPOP3Engine *engine);

void camel_pop3_engine_command_free(CamelPOP3Engine *pe, CamelPOP3Command *pc);

int camel_pop3_engine_iterate (CamelPOP3Engine *pe, CamelPOP3Command *pc);

CamelPOP3Command *camel_pop3_engine_command_new (CamelPOP3Engine *pe, guint32 flags, CamelPOP3CommandFunc func, void *data, const char *fmt, ...);
# 39 "camel-pop3-store.h" 2







typedef struct {
 CamelStore parent_object;

 CamelPOP3Engine *engine;

 struct _CamelDataCache *cache;

 guint delete_after;
} CamelPOP3Store;



typedef struct {
 CamelStoreClass parent_class;

} CamelPOP3StoreClass;



void camel_pop3_store_expunge (CamelPOP3Store *store, CamelException *ex);


enum { CAMEL_POP3_OK, CAMEL_POP3_ERR, CAMEL_POP3_FAIL };
int camel_pop3_command (CamelPOP3Store *store, char **ret, CamelException *ex, char *fmt, ...);
char *camel_pop3_command_get_additional_data (CamelPOP3Store *store, int total, CamelException *ex);


CamelType camel_pop3_store_get_type (void);
# 34 "camel-pop3-folder.c" 2
# 1 "../../../camel/camel-exception.h" 1
# 35 "camel-pop3-folder.c" 2
# 1 "../../../camel/camel-stream-mem.h" 1
# 36 "../../../camel/camel-stream-mem.h"
# 1 "../../../camel/camel-seekable-stream.h" 1
# 45 "../../../camel/camel-seekable-stream.h"
typedef enum {
 CAMEL_STREAM_SET = 0,
 CAMEL_STREAM_CUR = 1,
 CAMEL_STREAM_END = 2
} CamelStreamSeekPolicy;



struct _CamelSeekableStream {
 CamelStream parent_object;

 off_t position;
 off_t bound_start;
 off_t bound_end;
};

typedef struct {
 CamelStreamClass parent_class;


 off_t (*seek) (CamelSeekableStream *stream, off_t offset,
        CamelStreamSeekPolicy policy);
 off_t (*tell) (CamelSeekableStream *stream);
 int (*set_bounds) (CamelSeekableStream *stream,
        off_t start, off_t end);
} CamelSeekableStreamClass;


CamelType camel_seekable_stream_get_type (void);


off_t camel_seekable_stream_seek (CamelSeekableStream *stream, off_t offset,
      CamelStreamSeekPolicy policy);
off_t camel_seekable_stream_tell (CamelSeekableStream *stream);
int camel_seekable_stream_set_bounds (CamelSeekableStream *stream, off_t start, off_t end);
# 37 "../../../camel/camel-stream-mem.h" 2






typedef struct _CamelStreamMemClass CamelStreamMemClass;

struct _CamelStreamMem {
 CamelSeekableStream parent_object;

 unsigned int owner:1;
 unsigned int secure:1;
 GByteArray *buffer;
};

struct _CamelStreamMemClass {
 CamelSeekableStreamClass parent_class;


};


CamelType camel_stream_mem_get_type (void);


CamelStream *camel_stream_mem_new(void);
CamelStream *camel_stream_mem_new_with_byte_array(GByteArray *buffer);
CamelStream *camel_stream_mem_new_with_buffer(const char *buffer, size_t len);


void camel_stream_mem_set_secure(CamelStreamMem *mem);


void camel_stream_mem_set_byte_array(CamelStreamMem *mem, GByteArray *buffer);
void camel_stream_mem_set_buffer(CamelStreamMem *mem, const char *buffer, size_t len);
# 36 "camel-pop3-folder.c" 2
# 1 "../../../camel/camel-stream-filter.h" 1
# 38 "../../../camel/camel-stream-filter.h"
typedef struct _CamelStreamFilterClass CamelStreamFilterClass;

struct _CamelStreamFilter {
 CamelStream parent;

 CamelStream *source;

 struct _CamelStreamFilterPrivate *priv;
};

struct _CamelStreamFilterClass {
 CamelStreamClass parent_class;
};

CamelType camel_stream_filter_get_type (void);

CamelStreamFilter *camel_stream_filter_new_with_stream (CamelStream *stream);

int camel_stream_filter_add (CamelStreamFilter *stream, CamelMimeFilter *filter);
void camel_stream_filter_remove (CamelStreamFilter *stream, int id);
# 37 "camel-pop3-folder.c" 2
# 1 "../../../camel/camel-mime-message.h" 1
# 34 "../../../camel/camel-mime-message.h"
# 1 "../../../camel/camel-mime-part.h" 1
# 36 "../../../camel/camel-mime-part.h"
# 1 "../../../camel/camel-medium.h" 1
# 36 "../../../camel/camel-medium.h"
# 1 "../../../camel/camel-data-wrapper.h" 1
# 44 "../../../camel/camel-data-wrapper.h"
struct _CamelDataWrapper {
 CamelObject parent_object;
 struct _CamelDataWrapperPrivate *priv;

 CamelTransferEncoding encoding;

 CamelContentType *mime_type;
 CamelStream *stream;

 unsigned int offline:1;
};

typedef struct {
 CamelObjectClass parent_class;


 void (*set_mime_type) (CamelDataWrapper *data_wrapper,
             const char *mime_type);
 char * (*get_mime_type) (CamelDataWrapper *data_wrapper);
 CamelContentType * (*get_mime_type_field) (CamelDataWrapper *data_wrapper);
 void (*set_mime_type_field) (CamelDataWrapper *data_wrapper,
             CamelContentType *mime_type_field);

 ssize_t (*write_to_stream) (CamelDataWrapper *data_wrapper,
             CamelStream *stream);

 ssize_t (*decode_to_stream) (CamelDataWrapper *data_wrapper,
             CamelStream *stream);

 int (*construct_from_stream) (CamelDataWrapper *data_wrapper,
             CamelStream *);

 gboolean (*is_offline) (CamelDataWrapper *data_wrapper);
} CamelDataWrapperClass;


CamelType camel_data_wrapper_get_type (void);


CamelDataWrapper *camel_data_wrapper_new(void);
ssize_t camel_data_wrapper_write_to_stream (CamelDataWrapper *data_wrapper,
            CamelStream *stream);
ssize_t camel_data_wrapper_decode_to_stream (CamelDataWrapper *data_wrapper,
            CamelStream *stream);

void camel_data_wrapper_set_mime_type (CamelDataWrapper *data_wrapper,
            const char *mime_type);
char *camel_data_wrapper_get_mime_type (CamelDataWrapper *data_wrapper);
CamelContentType *camel_data_wrapper_get_mime_type_field (CamelDataWrapper *data_wrapper);
void camel_data_wrapper_set_mime_type_field (CamelDataWrapper *data_wrapper,
            CamelContentType *mime_type);

int camel_data_wrapper_construct_from_stream (CamelDataWrapper *data_wrapper,
            CamelStream *stream);

gboolean camel_data_wrapper_is_offline (CamelDataWrapper *data_wrapper);
# 37 "../../../camel/camel-medium.h" 2







typedef struct {
 const char *name;
 const char *value;
} CamelMediumHeader;

struct _CamelMedium {
 CamelDataWrapper parent_object;





 CamelDataWrapper *content;
};

typedef struct {
 CamelDataWrapperClass parent_class;


 void (*add_header) (CamelMedium *medium, const char *name, const void *value);
 void (*set_header) (CamelMedium *medium, const char *name, const void *value);
 void (*remove_header) (CamelMedium *medium, const char *name);
 const void * (*get_header) (CamelMedium *medium, const char *name);

 GArray * (*get_headers) (CamelMedium *medium);
 void (*free_headers) (CamelMedium *medium, GArray *headers);

 CamelDataWrapper * (*get_content_object) (CamelMedium *medium);
 void (*set_content_object) (CamelMedium *medium, CamelDataWrapper *content);
} CamelMediumClass;


CamelType camel_medium_get_type (void);


void camel_medium_add_header (CamelMedium *medium, const char *name, const void *value);
void camel_medium_set_header (CamelMedium *medium, const char *name, const void *value);
void camel_medium_remove_header (CamelMedium *medium, const char *name);
const void *camel_medium_get_header (CamelMedium *medium, const char *name);

GArray *camel_medium_get_headers (CamelMedium *medium);
void camel_medium_free_headers (CamelMedium *medium, GArray *headers);


CamelDataWrapper *camel_medium_get_content_object (CamelMedium *medium);
void camel_medium_set_content_object (CamelMedium *medium,
          CamelDataWrapper *content);
# 37 "../../../camel/camel-mime-part.h" 2
# 46 "../../../camel/camel-mime-part.h"
struct _CamelMimePart {
 CamelMedium parent_object;

 struct _camel_header_raw *headers;



 char *description;
 CamelContentDisposition *disposition;
 char *content_id;
 char *content_MD5;
 char *content_location;
 GList *content_languages;
 CamelTransferEncoding encoding;
};

typedef struct _CamelMimePartClass {
 CamelMediumClass parent_class;


 int (*construct_from_parser) (CamelMimePart *, CamelMimeParser *);
} CamelMimePartClass;


CamelType camel_mime_part_get_type (void);


CamelMimePart * camel_mime_part_new (void);

void camel_mime_part_set_description (CamelMimePart *mime_part, const char *description);
const char *camel_mime_part_get_description (CamelMimePart *mime_part);

void camel_mime_part_set_disposition (CamelMimePart *mime_part, const char *disposition);
const char *camel_mime_part_get_disposition (CamelMimePart *mime_part);

void camel_mime_part_set_filename (CamelMimePart *mime_part, const char *filename);
const char *camel_mime_part_get_filename (CamelMimePart *mime_part);

void camel_mime_part_set_content_id (CamelMimePart *mime_part, const char *contentid);
const char *camel_mime_part_get_content_id (CamelMimePart *mime_part);

void camel_mime_part_set_content_MD5 (CamelMimePart *mime_part, const char *md5sum);
const char *camel_mime_part_get_content_MD5 (CamelMimePart *mime_part);

void camel_mime_part_set_content_location (CamelMimePart *mime_part, const char *location);
const char *camel_mime_part_get_content_location (CamelMimePart *mime_part);

void camel_mime_part_set_encoding (CamelMimePart *mime_part, CamelTransferEncoding encoding);
CamelTransferEncoding camel_mime_part_get_encoding (CamelMimePart *mime_part);

void camel_mime_part_set_content_languages (CamelMimePart *mime_part, GList *content_languages);
const GList *camel_mime_part_get_content_languages (CamelMimePart *mime_part);


void camel_mime_part_set_content_type (CamelMimePart *mime_part, const char *content_type);
CamelContentType *camel_mime_part_get_content_type (CamelMimePart *mime_part);


int camel_mime_part_construct_from_parser (CamelMimePart *mime_part, CamelMimeParser *parser);


void camel_mime_part_set_content (CamelMimePart *mime_part,
       const char *content, int length, const char *type);
# 35 "../../../camel/camel-mime-message.h" 2

# 1 "../../../camel/camel-internet-address.h" 1
# 30 "../../../camel/camel-internet-address.h"
# 1 "../../../camel/camel-address.h" 1
# 37 "../../../camel/camel-address.h"
typedef struct _CamelAddressClass CamelAddressClass;

struct _CamelAddress {
 CamelObject parent;

 GPtrArray *addresses;

 struct _CamelAddressPrivate *priv;
};

struct _CamelAddressClass {
 CamelObjectClass parent_class;

 int (*decode) (CamelAddress *, const char *raw);
 char *(*encode) (CamelAddress *);

 int (*unformat) (CamelAddress *, const char *raw);
 char *(*format) (CamelAddress *);

 int (*cat) (CamelAddress *, const CamelAddress *);

 void (*remove) (CamelAddress *, int index);
};

CamelType camel_address_get_type (void);
CamelAddress *camel_address_new (void);
CamelAddress *camel_address_new_clone (const CamelAddress *addr);
int camel_address_length (CamelAddress *addr);

int camel_address_decode (CamelAddress *addr, const char *raw);
char *camel_address_encode (CamelAddress *addr);
int camel_address_unformat (CamelAddress *addr, const char *raw);
char *camel_address_format (CamelAddress *addr);

int camel_address_cat (CamelAddress *dest, const CamelAddress *source);
int camel_address_copy (CamelAddress *dest, const CamelAddress *source);

void camel_address_remove (CamelAddress *addr, int index);
# 31 "../../../camel/camel-internet-address.h" 2





typedef struct _CamelInternetAddressClass CamelInternetAddressClass;

struct _CamelInternetAddress {
 CamelAddress parent;

 struct _CamelInternetAddressPrivate *priv;
};

struct _CamelInternetAddressClass {
 CamelAddressClass parent_class;
};

CamelType camel_internet_address_get_type (void);
CamelInternetAddress *camel_internet_address_new (void);

int camel_internet_address_add (CamelInternetAddress *addr, const char *name, const char *address);
gboolean camel_internet_address_get (const CamelInternetAddress *addr, int index, const char **namep, const char **addressp);

int camel_internet_address_find_name(CamelInternetAddress *addr, const char *name, const char **addressp);
int camel_internet_address_find_address(CamelInternetAddress *addr, const char *address, const char **namep);


char * camel_internet_address_encode_address(int *len, const char *name, const char *addr);
char * camel_internet_address_format_address(const char *real, const char *addr);
# 37 "../../../camel/camel-mime-message.h" 2
# 1 "../../../camel/camel-mime-filter-bestenc.h" 1
# 32 "../../../camel/camel-mime-filter-bestenc.h"
# 1 "../../../camel/camel-charset-map.h" 1
# 30 "../../../camel/camel-charset-map.h"
typedef struct _CamelCharset CamelCharset;

struct _CamelCharset {
 unsigned int mask;
 int level;
};

void camel_charset_init(CamelCharset *);
void camel_charset_step(CamelCharset *, const char *in, int len);

const char *camel_charset_best_name (CamelCharset *);


const char *camel_charset_best(const char *in, int len);

const char *camel_charset_iso_to_windows (const char *isocharset);
# 33 "../../../camel/camel-mime-filter-bestenc.h" 2





typedef struct _CamelMimeFilterBestencClass CamelMimeFilterBestencClass;

typedef enum _CamelBestencRequired {
 CAMEL_BESTENC_GET_ENCODING = 1<<0,
 CAMEL_BESTENC_GET_CHARSET = 1<<1,


 CAMEL_BESTENC_LF_IS_CRLF = 1<<8,

 CAMEL_BESTENC_NO_FROM = 1<<9,
} CamelBestencRequired;

typedef enum _CamelBestencEncoding {
 CAMEL_BESTENC_7BIT,
 CAMEL_BESTENC_8BIT,
 CAMEL_BESTENC_BINARY,


 CAMEL_BESTENC_TEXT = 1<<8,
} CamelBestencEncoding;

struct _CamelMimeFilterBestenc {
 CamelMimeFilter parent;

 unsigned int flags;

 unsigned int count0;
 unsigned int count8;
 unsigned int total;

 unsigned int lastc;
 int crlfnoorder;

 int startofline;

 int fromcount;
 char fromsave[6];
 int hadfrom;

 unsigned int countline;
 unsigned int maxline;

 CamelCharset charset;
};

struct _CamelMimeFilterBestencClass {
 CamelMimeFilterClass parent_class;
};

CamelType camel_mime_filter_bestenc_get_type (void);
CamelMimeFilterBestenc *camel_mime_filter_bestenc_new (unsigned int flags);


CamelTransferEncoding camel_mime_filter_bestenc_get_best_encoding(CamelMimeFilterBestenc *filter, CamelBestencEncoding required);
const char * camel_mime_filter_bestenc_get_best_charset(CamelMimeFilterBestenc *filter);
void camel_mime_filter_bestenc_set_flags(CamelMimeFilterBestenc *filter, unsigned int flags);
# 38 "../../../camel/camel-mime-message.h" 2
# 56 "../../../camel/camel-mime-message.h"
struct _CamelMimeMessage
{
 CamelMimePart parent_object;


 time_t date;
 int date_offset;


 time_t date_received;
 int date_received_offset;

 char *subject;

 char *message_id;

 CamelInternetAddress *reply_to;
 CamelInternetAddress *from;

 GHashTable *recipients;
};

typedef struct {
 CamelMimePartClass parent_class;



} CamelMimeMessageClass;




CamelType camel_mime_message_get_type (void);



CamelMimeMessage *camel_mime_message_new (void);
void camel_mime_message_set_date (CamelMimeMessage *message,
           time_t date,
           int offset);
time_t camel_mime_message_get_date (CamelMimeMessage *message,
           int *offset);
time_t camel_mime_message_get_date_received (CamelMimeMessage *message,
           int *offset);
void camel_mime_message_set_message_id (CamelMimeMessage *message,
           const char *message_id);
const char *camel_mime_message_get_message_id (CamelMimeMessage *message);
void camel_mime_message_set_reply_to (CamelMimeMessage *message,
           const CamelInternetAddress *reply_to);
const CamelInternetAddress *camel_mime_message_get_reply_to (CamelMimeMessage *message);

void camel_mime_message_set_subject (CamelMimeMessage *message,
           const char *subject);
const char *camel_mime_message_get_subject (CamelMimeMessage *message);
void camel_mime_message_set_from (CamelMimeMessage *message,
           const CamelInternetAddress *from);
const CamelInternetAddress *camel_mime_message_get_from (CamelMimeMessage *message);

const CamelInternetAddress *camel_mime_message_get_recipients (CamelMimeMessage *message,
           const char *type);
void camel_mime_message_set_recipients (CamelMimeMessage *message,
           const char *type,
           const CamelInternetAddress *recipients);

void camel_mime_message_set_source (CamelMimeMessage *message,
           const char *identity);
const char *camel_mime_message_get_source (CamelMimeMessage *message);



gboolean camel_mime_message_has_8bit_parts (CamelMimeMessage *message);
void camel_mime_message_set_best_encoding (CamelMimeMessage *message,
           CamelBestencRequired required,
           CamelBestencEncoding enctype);
void camel_mime_message_encode_8bit_parts (CamelMimeMessage *message);

CamelMimePart *camel_mime_message_get_part_by_content_id (CamelMimeMessage *message, const char *content_id);

char *camel_mime_message_build_mbox_from (CamelMimeMessage *message);

void camel_mime_message_dump(CamelMimeMessage *msg, int body);
# 38 "camel-pop3-folder.c" 2
# 1 "../../../camel/camel-operation.h" 1
# 39 "camel-pop3-folder.c" 2
# 1 "../../../camel/camel-data-cache.h" 1
# 42 "../../../camel/camel-data-cache.h"
typedef struct _CamelDataCache CamelDataCache;
typedef struct _CamelDataCacheClass CamelDataCacheClass;

struct _CamelDataCache {
 CamelObject parent_object;

 struct _CamelDataCachePrivate *priv;

 char *path;
 guint32 flags;

 time_t expire_age;
 time_t expire_access;
};

struct _CamelDataCacheClass {
 CamelObjectClass parent_class;
# 70 "../../../camel/camel-data-cache.h"
};


CamelDataCache *camel_data_cache_new(const char *path, guint32 flags, CamelException *ex);

void camel_data_cache_set_expire_age(CamelDataCache *cache, time_t when);
void camel_data_cache_set_expire_access(CamelDataCache *cdc, time_t when);

int camel_data_cache_rename(CamelDataCache *cache,
     const char *old, const char *new, CamelException *ex);

CamelStream *camel_data_cache_add(CamelDataCache *cache,
         const char *path, const char *key, CamelException *ex);
CamelStream *camel_data_cache_get(CamelDataCache *cache,
         const char *path, const char *key, CamelException *ex);
int camel_data_cache_remove(CamelDataCache *cache,
     const char *path, const char *key, CamelException *ex);

int camel_data_cache_clear(CamelDataCache *cache,
           const char *path, CamelException *ex);


CamelType camel_data_cache_get_type (void);
# 40 "camel-pop3-folder.c" 2
# 1 "../../../camel/camel-i18n.h" 1
# 35 "../../../camel/camel-i18n.h"
# 1 "/usr/include/libintl.h" 1 3 4
# 35 "/usr/include/libintl.h" 3 4





extern char *gettext (__const char *__msgid)
     __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (1)));



extern char *dgettext (__const char *__domainname, __const char *__msgid)
     __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2)));
extern char *__dgettext (__const char *__domainname, __const char *__msgid)
     __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2)));



extern char *dcgettext (__const char *__domainname,
   __const char *__msgid, int __category)
     __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2)));
extern char *__dcgettext (__const char *__domainname,
     __const char *__msgid, int __category)
     __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2)));




extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
         unsigned long int __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));



extern char *dngettext (__const char *__domainname, __const char *__msgid1,
   __const char *__msgid2, unsigned long int __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));



extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
    __const char *__msgid2, unsigned long int __n,
    int __category)
     __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));





extern char *textdomain (__const char *__domainname) __attribute__ ((__nothrow__));



extern char *bindtextdomain (__const char *__domainname,
        __const char *__dirname) __attribute__ ((__nothrow__));



extern char *bind_textdomain_codeset (__const char *__domainname,
          __const char *__codeset) __attribute__ ((__nothrow__));







# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 102 "/usr/include/libintl.h" 2 3 4


# 1 "/usr/include/locale.h" 1 3 4
# 29 "/usr/include/locale.h" 3 4
# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 30 "/usr/include/locale.h" 2 3 4
# 1 "/usr/include/bits/locale.h" 1 3 4
# 27 "/usr/include/bits/locale.h" 3 4
enum
{
  __LC_CTYPE = 0,
  __LC_NUMERIC = 1,
  __LC_TIME = 2,
  __LC_COLLATE = 3,
  __LC_MONETARY = 4,
  __LC_MESSAGES = 5,
  __LC_ALL = 6,
  __LC_PAPER = 7,
  __LC_NAME = 8,
  __LC_ADDRESS = 9,
  __LC_TELEPHONE = 10,
  __LC_MEASUREMENT = 11,
  __LC_IDENTIFICATION = 12
};
# 31 "/usr/include/locale.h" 2 3 4


# 52 "/usr/include/locale.h" 3 4
struct lconv
{


  char *decimal_point;
  char *thousands_sep;





  char *grouping;





  char *int_curr_symbol;
  char *currency_symbol;
  char *mon_decimal_point;
  char *mon_thousands_sep;
  char *mon_grouping;
  char *positive_sign;
  char *negative_sign;
  char int_frac_digits;
  char frac_digits;

  char p_cs_precedes;

  char p_sep_by_space;

  char n_cs_precedes;

  char n_sep_by_space;






  char p_sign_posn;
  char n_sign_posn;
# 112 "/usr/include/locale.h" 3 4
  char __int_p_cs_precedes;
  char __int_p_sep_by_space;
  char __int_n_cs_precedes;
  char __int_n_sep_by_space;
  char __int_p_sign_posn;
  char __int_n_sign_posn;

};





extern char *setlocale (int __category, __const char *__locale) __attribute__ ((__nothrow__));


extern struct lconv *localeconv (void) __attribute__ ((__nothrow__));


# 208 "/usr/include/locale.h" 3 4

# 105 "/usr/include/libintl.h" 2 3 4
# 122 "/usr/include/libintl.h" 3 4

# 36 "../../../camel/camel-i18n.h" 2
# 41 "camel-pop3-folder.c" 2

# 1 "../../../libedataserver/md5-utils.h" 1
# 31 "../../../libedataserver/md5-utils.h"







typedef struct _MD5Context {

 guint32 buf[4];
 guint32 bits[2];
 guchar in[64];
} MD5Context;


void md5_get_digest (const gchar *buffer, gint buffer_size, guchar digest[16]);



void md5_get_digest_from_file (const gchar *filename, guchar digest[16]);


void md5_init (MD5Context *ctx);
void md5_update (MD5Context *ctx, const guchar *buf, guint32 len);
void md5_final (MD5Context *ctx, guchar digest[16]);


# 43 "camel-pop3-folder.c" 2


# 1 "/usr/include/string.h" 1 3 4
# 28 "/usr/include/string.h" 3 4





# 1 "/usr/lib/gcc/i586-suse-linux/4.1.0/include/stddef.h" 1 3 4
# 34 "/usr/include/string.h" 2 3 4




extern void *memcpy (void *__restrict __dest,
       __const void *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern void *memmove (void *__dest, __const void *__src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));






extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
        int __c, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));





extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern void *memchr (__const void *__s, int __c, size_t __n)
      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));

# 82 "/usr/include/string.h" 3 4


extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

extern char *strncpy (char *__restrict __dest,
        __const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
        size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern int strcmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));

extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern int strcoll (__const char *__s1, __const char *__s2)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));

extern size_t strxfrm (char *__restrict __dest,
         __const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));

# 130 "/usr/include/string.h" 3 4
extern char *strdup (__const char *__s)
     __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
# 165 "/usr/include/string.h" 3 4


extern char *strchr (__const char *__s, int __c)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));

extern char *strrchr (__const char *__s, int __c)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));

# 181 "/usr/include/string.h" 3 4



extern size_t strcspn (__const char *__s, __const char *__reject)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern size_t strspn (__const char *__s, __const char *__accept)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));

extern char *strpbrk (__const char *__s, __const char *__accept)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));

extern char *strstr (__const char *__haystack, __const char *__needle)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));



extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));




extern char *__strtok_r (char *__restrict __s,
    __const char *__restrict __delim,
    char **__restrict __save_ptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));

extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
         char **__restrict __save_ptr)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
# 240 "/usr/include/string.h" 3 4


extern size_t strlen (__const char *__s)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));

# 254 "/usr/include/string.h" 3 4


extern char *strerror (int __errnum) __attribute__ ((__nothrow__));

# 270 "/usr/include/string.h" 3 4
extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
# 288 "/usr/include/string.h" 3 4
extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));



extern void bcopy (__const void *__src, void *__dest, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));


extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));


extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern char *index (__const char *__s, int __c)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));


extern char *rindex (__const char *__s, int __c)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));



extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
# 325 "/usr/include/string.h" 3 4
extern int strcasecmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));


extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 348 "/usr/include/string.h" 3 4
extern char *strsep (char **__restrict __stringp,
       __const char *__restrict __delim)
     __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
# 414 "/usr/include/string.h" 3 4
# 1 "/usr/include/bits/string.h" 1 3 4
# 415 "/usr/include/string.h" 2 3 4


# 1 "/usr/include/bits/string2.h" 1 3 4
# 394 "/usr/include/bits/string2.h" 3 4
extern void *__rawmemchr (const void *__s, int __c);
# 969 "/usr/include/bits/string2.h" 3 4
extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, int __reject)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
         int __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, int __reject1, int __reject2)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
  && __s[__result] != __reject2)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
         int __reject2, int __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, int __reject1, int __reject2,
       int __reject3)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
  && __s[__result] != __reject2 && __s[__result] != __reject3)
    ++__result;
  return __result;
}
# 1045 "/usr/include/bits/string2.h" 3 4
extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, int __accept)
{
  register size_t __result = 0;

  while (__s[__result] == __accept)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
        int __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, int __accept1, int __accept2)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
        int __accept2, int __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2
  || __s[__result] == __accept3)
    ++__result;
  return __result;
}
# 1121 "/usr/include/bits/string2.h" 3 4
extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
         int __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}

extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
         int __accept2, int __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
       int __accept3)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
  && *__s != __accept3)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1173 "/usr/include/bits/string2.h" 3 4
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
  char *__result;
  if (__s == ((void *)0))
    __s = *__nextp;
  while (*__s == __sep)
    ++__s;
  __result = ((void *)0);
  if (*__s != '\0')
    {
      __result = __s++;
      while (*__s != '\0')
 if (*__s++ == __sep)
   {
     __s[-1] = '\0';
     break;
   }
      *__nextp = __s;
    }
  return __result;
}
# 1205 "/usr/include/bits/string2.h" 3 4
extern char *__strsep_g (char **__stringp, __const char *__delim);
# 1223 "/usr/include/bits/string2.h" 3 4
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0))
    *(*__s)++ = '\0';
  return __retval;
}

extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0))
    {
      register char *__cp = __retval;
      while (1)
 {
   if (*__cp == '\0')
     {
       __cp = ((void *)0);
   break;
     }
   if (*__cp == __reject1 || *__cp == __reject2)
     {
       *__cp++ = '\0';
       break;
     }
   ++__cp;
 }
      *__s = __cp;
    }
  return __retval;
}

extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
       char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0))
    {
      register char *__cp = __retval;
      while (1)
 {
   if (*__cp == '\0')
     {
       __cp = ((void *)0);
   break;
     }
   if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
     {
       *__cp++ = '\0';
       break;
     }
   ++__cp;
 }
      *__s = __cp;
    }
  return __retval;
}
# 1304 "/usr/include/bits/string2.h" 3 4
extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
# 1323 "/usr/include/bits/string2.h" 3 4
extern char *__strndup (__const char *__string, size_t __n)
     __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
# 418 "/usr/include/string.h" 2 3 4
# 426 "/usr/include/string.h" 3 4

# 46 "camel-pop3-folder.c" 2




static CamelFolderClass *parent_class;

static void pop3_finalize (CamelObject *object);
static void pop3_refresh_info (CamelFolder *folder, CamelException *ex);
static void pop3_sync (CamelFolder *folder, gboolean expunge, CamelException *ex);
static gint pop3_get_message_count (CamelFolder *folder);
static GPtrArray *pop3_get_uids (CamelFolder *folder);
static CamelMimeMessage *pop3_get_message (CamelFolder *folder, const char *uid, CamelException *ex);
static gboolean pop3_set_message_flags (CamelFolder *folder, const char *uid, guint32 flags, guint32 set);

static void
camel_pop3_folder_class_init (CamelPOP3FolderClass *camel_pop3_folder_class)
{
 CamelFolderClass *camel_folder_class = (((CamelFolderClass *) camel_object_class_cast ((CamelObjectClass *)((camel_pop3_folder_class)), (CamelType)((camel_folder_get_type ())) )));

 parent_class = (((CamelFolderClass *) camel_object_class_cast ((CamelObjectClass *)((camel_folder_get_type())), (CamelType)((camel_folder_get_type ())) )));


 camel_folder_class->refresh_info = pop3_refresh_info;
 camel_folder_class->sync = pop3_sync;

 camel_folder_class->get_message_count = pop3_get_message_count;
 camel_folder_class->get_uids = pop3_get_uids;
 camel_folder_class->free_uids = camel_folder_free_shallow;

 camel_folder_class->get_message = pop3_get_message;
 camel_folder_class->set_message_flags = pop3_set_message_flags;
}

CamelType
camel_pop3_folder_get_type (void)
{
 static CamelType camel_pop3_folder_type = (((void *)0));

 if (!camel_pop3_folder_type) {
  camel_pop3_folder_type = camel_type_register ((camel_folder_get_type ()), "CamelPOP3Folder",
             sizeof (CamelPOP3Folder),
             sizeof (CamelPOP3FolderClass),
             (CamelObjectClassInitFunc) camel_pop3_folder_class_init,
             ((void *)0),
             ((void *)0),
             (CamelObjectFinalizeFunc) pop3_finalize);
 }

 return camel_pop3_folder_type;
}

static void
pop3_finalize (CamelObject *object)
{
 CamelPOP3Folder *pop3_folder = (((CamelPOP3Folder *) camel_object_cast ((CamelObject *)((object)), (CamelType)((camel_pop3_folder_get_type ())))));
 CamelPOP3FolderInfo **fi = (CamelPOP3FolderInfo **)pop3_folder->uids->pdata;
 CamelPOP3Store *pop3_store = (CamelPOP3Store *)((CamelFolder *)pop3_folder)->parent_store;
 int i;

 if (pop3_folder->uids) {
  for (i=0;i<pop3_folder->uids->len;i++,fi++) {
   if (fi[0]->cmd) {
    while (camel_pop3_engine_iterate(pop3_store->engine, fi[0]->cmd) > 0)
     ;
    camel_pop3_engine_command_free(pop3_store->engine, fi[0]->cmd);
   }

   g_free(fi[0]->uid);
   g_free(fi[0]);
  }

  g_ptr_array_free(pop3_folder->uids, (!(0)));
  g_hash_table_destroy(pop3_folder->uids_uid);
 }
}

CamelFolder *
camel_pop3_folder_new (CamelStore *parent, CamelException *ex)
{
 CamelFolder *folder;

 ;

 folder = (((CamelFolder *) camel_object_cast ((CamelObject *)((camel_object_new ((camel_pop3_folder_get_type ())))), (CamelType)((camel_folder_get_type ())))));
 camel_folder_construct (folder, parent, "inbox", "inbox");


 camel_folder_refresh_info (folder, ex);
 if ((camel_exception_get_id (ex) != CAMEL_EXCEPTION_NONE)) {
  camel_object_unref ((((CamelObject *) camel_object_cast ((CamelObject *)((folder)), (CamelType)(camel_object_type)))));
  folder = ((void *)0);
 }

 return folder;
}


static void
cmd_builduid(CamelPOP3Engine *pe, CamelPOP3Stream *stream, void *data)
{
 CamelPOP3FolderInfo *fi = data;
 MD5Context md5;
 unsigned char digest[16];
 struct _camel_header_raw *h;
 CamelMimeParser *mp;



 camel_operation_progress_count(((void *)0), fi->id);

 md5_init(&md5);
 mp = camel_mime_parser_new();
 camel_mime_parser_init_with_stream(mp, (CamelStream *)stream);
 switch (camel_mime_parser_step(mp, ((void *)0), ((void *)0))) {
 case CAMEL_MIME_PARSER_STATE_HEADER:
 case CAMEL_MIME_PARSER_STATE_MESSAGE:
 case CAMEL_MIME_PARSER_STATE_MULTIPART:
  h = camel_mime_parser_headers_raw(mp);
  while (h) {
   if (g_ascii_strcasecmp(h->name, "status") != 0
       && g_ascii_strcasecmp(h->name, "x-status") != 0) {
    md5_update(&md5, h->name, strlen(h->name));
    md5_update(&md5, h->value, strlen(h->value));
   }
   h = h->next;
  }
 default:
  break;
 }
 camel_object_unref(mp);
 md5_final(&md5, digest);
 fi->uid = camel_base64_encode_simple(digest, 16);

 ;
}

static void
cmd_list(CamelPOP3Engine *pe, CamelPOP3Stream *stream, void *data)
{
 int ret;
 unsigned int len, id, size;
 unsigned char *line;
 CamelFolder *folder = data;
 CamelPOP3Store *pop3_store = (((CamelPOP3Store *) camel_object_cast ((CamelObject *)((folder->parent_store)), (CamelType)((camel_pop3_store_get_type ())))));
 CamelPOP3FolderInfo *fi;

 do {
  ret = camel_pop3_stream_line(stream, &line, &len);
  if (ret>=0) {
   if (sscanf(line, "%u %u", &id, &size) == 2) {
    fi = g_malloc0(sizeof(*fi));
    fi->size = size;
    fi->id = id;
    fi->index = ((CamelPOP3Folder *)folder)->uids->len;
    if ((pop3_store->engine->capa & CAMEL_POP3_CAP_UIDL) == 0)
     fi->cmd = camel_pop3_engine_command_new(pe, CAMEL_POP3_COMMAND_MULTI, cmd_builduid, fi, "TOP %u 0\r\n", id);
    g_ptr_array_add(((CamelPOP3Folder *)folder)->uids, fi);
    g_hash_table_insert(((CamelPOP3Folder *)folder)->uids_id, ((gpointer) (id)), fi);
   }
  }
 } while (ret>0);
}

static void
cmd_uidl(CamelPOP3Engine *pe, CamelPOP3Stream *stream, void *data)
{
 int ret;
 unsigned int len;
 unsigned char *line;
 char uid[1025];
 unsigned int id;
 CamelPOP3FolderInfo *fi;
 CamelPOP3Folder *folder = data;

 do {
  ret = camel_pop3_stream_line(stream, &line, &len);
  if (ret>=0) {
   if (strlen(line) > 1024)
    line[1024] = 0;
   if (sscanf(line, "%u %s", &id, uid) == 2) {
    fi = g_hash_table_lookup(folder->uids_id, ((gpointer) (id)));
    if (fi) {
     camel_operation_progress(((void *)0), (fi->index+1) * 100 / folder->uids->len);
     fi->uid = g_strdup(uid);
     g_hash_table_insert(folder->uids_uid, fi->uid, fi);
    } else {
     g_log ("camel-pop3-provider", G_LOG_LEVEL_WARNING, "ID %u (uid: %s) not in previous LIST output", id, uid);
    }
   }
  }
 } while (ret>0);
}

static void
pop3_refresh_info (CamelFolder *folder, CamelException *ex)
{
 CamelPOP3Store *pop3_store = (((CamelPOP3Store *) camel_object_cast ((CamelObject *)((folder->parent_store)), (CamelType)((camel_pop3_store_get_type ())))));
 CamelPOP3Folder *pop3_folder = (CamelPOP3Folder *) folder;
 CamelPOP3Command *pcl, *pcu = ((void *)0);
 int i;

 camel_operation_start (((void *)0), dcgettext ("evolution-data-server-1.8", "Retrieving POP summary", __LC_MESSAGES));

 pop3_folder->uids = g_ptr_array_new ();
 pop3_folder->uids_uid = g_hash_table_new(g_str_hash, g_str_equal);

 pop3_folder->uids_id = g_hash_table_new(((void *)0), ((void *)0));

 pcl = camel_pop3_engine_command_new(pop3_store->engine, CAMEL_POP3_COMMAND_MULTI, cmd_list, folder, "LIST\r\n");
 if (pop3_store->engine->capa & CAMEL_POP3_CAP_UIDL) {
  pcu = camel_pop3_engine_command_new(pop3_store->engine, CAMEL_POP3_COMMAND_MULTI, cmd_uidl, folder, "UIDL\r\n");
 }
 while ((i = camel_pop3_engine_iterate(pop3_store->engine, ((void *)0))) > 0)
  ;

 if (i == -1) {
  if ((*__errno_location ()) == 4)
   camel_exception_setv(ex, CAMEL_EXCEPTION_USER_CANCEL, dcgettext ("evolution-data-server-1.8", "User canceled", __LC_MESSAGES));
  else
   camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
           dcgettext ("evolution-data-server-1.8", "Cannot get POP summary: %s", __LC_MESSAGES),
           g_strerror ((*__errno_location ())));
 }



 camel_pop3_engine_command_free(pop3_store->engine, pcl);

 if (pop3_store->engine->capa & CAMEL_POP3_CAP_UIDL) {
  camel_pop3_engine_command_free(pop3_store->engine, pcu);
 } else {
  for (i=0;i<pop3_folder->uids->len;i++) {
   CamelPOP3FolderInfo *fi = pop3_folder->uids->pdata[i];
   if (fi->cmd) {
    camel_pop3_engine_command_free(pop3_store->engine, fi->cmd);
    fi->cmd = ((void *)0);
   }
   if (fi->uid)
    g_hash_table_insert(pop3_folder->uids_uid, fi->uid, fi);
  }
 }


 g_hash_table_destroy(pop3_folder->uids_id);

 camel_operation_end (((void *)0));
 return;
}

static void
pop3_sync (CamelFolder *folder, gboolean expunge, CamelException *ex)
{
 CamelPOP3Folder *pop3_folder;
 CamelPOP3Store *pop3_store;
 int i;
 CamelPOP3FolderInfo *fi;

 pop3_folder = (((CamelPOP3Folder *) camel_object_cast ((CamelObject *)((folder)), (CamelType)((camel_pop3_folder_get_type ())))));
 pop3_store = (((CamelPOP3Store *) camel_object_cast ((CamelObject *)((folder->parent_store)), (CamelType)((camel_pop3_store_get_type ())))));

 if(pop3_store->delete_after && !expunge)
 {
  camel_operation_start(((void *)0), dcgettext ("evolution-data-server-1.8", "Expunging old messages", __LC_MESSAGES));
  camel_pop3_delete_old(folder, pop3_store->delete_after,ex);
 }

 if (!expunge) {
  return;
 }

 camel_operation_start(((void *)0), dcgettext ("evolution-data-server-1.8", "Expunging deleted messages", __LC_MESSAGES));

 for (i = 0; i < pop3_folder->uids->len; i++) {
  fi = pop3_folder->uids->pdata[i];

  if (fi->cmd) {
   while (camel_pop3_engine_iterate(pop3_store->engine, fi->cmd) > 0)
    ;
   camel_pop3_engine_command_free(pop3_store->engine, fi->cmd);
   fi->cmd = ((void *)0);
  }

  if (fi->flags & CAMEL_MESSAGE_DELETED) {
   fi->cmd = camel_pop3_engine_command_new(pop3_store->engine, 0, ((void *)0), ((void *)0), "DELE %u\r\n", fi->id);


   if (pop3_store->cache && fi->uid)
    camel_data_cache_remove(pop3_store->cache, "cache", fi->uid, ((void *)0));
  }
 }

 for (i = 0; i < pop3_folder->uids->len; i++) {
  fi = pop3_folder->uids->pdata[i];

  if (fi->cmd) {
   while (camel_pop3_engine_iterate(pop3_store->engine, fi->cmd) > 0)
    ;
   camel_pop3_engine_command_free(pop3_store->engine, fi->cmd);
   fi->cmd = ((void *)0);
  }
  camel_operation_progress(((void *)0), (i+1) * 100 / pop3_folder->uids->len);
 }

 camel_operation_end(((void *)0));

 camel_pop3_store_expunge (pop3_store, ex);
}

int
camel_pop3_delete_old(CamelFolder *folder, int days_to_delete, CamelException *ex)
{
 CamelPOP3Folder *pop3_folder;
 CamelPOP3FolderInfo *fi;
 int i;
 CamelPOP3Store *pop3_store;
 time_t temp;

 pop3_folder = (((CamelPOP3Folder *) camel_object_cast ((CamelObject *)((folder)), (CamelType)((camel_pop3_folder_get_type ())))));
 pop3_store = (((CamelPOP3Store *) camel_object_cast ((CamelObject *)(((((CamelFolder *) camel_object_cast ((CamelObject *)((pop3_folder)), (CamelType)((camel_folder_get_type ())))))->parent_store)), (CamelType)((camel_pop3_store_get_type ())))));
 temp = time(&temp);

 for (i = 0; i < pop3_folder->uids->len; i++) {
 fi = pop3_folder->uids->pdata[i];

 CamelMimeMessage *message = pop3_get_message (folder, fi->uid, ex);
 time_t message_time = message->date + message->date_offset;
 if(message) {
  double time_diff = difftime(temp,message_time);
  int day_lag = time_diff/(60*60*24);
  if( day_lag > days_to_delete)
  {
   if (fi->cmd) {
   while (camel_pop3_engine_iterate(pop3_store->engine, fi->cmd) > 0)
    ;
   camel_pop3_engine_command_free(pop3_store->engine, fi->cmd);
   fi->cmd = ((void *)0);
  }

  fi->cmd = camel_pop3_engine_command_new(pop3_store->engine, 0, ((void *)0), ((void *)0), "DELE %u\r\n", fi->id);

  if (pop3_store->cache && fi->uid)
   camel_data_cache_remove(pop3_store->cache, "cache", fi->uid, ((void *)0));
  }
      }

 }

 for (i = 0; i < pop3_folder->uids->len; i++) {
  fi = pop3_folder->uids->pdata[i];

  if (fi->cmd) {
   while (camel_pop3_engine_iterate(pop3_store->engine, fi->cmd) > 0)
    ;
   camel_pop3_engine_command_free(pop3_store->engine, fi->cmd);
   fi->cmd = ((void *)0);
  }
  camel_operation_progress(((void *)0), (i+1) * 100 / pop3_folder->uids->len);
 }

 camel_operation_end(((void *)0));

 camel_pop3_store_expunge (pop3_store, ex);

 return 0;

}

static void
cmd_tocache(CamelPOP3Engine *pe, CamelPOP3Stream *stream, void *data)
{
 CamelPOP3FolderInfo *fi = data;
 char buffer[2048];
 int w = 0, n;





 if ((n = camel_stream_write(fi->stream, "*", 1)) == -1)
  goto done;

 while ((n = camel_stream_read((CamelStream *)stream, buffer, sizeof(buffer))) > 0) {
  n = camel_stream_write(fi->stream, buffer, n);
  if (n == -1)
   break;

  w += n;
  if (w > fi->size)
   w = fi->size;
  if (fi->size != 0)
   camel_operation_progress(((void *)0), (w * 100) / fi->size);
 }


 if (n != -1) {
  camel_stream_reset(fi->stream);
  n = camel_stream_write(fi->stream, "#", 1);
 }
done:
 if (n == -1) {
  fi->err = (*__errno_location ());
  g_log ("camel-pop3-provider", G_LOG_LEVEL_WARNING, "POP3 retrieval failed: %s", strerror((*__errno_location ())));
 } else {
  fi->err = 0;
 }

 camel_object_unref((CamelObject *)fi->stream);
 fi->stream = ((void *)0);
}

static CamelMimeMessage *
pop3_get_message (CamelFolder *folder, const char *uid, CamelException *ex)
{
 CamelMimeMessage *message = ((void *)0);
 CamelPOP3Store *pop3_store = (((CamelPOP3Store *) camel_object_cast ((CamelObject *)((folder->parent_store)), (CamelType)((camel_pop3_store_get_type ())))));
 CamelPOP3Folder *pop3_folder = (CamelPOP3Folder *)folder;
 CamelPOP3Command *pcr;
 CamelPOP3FolderInfo *fi;
 char buffer[1];
 int i, last;
 CamelStream *stream = ((void *)0);

 fi = g_hash_table_lookup(pop3_folder->uids_uid, uid);
 if (fi == ((void *)0)) {
  camel_exception_setv (ex, CAMEL_EXCEPTION_FOLDER_INVALID_UID,
          dcgettext ("evolution-data-server-1.8", "No message with UID %s", __LC_MESSAGES), uid);
  return ((void *)0);
 }




 camel_operation_start_transient(((void *)0), dcgettext ("evolution-data-server-1.8", "Retrieving POP message %d", __LC_MESSAGES), fi->id);




 if (fi->cmd != ((void *)0)) {
  while ((i = camel_pop3_engine_iterate(pop3_store->engine, fi->cmd)) > 0)
   ;

  if (i == -1)
   fi->err = (*__errno_location ());



  camel_pop3_engine_command_free(pop3_store->engine, fi->cmd);
  fi->cmd = ((void *)0);

  if (fi->err != 0) {
   if (fi->err == 4)
    camel_exception_setv(ex, CAMEL_EXCEPTION_USER_CANCEL, dcgettext ("evolution-data-server-1.8", "User canceled", __LC_MESSAGES));
   else
    camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
            dcgettext ("evolution-data-server-1.8", "Cannot get message %s: %s", __LC_MESSAGES),
            uid, g_strerror (fi->err));
   goto fail;
  }
 }


 if (pop3_store->cache == ((void *)0)
     || (stream = camel_data_cache_get(pop3_store->cache, "cache", fi->uid, ((void *)0))) == ((void *)0)
     || camel_stream_read(stream, buffer, 1) != 1
     || buffer[0] != '#') {


  if (pop3_store->cache == ((void *)0)
      || (stream = camel_data_cache_add(pop3_store->cache, "cache", fi->uid, ((void *)0))) == ((void *)0))
   stream = camel_stream_mem_new();


  camel_object_ref((CamelObject *)stream);
  fi->stream = stream;
  fi->err = 5;
  pcr = camel_pop3_engine_command_new(pop3_store->engine, CAMEL_POP3_COMMAND_MULTI, cmd_tocache, fi, "RETR %u\r\n", fi->id);


  if (pop3_store->cache != ((void *)0)) {


   i = fi->index+1;
   last = (((i+10) < (pop3_folder->uids->len)) ? (i+10) : (pop3_folder->uids->len));
   for (;i<last;i++) {
    CamelPOP3FolderInfo *pfi = pop3_folder->uids->pdata[i];

    if (pfi->uid && pfi->cmd == ((void *)0)) {
     pfi->stream = camel_data_cache_add(pop3_store->cache, "cache", pfi->uid, ((void *)0));
     if (pfi->stream) {
      pfi->err = 5;
      pfi->cmd = camel_pop3_engine_command_new(pop3_store->engine, CAMEL_POP3_COMMAND_MULTI,
            cmd_tocache, pfi, "RETR %u\r\n", pfi->id);
     }
    }
   }
  }


  while ((i = camel_pop3_engine_iterate(pop3_store->engine, pcr)) > 0)
   ;

  if (i == -1)
   fi->err = (*__errno_location ());



  camel_pop3_engine_command_free(pop3_store->engine, pcr);
  camel_stream_reset(stream);


  if (fi->err != 0) {
   if (fi->err == 4)
    camel_exception_setv(ex, CAMEL_EXCEPTION_USER_CANCEL, dcgettext ("evolution-data-server-1.8", "User canceled", __LC_MESSAGES));
   else
    camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
            dcgettext ("evolution-data-server-1.8", "Cannot get message %s: %s", __LC_MESSAGES),
            uid, g_strerror (fi->err));
   goto done;
  }

  if (camel_stream_read(stream, buffer, 1) != 1 || buffer[0] != '#') {
   camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM,
          dcgettext ("evolution-data-server-1.8", "Cannot get message %s: %s", __LC_MESSAGES), uid, dcgettext ("evolution-data-server-1.8", "Unknown reason", __LC_MESSAGES));
   goto done;
  }
 }

 message = camel_mime_message_new ();
 if (camel_data_wrapper_construct_from_stream((CamelDataWrapper *)message, stream) == -1) {
  if ((*__errno_location ()) == 4)
   camel_exception_setv(ex, CAMEL_EXCEPTION_USER_CANCEL, dcgettext ("evolution-data-server-1.8", "User canceled", __LC_MESSAGES));
  else
   camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
           dcgettext ("evolution-data-server-1.8", "Cannot get message %s: %s", __LC_MESSAGES),
           uid, g_strerror ((*__errno_location ())));
  camel_object_unref((CamelObject *)message);
  message = ((void *)0);
 }
done:
 camel_object_unref((CamelObject *)stream);
fail:
 camel_operation_end(((void *)0));

 return message;
}

static gboolean
pop3_set_message_flags (CamelFolder *folder, const char *uid, guint32 flags, guint32 set)
{
 CamelPOP3Folder *pop3_folder = (((CamelPOP3Folder *) camel_object_cast ((CamelObject *)((folder)), (CamelType)((camel_pop3_folder_get_type ())))));
 CamelPOP3FolderInfo *fi;
 gboolean res = (0);

 fi = g_hash_table_lookup(pop3_folder->uids_uid, uid);
 if (fi) {
  guint32 new = (fi->flags & ~flags) | (set & flags);

  if (fi->flags != new) {
   fi->flags = new;
   res = (!(0));
  }
 }

 return res;
}

static gint
pop3_get_message_count (CamelFolder *folder)
{
 CamelPOP3Folder *pop3_folder = (((CamelPOP3Folder *) camel_object_cast ((CamelObject *)((folder)), (CamelType)((camel_pop3_folder_get_type ())))));

 return pop3_folder->uids->len;
}

static GPtrArray *
pop3_get_uids (CamelFolder *folder)
{
 CamelPOP3Folder *pop3_folder = (((CamelPOP3Folder *) camel_object_cast ((CamelObject *)((folder)), (CamelType)((camel_pop3_folder_get_type ())))));
 GPtrArray *uids = g_ptr_array_new();
 CamelPOP3FolderInfo **fi = (CamelPOP3FolderInfo **)pop3_folder->uids->pdata;
 int i;

 for (i=0;i<pop3_folder->uids->len;i++,fi++) {
  if (fi[0]->uid)
   g_ptr_array_add(uids, fi[0]->uid);
 }

 return uids;
}
